Tjept statistiksprog runder version 1.0

4 kommentarer.  Hop til debatten
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.
23. august 2018 kl. 13:11
errorÆ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
Debatten
Log ind 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?