Tjept statistiksprog runder version 1.0

Illustration: ismagilov/Bigstock
På bare seks år har det unge sprog Julia fundet mange brugere. Hemmeligheden er statistiske og numeriske evner, og en fart der slår Python og R.

På ganske få år har det helt friske sprog Julia fundet sig en større fanskare. Da sproget kom til verden i 2012, var det ønsket om at forene egenskaber fra en række andre sprog, der var motivationen.

Det skulle have en hastighed som C, dynamiske sprogfeatures som i Ruby, makroer som Lisp og velkendt matematisk notation som i Matlab, vidtrækkende anvendelsesområder som med Python, statistiske faciliteter som i R og tekstbehandling som i Perl.

Samtidig skulle sproget have en open source-licens, være nemt at lære og have interaktive muligheder.

Noget kunne tyde på, at den ambitiøse målsætning er lykkedes, for selv om Julia stadig er et ganske lille sprog i udbredelse, med en 50.-plads på popularitetsindekset Tiobe, så får sproget meget omtale.

Julia har netop rundet versionsnummeret 1.0, der markerer sprogets udtræden af barndommen og ind i de voksne sprogs rækker.

Det er især Julias ydelse, som giver sproget fortrin i forhold til de mere eller mindre fortolkede sprog som R og Python.

»Hvis du er matematiker, videnskabsmand eller ingeniør, har du historisk haft mulighed for at vælge et sprog, der var hurtigt, som C ++ eller Java, eller et sprog, der er nemt at lære, som Matlab, R eller Python. I Julia skabte vi et sprog, der var hurtigt og nemt,« har en af sprogets bagmænd, Viral Shah, udtalt til mediet Quartz.

Han fortæller, at den primære inspiration bag udviklingen af Julia var at se, hvordan mange mennesker måtte skrive det samme program to gange:

Dataforskere vil først bruge et værktøj som Python eller R til at udvikle en algoritme, fordi det gør det nemt at udforske dataene og lave diagrammer i disse sprog. Og når forskerne var tilfredse med algoritmen, skulle de så omskrive programmet i C ++ eller Java for at få effektiv ydelse.

Julia er hurtigere end Python og R, fordi sproget er specielt designet til hurtigt at gennemføre den grundlæggende matematik, som benyttes i datavidenskab, såsom matrixudtryk og lineær algebra.

# calculates x for 0 = a<em>x^2+b</em>x+c, arguments types can be defined in function definitions
function quadratic2(a::Float64, b::Float64, c::Float64)
    # unlike other languages 2a is equivalent to 2*a
    # a^2 is used instead of a**2 or pow(a,2)
    sqr_term = sqrt(b^2-4a*c)
    r1 = quadratic(a, sqr_term, b)
    r2 = quadratic(a, -sqr_term, b)
    # multiple values can be returned from a function using tuples
    # if the return keyword is omitted, the last term is returned
    r1, r2
end

Et simpelt eksempel på Julia, fra Julia By Example.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (4)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Ulf Worsøe

Lige en disclaimer: Jeg bruger Julia en del, men aldrig R.

Julia bruger LLVM som backend til at generere kode, og er ret aggressiv med at lave statisk kode. Det er generelt ikke helt så hurtigt som C, men det er mulig at skrive kode numerisk kode i ren Julia der er en relativt lille faktor langsommere end C.

  • 0
  • 0
Log ind eller Opret konto for at kommentere
IT Company Rank
maximize minimize