Tjept statistiksprog runder version 1.0

23. august 2018 kl. 13:114
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.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

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.

Artiklen fortsætter efter annoncen

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.

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

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

4 kommentarer.  Hop til debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
4
23. august 2018 kl. 15:49

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.

3
23. august 2018 kl. 14:29

Der er Julias egen oversigt:

https://julialang.org/images/benchmarks.svg

Nu har jeg ikke lige læst den test du linker til, men man skal huske at der er mange funktioner i R og python som er kodet i C. Så hvis det er en af de funktioner der er testet op imod giver det jo ikke mening.

1
23. august 2018 kl. 14:09

Det kunne være interessant at høre hvordan Julia er hurtigere end andre compilerede sprog. Bruger den i højere grad vektorenheder på CPUerne eller hvad?