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ç.