Julia Programming Language 1.3 Release

Published programming language release Julia 1.3, which combines such qualities as high performance, support for dynamic typing and built-in tools for parallel programming. The syntax of Julia is close to MATLAB, with some elements borrowed from Ruby and Lisp. The string manipulation method is reminiscent of Perl. Project code spreads under the MIT license.

Π’ new version:

  • Possibility implemented uploads methods into abstract types;
  • Support for Unicode 12.1.0 is provided and the ability to use specific styles of Unicode digital characters (𝟎-πŸ—, 𝟘-𝟑) in identifiers;
  • To display and parse non-standard variable names proposed new syntax var"#str#";
  • Tools related to multithreading have been expanded: The Threads.@spawn macro and the Channel(f::Function, spawn=true) keyword have been added to organize the launch of tasks in any available thread. All system I/O operations with files and sockets, as well as a pseudo-random number generator, are adapted for multi-threaded applications (thread-safe);
  • Added new library functions including
    findfirst, findlast, findnext, findprev, findall(pattern, string), count(pattern, string), sincosd(x) and nonmissingtype.

Key features of the language:

  • High performance: one of the key goals of the project is to achieve performance close to C programs. The Julia compiler is based on the LLVM project and generates efficient native machine code for many target platforms;
  • Support for various programming paradigms, including elements of object-oriented and functional programming. The standard library provides functions for asynchronous I/O, process management, logging, profiling, and package management, among other things;
  • Dynamic typing: The language does not require explicit definition of types for variables, by analogy with scripting programming languages. Supports interactive mode;
  • Optional ability to explicitly specify types;
  • A syntax ideal for numerical computing, scientific computing, machine learning, and data visualization. Support for many numeric data types and tools for parallelization of calculations.
  • Ability to directly call functions from C libraries without additional layers.
  • Source: opennet.ru

Add a comment