После года разработки представлен релиз Julia 0.5 — высокоуровневого высокопроизводительного свободного языка программирования с динамической типизацией, созданного для математических вычислений, но также эффективного и для написания программ общего назначения. Синтаксис языка схож с синтаксисом других математических языков (таких как MATLAB и Octave), однако имеет некоторые существенные отличия. Ядро Julia написано c использованием C, C++ и Scheme.
Этот релиз содержит существенные доработки языка и стандартной библиотеки. Главной его задачей было получение возможности писать быстрый функциональный код и избавиться от потерь производительности при использовании анонимных функций и замыканий.
Важные изменения:
- Ускорение было достигнуто путём выведения каждой функции и замыкания в отдельный тип, где переменные замыкания являются атрибутами типа. Все функции, включая анонимные, теперь являются обобщенными и поддерживают все возможности.
- Добавлена экспериментальная поддержка многопоточности.
- Все измерения, индексируемые скалярами, теперь сбрасываются; ранее исключались только последующие измерения. Это изменение является несовместимым с предыдущими версиями, но упорядочивает правила индексации.
- Списковое включение теперь может создавать итераторы, вычисляемые только при необходимости.
- Добавлена экспериментальная поддержка массивов, индекс которых начинается от значения, отличного от 1. Стандартные массивы Julia по-прежнему индексируются от 1, но внешние пакеты могут реализовывать типы массивов, начинающихся c произвольных индексов.
- Значительно упрощены строковые типы:
ASCIIString
иUTF8String
объединены вString
; из стандартной библиотеки извлечены типы и функции, относящиеся к кодировкам. - Управление пакетами теперь используют libgit2 вместо обращения к git с помощью командной оболочки. Это делает управление пакетами намного быстрее и надежнее, особенно на Windows.
- Julia теперь работает на ARM и Power и, благодаря этому, теперь может использоваться на широком диапазоне аппаратного обеспечения — от самых малых встраиваемых систем до самых высокопроизводительных компьютеров.
- Gallium, отладчик для Julia, теперь готов к использованию. Он даёт возможность полноценной отладки когда на Julia и C и встроен в IDE Juno.
>>> Список изменений
>>> Подробности