A new release of the programming language Julia 1.11 has been announced, showcasing high performance, support for dynamic typification, and built-in tools for parallel programming. Drawing inspiration from Matlab, Ruby, and Lisp, Julia’s syntax also features similarities to Perl. The project’s code is distributed under the MIT license.
Key features of Julia 1.11 include:
- High performance: the language aims to achieve speed comparable to programs in SI units by utilizing the LLVM project for efficient native machine code generation across various platforms;
- Support for different programming paradigms, including object-oriented and functional programming elements. The standard library offers functions for asynchronous I/O, process management, logging, profiling, and package management;
- Dynamic typification eliminates the need for explicit variable type definitions, akin to script languages, with support for an interactive mode;
- Optional type declaration for variables;
- Syntax optimized for numerical, scientific, and machine learning computations, as well as data visualization. Julia supports various numerical data types and features for enhancing calculations;
- Direct function calls from libraries in the language without additional layers.
Major changes in Julia 1.11 include:
- New language features:
- Introduction of the Memory type as a low-level alternative to ARRAY. Memory offers reduced costs and faster construction compared to Array, serving as an efficient option for situations where full Array capabilities are not necessary, like multidimensional arrays. Many ARRAY types are now implemented on Memory, significantly improving functions like push;
- Addition of the “Public” keyword for marking identifiers as part of the external software interface. Different from “Export”, “Public” names are not included in the module context when used with “using” in dependent modules;
- ScopedValue package for dynamic visibility scopes in parallel programming Threads/Tasks;
- Ability to specify Julia version in manifest.toml by renaming it
/Reports, release notes, official announcements.