Kontakt os


Julia versus Python er en sammenligning, som data scientists hele tiden vender tilbage til. Med jævne mellemrum dukker et nyt sprog op, der hævder at kunne alt det, de etablerede sprog kan, bare hurtigere. De fleste fiser ud i sandet. Det har Julia ikke gjort, og det er grunden til, at det bliver ved med at blive nævnt i samme åndedrag som Python.
Dette er ikke en artikel om, hvorvidt det ene er bedre end det andet. Python har brugt tre årtier på at bevise sit værd, så vi bruger det her som målestok – en velkendt størrelse at holde en nykommer op imod. Formålet er mere enkelt: at forstå, hvad Julia rent faktisk tilbyder. Så lad os sammenligne dem.
En enkelt forudsætning, før vi starter. Vi holder os til Julias hjemmebane, data science og machine learning, da sprogets indtog i webudvikling og generel programmering stadig er på et tidligt stadie. På de områder er Python enerådende.
Undervejs vil vi vurdere de to sprog ud fra Imaginary Cloud Language Selection Matrix, vores test med tre spørgsmål til ethvert nyt sprog: Har arbejdsopgaven reelt brug for hastigheden, kan du finde folk til at løse den, og hvad koster det at køre i produktion over en årrække? (Og ja, vi fortæller dig også, hvor navnene stammer fra. Bliv hængende.)
Kort sagt:
- Julia vinder på rå numerisk ydeevne til specialiserede, beregningstunge opgaver.
- Python vinder på økosystem, rekruttering og alsidighed.
- For de fleste teams er de to sprog partnere snarere end rivaler, og valget er i lige så høj grad en forretningsmæssig beslutning som en teknisk.
Python er et af verdens mest populære programmeringssprog. Det blev introduceret i 1991 og er et højniveausprog, der er fortolket, generelt anvendeligt og understøtter flere paradigmer. Det har et imponerende bibliotek af værktøjer til web- og softwareudvikling, kunstig intelligens (AI) og maskinlæring (ML). Hvis du skal bygge noget, er sandsynligheden stor for, at du gør det i Python.
Udviklere elsker det for dets styrke, alsidighed og læsbare syntaks, som er utrolig nem at lære. Næsten 70 % af alle udviklere bruger Python til at skabe højtydende algoritmer inden for AI og ML til naturlig sprogbehandling og sentimentanalyse. Sammen med R er det standardsproget inden for datavidenskab.
Denne alsidighed skyldes bibliotekerne. Python trækker på en enorm samling af dem, skabt af et kæmpe community, til at håndtere det tunge matematiske og videnskabelige arbejde. NumPy, TensorFlow, PyTorch, Pandas og Matplotlib er blandt de mest anvendte. Det håndterer også gængse dataformater som CSV og JSON direkte ud af boksen og kommunikerer ubesværet med SQL-tabeller.
Det blev skabt i 2012 for at løse en specifik frustration i miljøet for datavidenskab og maskinlæring – ønsket om et hurtigere, matematik-fokuseret sprog – og det nåede sin første stabile udgivelse i 2018.
Hastighed er hovedpunktet. Julia kombinerer de bedste dele fra andre sprog og presser reel ydeevne ud af moderne hardware med indbygget understøttelse af samtidig, parallel og distribueret databehandling. Det er dynamisk, på højt niveau og højtydende, skabt til teknisk beregning, og syntaksen vil virke bekendt for alle, der kommer fra Python.
Her er den del, som forskere værdsætter. Julia lader dig skrive matematik som matematik. Det accepterer græske bogstaver, så en formel i koden ser ud som selve formlen og ikke som en oversættelse af den. For folk, hvis daglige arbejde er lineær algebra, er det forskellen på at tale sit eget sprog og at tale gennem en tolk.
Skaberne beskrev deres ambition i deres manifest, Hvorfor vi skabte Julia:
"Vi ønsker noget, der er lige så anvendeligt til generel programmering som Python, lige så let til statistik som R, lige så naturligt til strengbehandling som Perl, lige så kraftfuldt til lineær algebra som Matlab, og lige så godt til at binde programmer sammen som shell-scripting. Noget, der er utroligt nemt at lære, men som stadig gør de mest seriøse programmører tilfredse. Vi ønsker, at det er interaktivt, og vi ønsker, at det er kompileret. (Nævnte vi, at det skal være lige så hurtigt som C?)"
Grådigt? Måske. Men den ønskeliste er præcis det, der gør programmeringssproget Julia værd at se nærmere på.
Store løfter kræver reelle funktioner bag sig. Her er det, der gør Julia stærkt:

