Выпуск языка программирования Julia 1.5
Опубликован релиз языка программирования Julia 1.5, сочетающего такие качества как высокая производительность, поддержка динамической типизации и встроенные средства для параллельного программирования. Синтаксис Julia близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Метод манипуляции строками напоминает Perl. Код проекта распространяется под лицензией MIT.
В новой версии:
- Проведена оптимизация размещения структур в памяти, которая позволила значительно сократить число операций распределения памяти в куче (за счёт inline-развёртывания или размещения в стеке), уменьшить потребление памяти и повысить производительность.
- Улучшена поддержка многопоточности и стабилизирован API для работы с потоками.
- Предоставлена возможность выбора уровня оптимизации, используемого при сборке отдельных модулей.
- При передаче аргумента ключевого слова разрешено указание только одного имени, если оно совпадает для ключевого слова и переменной для хранения значения (например, вместо «x=x» можно указывать просто «x»).
- Добавлен новый макрос »@ccall», предоставляющий более удобный синтаксис для вызова функций на языке Си.
- Разрешён вызов макросов без разделения пробелом (вместо »@foo {…}» теперь можно писать »@foo{…}»).
- На 25% увеличена производительность генерации псевдослучайных чисел.
- Добавлена опция »--bug-report=rr» для записи и отправки rr-трассировок для упрощения исправления ошибок.
- В пакетном менеджере по умолчанию активирован протокола Pkg, подразумевающий обращение к собственному репозиторию (pkg.julialang.org) вместо загрузки пакета напрямую из GitHub, GitLab, BitBucket и подобных хранилищ.
Ключевые особенности языка:
- Высокая производительность: одной из ключевых целей проекта является достижение производительности близкой к программам на языке Си. Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный нативный машинный код для многих целевых платформ;
- Поддержка различных парадигм программирования, включая элементы объектно-ориентированного и функционального программирования. Стандартная библиотека предоставляет в том числе функции для асинхронного ввода/вывода, управления процессами, ведения логов, профилирования и управления пакетами;
- Динамическая типизация: язык не требует явного определения типов для переменных по аналогии со скриптовыми языками программирования. Поддерживается интерактивный режим работы;
- Опциональная возможность явного указания типов;
- Синтаксис, превосходно подходящий для численных вычислений, научных расчётов, систем машинного обучения и визуализации данных. Поддержка многих числовых типов данных и средств для распараллеливания вычислений.
- Возможность прямого вызова функций из библиотек на языке Си без дополнительных прослоек.
Источник: http://www.opennet.ru/opennews/art.shtml? num=53481
© OpenNet