Julia, el llenguatge de programació multiplataforma arriba a la versió 1.9

Julia lang

ulia és un llenguatge dinàmic dalt nivell i alt rendiment per a computació tècnica.

Fa pocs dies es va donar a conèixer el llançament de la nova versió del llenguatge de programació Julia 1.9, que combina qualitats com a alt rendiment, suport per a escriptura dinàmica i eines integrades per a programació paral·lela. La sintaxi de Julia és propera a MATLAB, amb alguns elements presos de Ruby i Lisp.

Julia es destaca per ser un llenguatge de programació multiplataforma i multiparadigma de tipat dinàmic d'alt nivell i alt exercici per a la computació genèrica, tècnica i científica, amb una sintaxi similar a la d'altres entorns de computació similars.

Principals novetats de Julia 1.9

En aquesta nova versió que es presenta de Julia 1.9 se'n destaquen diverses millores en el temps d'execució/compilador, ja que hi va haver una reducció significativa del temps fins a la primera execució. La compilació prĆØvia del paquet ara guarda el codi nadiu a Ā«pkgimageĀ», el que significa que el codi generat durant la compilació prĆØvia no necessitarĆ  tornar a compilar-se desprĆ©s de carregar el paquet. L'Ćŗs del mode pkgimages es pot desactivar amb l'opció ā€œā€“pkgimages=noā€.

Un altre dels canvis que es destaca, són les trucades amb arguments no específics del tipus ara es poden optimitzar mitjançant divisió d'unió per a injecció o resolució estàtica, fins i tot si hi ha diversos tipus diferents de candidats d'enviament. Això pot millorar el rendiment en determinades situacions en què els tipus d'objectes no es resolen completament de forma estàtica, en resoldre de forma estàtica els llocs de trucades.@nospecialize-d» i evitar la recompilació.

Ara els literals d'un sol caràcter admeten la mateixa sintaxi que els literals de cadena; aquells la sintaxi pot representar seqüències UTF-8 no vàlides, segons ho permeti el tipus Char.

A mĆ©s, a Linux i Windows, l'opció «–threads=autoĀ» ara intenta determinar la quantitat disponible de processadors en funció de l'afinitat de la CPU, que Ć©s una mĆ scara que normalment s'estableix als entorns HPC i al nĆŗvol.

S'ha deshabilitat l'opció «–math-mode=fastĀ«, en lloc de la qual es recomana utilitzar la macro Ā«@fastmathĀ«, que tĆ© una semĆ ntica ben definida, a mĆ©s que el parĆ metre Ā«-threadsĀ» ara tĆ© el format Ā«auto | N[,auto|M]Ā», on M especifica la quantitat de subprocessos interactius que es crearan.

Es va agregar l'opció «–heap-size-hint=Ā» per establir el llindar desprĆ©s del qual comenƧa la recolĀ·lecció activa d'elements no utilitzats. La mida es pot especificar en bytes, kilobytes (1000 KB), megabytes (300 MB) o gigabytes (1,5 GB).

La macro @invoke introduïda a la versió 1.7 ara s'exporta i està disponible per al seu ús. A més, ara utilitza el mètode «Core.Typeof(x)» en lloc de «Qualsevol» quan s'omet l'anotació de tipus per a l'argument x. Això és necessari perquè els tipus passats com arguments es processin correctament.

D'altra banda, "Threads.@spawn" ara té un primer argument opcional de ":default" o ":interactive". Una tasca interactiva requereix una resposta de latència baixa i està dissenyada per ser breu o fer-se amb freqüència. Les tasques interactives s'executaran en subprocessos interactius si s'especifiquen en iniciar la Júlia.

Dels altres canvis que es destaquen:

  • Negar la funció de predicat "!f" ara torna una funció composta "(!) ∘ f" en lloc d'una funció anònima.
  • Les funcions de divisió de dimensió ara funcionen en mĆŗltiples dimensions: Ā«eachsliceĀ», Ā«eachrowĀ» i Ā«eachcolĀ» tornen un objecte Ā«LlesquesĀ» que permet l'enviament per proporcionar mĆØtodes mĆ©s eficients.
  • La macro Ā«@kwdefĀ» s'ha afegit a l'API pĆŗblica.
  • Es va solucionar un problema amb l'ordre de les operacions a fld1.
  • La classificació ara sempre Ć©s estable en el temps (QuickSort redissenyat).
  • La quantitat predeterminada de subprocessos BLAS ara Ć©s igual a la quantitat de subprocessos de CPU a l'arquitectura ARM i la meitat de la quantitat de subprocessos de CPU a altres arquitectures.
  • Printf: Missatges d'error reelaborats per a cadenes mal formades per a una millor llegibilitat.
  • Perfil: nova funció "Profile.take_heap_snapshot(file)" que escriu un fitxer en format ".heapsnapshot" basat en JSON compatible amb Chrome.
  • S'ha afegit suport per a l'especificació Unicode 15.
  • Les combinacions imbricades de tuples i tuples de carĆ cters amb nom ara es poden utilitzar com a parĆ metres de tipus.

Finalment si estàs interessat en poder conèixer més a l'respecte, pots consultar els detalls en el següent enllaç.


Afegir com a font preferida a Google