Выпуск языка программирования Julia 1.3

Опубликован релиз языка программирования Julia 1.3, сочетающего такие качества как высокая производительность, поддержка динамической типизации и встроенные средства для параллельного программирования. Синтаксис Julia близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Метод манипуляции строками напоминает Perl. Код проекта распространяется под лицензией MIT.

В новой версии:

  • Реализована возможность добавления методов в абстрактные типы;
  • Обеспечена поддержка Unicode 12.1.0 и возможность использования специфичных начертаний цифровых символов Unicode (?-?, ?-?) в идентификаторах;
  • Для вывода и разбора нестандартных имён переменных предложен новый синтаксис var»#str#»;
  • Расширены средства, связанные с многопоточностью: Добавлен макрос Threads.@spawn и ключевое слово Channel(f::Function, spawn=true) для организации запуска задач в любом доступном потоке. Все системные операции ввода/вывода с файлами и сокетами, а также генератор псевдослучайных чисел, адаптированы для многопоточных приложений (thread-safe);
  • Добавлены новые библиотечные функции, включая findfirst, findlast, findnext, findprev, findall(pattern, string), count(pattern, string), sincosd(x) и nonmissingtype.

Ключевые особенности языка:

  • Высокая производительность: одной из ключевых целей проекта является достижение производительности близкой к программам на языке Си. Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный нативный машинный код для многих целевых платформ;
  • Поддержка различных парадигм программирования, включая элементы объектно-ориентированного и функционального программирования. Стандартная библиотека предоставляет в том числе функции для асинхронного ввода/вывода, управления процессами, ведения логов, профилирования и управления пакетами;
  • Динамическая типизация: язык не требует явного определения типов для переменных по аналогии со скриптовыми языками программирования. Поддерживается интерактивный режим работы;
  • Опциональная возможность явного указания типов;
  • Синтаксис, превосходно подходящий для численных вычислений, научных расчётов, систем машинного обучения и визуализации данных. Поддержка многих числовых типов данных и средства для распараллеливания вычислений.
  • Возможность прямого вызова функций из библиотек на языке Си без дополнительных прослоек.
  • Источник: http://www.opennet.ru/opennews/art.shtml?num=51933