Den grundlæggende forskel er strukturel, ikke kosmetisk. Python er fortolket, generelt anvendeligt og biblioteksbaseret, hvilket gør det langsommere, men uendeligt tilpasningsdygtigt. Julia kompileres ved kørsel, er matematisk funderet og bygget til hastighed, hvilket gør det hurtigere, men mere begrænset i sin rækkevidde. De ligner hinanden på skærmen, men deres paradigmer og logik ligger langt fra hinanden.
Tilbage til den Imaginære Cloud-sprogvalgsmatrix, rygraden i alt nedenfor. De tre simple spørgsmål, der bør stilles, før noget når produktion, er disse: Skaber arbejdsbyrden reelt en flaskehals for rå numerisk ydeevne? Kan du ansætte eller opkvalificere folk til sproget uden at sænke leveringshastigheden? Og hvad koster det at vedligeholde i produktion over de næste fem år? Hav disse tre spørgsmål i baghovedet, mens vi gennemgår forskellene.
Python, og det er ikke tæt på. Python ligger i eller nær toppen af enhver popularitetsrangering med over 30 år på bagen og et af de største udviklerfællesskaber, noget sprog nogensinde har samlet. Da dette blev skrevet, førte det Tiobe Index, den mest kendte månedlige popularitetsliste for programmeringssprog. Julia lå på en 36. plads.
Julias fællesskab er mindre, men engageret, og meget af supporten kommer stadig fra de oprindelige forfattere, selvom gruppen vokser støt. Der findes blogs dedikeret til sproget, og folk på tværs af mange andre platforme deler, hvordan de bruger det. Efterhånden som Julia vinder indpas inden for webudvikling og andre områder, kan man forvente, at rangeringen vil stige. Den forskel er kernen i Matrixens andet spørgsmål: En Python-rolle kan besættes fra en stor pulje af kandidater, mens en Julia-rolle kræver, at du ansætter en specialist eller selv uddanner en.
Ja, og med en betydelig margin. Julia er så hurtig, at kun C slår det i dets egne mikromålinger. Årsagen er strukturel. Python er fortolket, hvilket gør det alsidigt og kraftfuldt, men langsommere, mens Julia kompileres ved kørsel via LLVM, hvilket øger både udviklings- og implementeringshastigheden.
Ordet "kompileret" er det virkelige skel. Python kører gennem en fortolker, der konverterer dit program til bytecode, som derefter eksekveres af en virtuel maskine. Julia springer den omvej over og kompilerer direkte til maskinkode, mens det kører. Det er her, Matrixens første spørgsmål viser sit værd: Hvis din arbejdsbyrde ikke skaber flaskehalse på grund af rå numerisk ydeevne, vil den hastighedsfordel måske aldrig kunne ses på bundlinjen.
Julia blev bygget til data fra dag ét med en matematikvenlig syntaks indbygget. Python opstod til et helt andet formål og voksede ind i datavidenskab, efterhånden som det blev populært. Forskellen ses i matematikken: Den er kernen i Julia, hvorimod Python har brug for et eksternt bibliotek som NumPy for at udføre statistisk arbejde.
Maskinlæring fortæller den samme historie. Julias skabere ønskede et hurtigt, kraftfuldt sprog, der kunne håndtere lineær algebra og de ligninger, maskinlæring afhænger af, helt naturligt. Python håndterer også disse opgaver via NumPy, men det låner evnen i stedet for at være bygget med den. For et leveringsteam kan indbygget matematik betyde mindre "lim-kode", der skal vedligeholdes gennem en models levetid, men den besparelse opnås kun, hvis du kan finde folk, der allerede tænker i Julia.
Bedre end man skulle tro, og trafikken går primært én vej. Julia kan integrere kode fra Python eller C og bruge deres biblioteker, og kode skrevet i disse sprog kan konverteres til Julia. Det modsatte er ikke tilfældet. Julia kan også kommunikere direkte med Python og dele data mellem de to.
Begge er dynamisk typede, og begge er lette at læse og skrive, så overfladisk set minder de om hinanden. Den største forskel er, at Julia er mere matematisk orienteret, hvilket gør det muligt for dataloger at indsætte videnskabelige formler direkte i koden og få høj ydeevne ud af mindre hardware. Python er et generelt sprog, der mangler nogle af disse specialiserede funktioner, men som kompenserer for det med sit enorme bibliotek af moduler. Julias dokumentation går i dybden med de finere detaljer. Forretningsmæssigt kan den matematiske tilgang forkorte vejen fra forskning til en færdig model, selvom det begrænser puljen af programmører, der kan sætte sig ind i koden uden forudgående kendskab.
En fair vurdering må også se på omkostningerne, for de påvirker alle produktionen. Her er områderne, hvor Julia kræver mere af dig end Python.
Intet af dette udelukker Julia. Det betyder blot, at hastighedsgevinsten skal retfærdiggøre disse omkostninger, hvilket er præcis, hvad Matrix er bygget til at teste.
Her er det, du har ventet på.
"Python" stammer fra Monty Python's Flying Circus, BBC-komedieserien fra 1970'erne. Guido van Rossum læste de udgivne manuskripter, mens han udviklede sproget, og besluttede, at navnet passede. Selve sproget viste sig dog at være langt mere seriøst end sit ophav.
"Julia" har ingen stor oprindelseshistorie. En person foreslog det i en bisætning til Alan Edelman som et godt navn til et programmeringssprog. Han var enig. Det er hele historien.
Det afhænger af opgaven, og IC Language Selection Matrix forvandler det vage svar til tre konkrete tests. For det første: Er arbejdsbyrden reelt begrænset af numerisk ydeevne? For det andet: Kan du bemande sproget uden at forsinke leveringen? For det tredje: Har du råd til at køre det i produktion i årevis? Julia tilbyder overlegen ydeevne til numerisk og videnskabelig databehandling og har indbygget parallelisme, hvilket gør det fremragende til tunge beregninger, så det består typisk den første test med glans. Python bringer et enormt økosystem af biblioteker og et kæmpe community med sig, så det vinder typisk den anden og tredje test. Det rigtige valg afhænger af, hvilket af disse spørgsmål der betyder mest for dit projekt.
Julia er stadig et specialværktøj, der primært bruges af en nichegruppe. I takt med at denne gruppe og sprogets funktioner vokser, er det på vej til at blive et sprog, der for alvor er efterspurgt.
Python er derimod modent, bruges af millioner og har flere tredjepartspakker, end nogen kan tælle. Det dukker op overalt, fra spil til datavidenskab, det er en fast del af enhver udviklers værktøjskasse, og det forsvinder ingen steder. Nye sprog finder typisk en måde at integrere med Python på frem for at erstatte det.
Hvis du arbejder med datamodeller, så ja. Den enorme mængde information, vi producerer i dag, kræver et sprog, der hurtigt kan håndtere komplekse modeller, og det er netop Julias speciale. Det bliver allerede brugt til finansiel analyse og klimadata, og der findes hele tiden nye anvendelsesmuligheder for det.
Så er det slut med Python? Nej, selvfølgelig ikke. Python er for etableret, for velunderstøttet og for populært til at blive væltet af pinden af en nykommer, og Julia forsøger heller ikke at erstatte det. Betragt det mindre som en efterfølger og mere som et specialværktøj, der endelig er skarpt nok til den opgave, det blev bygget til. Hvis dit arbejde involverer tung matematik og store modeller, er programmeringssproget Julia din tid værd.
Hvis I overvejer at skifte på teamniveau, er det svære spørgsmål sjældent selve sproget, men derimod menneskene og systemerne omkring det.
Når begejstringen lægger sig, bliver valget kommercielt. Kør det gennem Imaginary Cloud Language Selection Matrix, før du låser dig fast på et produktionssystem.
Valg af programmeringssprog er i bund og grund et sats på dit team, din køreplan og din produktionsrisiko, og der findes sjældent et entydigt svar i lærebøgerne. Imaginary Cloud hjælper ledere inden for engineering og data med at træffe den beslutning med udgangspunkt i jeres specifikke situation, uanset om I skal lægge en strategi for valg af sprog eller opbygge jeres datavidenskabelige kompetencer fra bunden.
Hvis du overvejer Julia, Python eller den rette kombination af begge, så tag en snak med vores team af konsulenter inden for datavidenskab og softwareudvikling.
Ja. I sine egne mikro-benchmarks bliver Julia kun overgået af C. Det kompileres til maskinkode ved runtime via LLVM, mens Python er et fortolket sprog, hvilket gør Python mere alsidigt, men langsommere. Til numeriske opgaver og maskinlæring er det netop i det gab, at Julia for alvor viser sit værd.
Det afhænger af opgaven. Julia vinder på numerisk og videnskabelig beregning og har indbygget parallelisering, så det er fremragende til tunge beregninger. Python vinder på sit økosystem, rekrutteringsmuligheder og generelle anvendelighed. Det rigtige valg afhænger af din opgave og dit team.
Ja, primært i én retning. Julia kan kalde Python- og C-biblioteker, dele data direkte med Python og konvertere kode skrevet i disse sprog. Den modsatte vej, fra Julia og tilbage til dem, fungerer ikke.
Ja. Julia blev skabt i 2012, med sin første stabile udgivelse i 2018, specifikt som et hurtigere, matematik-fokuseret sprog. Lineær algebra og statistik er kernen i sproget, hvorimod Python tilgår disse via biblioteker som NumPy.
Tre ting skiller sig ud, og alle tre udgør en risiko i produktionen. Julias "compile-on-run"-model medfører en ventetid ved første kørsel, kendt som "time to first plot". Dets pakke-økosystem er yngre og mindre omfattende end Pythons årtier lange bibliotekssamling. Og markedet for talenter og konsulenter er langt mindre, hvilket gør det sværere at sikre dækning og kontinuitet. Python har ingen af disse udfordringer i samme grad.
Når tre ting er opfyldt på samme tid: Arbejdsbyrden er reelt flaskehals-begrænset af tunge numeriske beregninger, denne flaskehals har en målbar forretningsmæssig omkostning, og dit team kan håndtere sproget uden at sænke leveringstakten. Hvis bare én af disse mangler, vinder Python kombineret med NumPy normalt på de samlede omkostninger.
Hvis du arbejder med datamodeller, ja. Julia håndterer komplekse modeller hurtigt og bliver allerede brugt til finansiel analyse og klimadata. Python forsvinder heller ikke lige foreløbig, så for de fleste er svaret at lære Julia sideløbende med Python, ikke i stedet for.

Indholdsforfatter og digital medieproducent med interesse i det symbiotiske forhold mellem teknologi og samfund. Bøger, musik, og guitarer er en konstant.

Alexandra Mendes er Senior Growth Specialist hos Imaginary Cloud med 3+ års erfaring med at skrive om softwareudvikling, AI og digital transformation. Efter at have gennemført et frontend-udviklingskursus fik Alexandra nogle praktiske kodningsevner og arbejder nu tæt sammen med tekniske teams. Alexandra brænder for, hvordan nye teknologier former erhvervslivet og samfundet, og hun nyder at omdanne komplekse emner til klart og nyttigt indhold for beslutningstagere.
People who read this post, also found these interesting: