Чому Julia [12] ?
Сучасний мовний дизайн і методи компіляції дозволяють усунути компроміс продуктивності та забезпечити єдине середовище, достатньо продуктивне для створення прототипів і достатньо ефективне для розгортання високопродуктивних програм.
Мова програмування Julia виконує цю роль: це гнучка динамічна мова, яка підходить для наукових і чисельних обчислень, з продуктивністю, порівнянною з традиційними мовами зі статичними типами.
Julia має опціональну типізацію, множинну диспетчеризацію та продуктивність, досягнуту за допомогою виведення типу та JIT-компіляції, реалізованої за допомогою LLVM.
Julia мультипарадигмальна, поєднує в собі риси імперативного, функціонального та об'єктно-орієнтованого програмування. Julia забезпечує легкість і виразність для чисельних обчислень високого рівня, як і такі мови, як R, MATLAB і Python, але також підтримує загальне програмування. Щоб досягти цього, Julia спирається на родовід мов математичного програмування, але також запозичує багато з популярних динамічних мов, зокрема Lisp, Perl, Python, Lua та Ruby.
Що отримуємо.
- Безкоштовний і відкритий код (ліцензія MIT)
- Визначені користувачем типи такі ж швидкі та компактні, як і вбудовані
- Немає необхідності векторизувати код для продуктивності; девекторизований код швидкий
- Призначений для паралелізму та розподілених обчислень
- Полегшене «зелене» потокування (coroutines)
- Ненав'язлива, але потужна система типів
- Елегантні та розширювані перетворення та просування для числових та інших типів
- Ефективна підтримка Unicode, включаючи, але не обмежуючись, UTF-8
- Безпосередній виклик функцій C (не потрібні обгортки чи спеціальні API)
- Потужні можливості, подібні до оболонки, для керування іншими процесами
- Lisp-подібні макроси та інші засоби метапрограмування
Pluto notebook.
Pluto — це не просто написання остаточного документа, він дає змогу експериментувати та досліджувати:
- реактивний - при зміні функції або змінної Pluto автоматично оновлює всі залежні комірки;
- легкий - написаний чистою Julia і простий в установці (тільки Julia і browser);
- простий - немає прихованого стану робочої області, дружній інтерфейс користувача.