Veröffentlichung der Programmiersprache , kombiniert hohe Leistung, Unterstützung für dynamische Typisierung und integrierte Werkzeuge für paralleles Programmieren. Die Syntax von Julia ähnelt MATLAB und übernimmt einige Elemente aus Ruby und Lisp. Die Methoden zur Zeichenfolgenmanipulation erinnern an Perl. Der Code des Projekts unter der MIT-Lizenz.
In :
- Проведена оптимизация размещения структур в памяти, которая позволила значительно сократить число операций распределения памяти в куче (за счёт inline-развёртывания или размещения в стеке), уменьшить потребление памяти и повысить производительность.
- Улучшена поддержка многопоточности и стабилизирован API для работы с потоками.
- Предоставлена возможность выбора уровня оптимизации, используемого при сборке отдельных модулей.
- При передаче аргумента ключевого слова разрешено указание только одного имени, если оно совпадает для ключевого слова и переменной для хранения значения (например, вместо «x=x» можно указывать просто «x»).
- Добавлен новый макрос «@ccall», предоставляющий более удобный синтаксис для вызова функций на языке Си.
- Разрешён вызов макросов без разделения пробелом (вместо «@foo {…}» теперь можно писать «@foo{…}»).
- На 25% увеличена производительность генерации псевдослучайных чисел.
- Добавлена опция «—bug-report=rr» для записи и отправки для упрощения исправления ошибок.
- В пакетном менеджере по умолчанию активирован протокола Pkg, подразумевающий обращение к собственному репозиторию (pkg.julialang.org) вместо загрузки пакета напрямую из GitHub, GitLab, BitBucket и подобных хранилищ.
Hauptmerkmale der Sprache:
- Leistung: Eines der Hauptziele des Projekts ist das Erreichen einer Leistung, die nahe an der von Programmen in C liegt. Der Julia-Compiler basiert auf den Entwicklungen des LLVM-Projekts und erzeugt effizienten nativen Maschinencode für viele Zielplattformen.
- Unterstützung verschiedener Programmierparadigmen, einschließlich objektorientierter und funktionaler Programmierung. Die Standardbibliothek bietet unter anderem Funktionen für asynchronen Input/Output, Prozessverwaltung, Protokollierung, Profilierung und Paketverwaltung.
- Dynamische Typisierung: Die Sprache erfordert keine explizite Typdefinition für Variablen, ähnlich wie bei Skriptprogrammiersprachen. Ein interaktiver Modus wird unterstützt;
- Optionale Möglichkeit zur expliziten Angabe von Typen;
- Syntax, die hervorragend für numerische Berechnungen, wissenschaftliche Berechnungen, Machine Learning-Systeme und Datenvisualisierung geeignet ist. Unterstützung für viele numerische Datentypen und Werkzeuge zur Parallelisierung von Berechnungen.
- Direkter Aufruf von Funktionen aus C-Bibliotheken ohne zusätzliche Schichten.
Quelle: opennet.ru
