Last chance! 50% off DataCamp Premium
Sale ends in
Je weg vinden in het doolhof van programmeertalen kan overweldigend zijn, zeker als je nieuw bent in data science en analytics. Twee concurrerende talen zijn Julia en R. In dit artikel vergelijken we de belangrijkste elementen van de programmeertalen Julia en R die hen van elkaar onderscheiden, plus de huidige arbeidsmarkt voor elk van deze skills.
De programmeertaal R is gespecialiseerde statistische software die al bijna 30 jaar bestaat. Het is een volwassen programmeertaal met packages waarmee je vrijwel alles kunt doen wat je wilt. Toch wordt R vooral gebruikt voor statistische toepassingen, waaronder data science en vrijwel alle vormen van data-analyse en datamanipulatie. We hebben een Introductie tot R-cursus die je snel de basis bijbrengt.
Voor meer general-purpose programmeren kies je doorgaans een andere taal dan R. Een van die talen is Julia, een veel nieuwere programmeertaal die pas zo’n 10 jaar bestaat. Julia is gespecialiseerd in allerlei vormen van wetenschappelijk programmeren, maar stelt je ook in staat om algemenere software te bouwen. De opvallendste eigenschap van Julia is de snelheid. Het kan grote hoeveelheden data en complexe berekeningen razendsnel aan, terwijl het toch makkelijk te gebruiken is. Voor een introductie tot Julia kun je onze cursus bekijken.
Als je een data-gerelateerd vakgebied instapt, zoals data science, data-analyse of statistiek, moet je een programmeertaal kiezen om te leren. Die keuze hangt af van veel factoren, zoals de sector waarin je wilt werken en de aard van je functie. In een apart artikel lees je meer over de populairste programmeertalen voor data scientists.
Een cruciaal onderdeel van het kiezen van een programmeertaal is echter: gewoon beginnen. Er is geen perfecte taal die elk probleem oplost. Sommige talen zijn beter of efficiënter in het oplossen van bepaalde problemen. Daarom zul je in je loopbaan in data waarschijnlijk meer dan één programmeertaal en andere tools moeten leren.
Het is ook belangrijk om je telkens op één taal te richten, zodat je die sneller onder de knie krijgt dan wanneer je meerdere talen tegelijk probeert te leren.
Een uitstekende eerste taal om te leren is R. Maar Julia groeit uit tot een sterke concurrent die elke beginnende of ervaren programmeur of analist zou moeten overwegen. We hebben een aparte blogpost over de opkomst van Julia en of het de moeite waard is om te leren.
Julia en R zijn allebei gespecialiseerde programmeertalen die zijn ontworpen om data te analyseren en manipuleren. Daarmee zijn het goede keuzes voor data scientists, data-analisten en statistici.
In deze sectie bespreken we de vier belangrijkste elementen van deze talen die hen van elkaar onderscheiden:
Een Interactive Development Environment (IDE) is een applicatie om code te schrijven, testen en debuggen, vaak binnen één grafische gebruikersinterface. Ze bieden veel functies die je helpen om sneller nieuwe toepassingen en oplossingen te ontwikkelen.
De meest gebruikte IDE is Visual Studio Code, of kortweg VSCode. Je kunt community-extensions aan VSCode toevoegen die bijna elke programmeertaal ondersteunen, waaronder Julia en R. VSCode is echter de populairste IDE onder Julia-gebruikers met de Julia for VSCode-extensie.
R-Studio is een IDE die synoniem is geworden met de programmeertaal R. Het is lastig om een R-programmeur te vinden die R-Studio niet gebruikt, of op zijn minst geprobeerd heeft, als IDE. R-Studio ondersteunt ook andere talen, zoals Julia en Python. Bekijk onze volledige R-Studio-gids voor meer informatie.
Wat notebooks betreft, kun je Jupyter Notebooks gebruiken voor zowel Julia als R. De naam Jupyter staat zelfs voor Julia, Python en R. Bekijk ons Jupyter-cheat sheet om meer te weten te komen over de notebook-app.
Hoewel Jupyter gemeengoed is geworden in data science, kent het wat nadelen, met name bij versiebeheer en reactiviteit. R en Julia kunnen hier gespecialiseerde notebooksoftware inzetten die deze nadelen vaak ondervangt.
De R-Studio IDE biedt het R Markdown-bestandsformaat, waarmee je code in notebooks kunt schrijven. Julia heeft daarentegen gespecialiseerde notebooksoftware in de vorm van een package genaamd Pluto. Pluto-notebooks zijn reactief en interactief, waardoor codecellen altijd up-to-date zijn en je interactieve elementen zoals schuifregelaars en invoervelden kunt toevoegen.
Julia en R hebben een vergelijkbare syntaxis omdat beide dynamisch getypeerde, geïnterpreteerde talen zijn met dezelfde controlestructuren zoals lussen en conditionele logica. Je kunt deze cheat sheets gebruiken om de syntaxis van deze talen snel en gemakkelijk te raadplegen:
Er zijn echter twee hoofdpunten in de syntaxis die je moet meenemen bij het vergelijken van R en Julia:
R gebruikt een objectgeoriënteerde aanpak via twee systemen genaamd S3 en S4. De oorspronkelijke implementatie van R gebruikt single dispatch in het S3-systeem om de meest geschikte methode te bepalen op basis van de klasse van het eerste argument van een functie. Het nieuwere S4-systeem gebruikt echter multiple dispatch, waarbij types worden gematcht bij het kiezen van de meest geschikte aan te roepen methode.
Multiple dispatch is ingebakken in het design van Julia, en de implementatie ervan is erg intuïtief en ontzettend snel.
Bovendien hoef je in Julia geen gevectoriseerde code te schrijven, omdat het zonder vectorisatie al extreem snel is. In R is gevectoriseerde code daarentegen een vereiste om snelheid en performance te verbeteren.
Er staan net geen 19.000 packages op de CRAN-repository die alle beschikbare R-packages herbergt. Dat is een indrukwekkend aantal! Omdat R al decennialang bestaat, was er meer dan genoeg tijd voor R-gebruikers en experts om eigen packages te bouwen en in te dienen. Dit maakt R een uiterst veelzijdige programmeertaal die oplossingen kan bieden voor veel problemen.
Aan de andere kant zijn er meer dan 7.400 packages geregistreerd in Julia’s algemene registry. Aangezien Julia relatief jong is, heeft het nog tijd nodig om een volwassen taal als R in te halen.
Zowel R als Julia stellen je in staat om functies tussen elkaar en vanuit andere talen zoals Python aan te roepen. Een goed voorbeeld is het populaire deep learning-Pythonpackage Keras, dat je vanuit zowel R als Julia kunt aanroepen. Een nadeel is echter dat je dan enkele voordelen van de taal van waaruit je het aanroept misloopt. Roep je bijvoorbeeld een Pythonpackage aan vanuit Julia, dan verlies je een deel van Julia’s enorme snelheid en multiple dispatch.
Bovendien regelen zowel R als Julia het packagemanagement uitstekend. R heeft speciale libraries voor package- en dependencybeheer: Packrat en renv. Beide laten je geïsoleerde projectomgevingen maken en pakketafhankelijkheden bijhouden.
Julia heeft een ingebouwde packagemanager, Pkg, die installatie, updates en verwijdering afhandelt. Pkg laat packages beheren binnen de lokale omgeving waarin je werkt. Alles wordt opgeslagen in een lokaal manifestbestand dat je ook onder versiebeheer kunt zetten. Het écht mooie aan packagemanagement met Pkg in Julia is dat omgevingen stapelbaar zijn. Dit betekent dat je de packages en afhankelijkheden uit een andere omgeving kunt gebruiken binnen de omgeving waarin je werkt.
Door de populariteit en brede adoptie van R zijn er veel meer resources en communitysupport dan voor Julia. Ter illustratie vergelijken we het aantal (ten tijde van schrijven) actieve vragen op Stack Overflow tussen Julia en R — dat is rond de 470.000 voor R en slechts rond de 11.000 voor Julia. Dit toont het grote verschil in aantal gebruikers per taal.
Er zijn echter inmiddels veel resources over Julia beschikbaar, met voortdurend nieuwe toevoegingen naarmate de taal in gebruikersbasis en populariteit groeit. De Julia-community is bovendien zeer actief en verwelkomt nieuwe gebruikers. Dat blijkt uit het percentage op dit moment onbeantwoorde vragen op Stack Overflow tussen Julia en R — dat is rond de 26% voor R en slechts 15% voor Julia.
We hebben de informatie over beide talen in een tabel gezet om je te helpen de belangrijkste overeenkomsten en verschillen te begrijpen:
|
Kenmerk |
Julia |
R |
|
IDE’s en Notebooks |
VSCode, Pluto-notebooks (reactief en interactief) |
R-Studio, R Markdown-notebooks |
|
Syntaxis |
Multiple dispatch, geen noodzaak tot vectorisatie |
Single dispatch, vereist vectorisatie |
|
Packages |
Meer dan 7.400 packages in de registry |
Bijna 19.000 packages op de CRAN-repository |
|
Resources en Support |
Sterke online community en documentatie |
Sterke online community en uitgebreide historie |
|
Bekend om |
Snelle performance |
Groot aantal packages, veelzijdigheid |
|
Interoperabiliteit met andere talen |
Kan functies aanroepen uit andere talen, waaronder R en Python |
Kan functies aanroepen uit andere talen, waaronder Julia en Python |
Deze tabel geeft een globaal overzicht van de belangrijkste verschillen tussen Julia en R. Let op: dit is geen uitputtende lijst van alle verschillen tussen beide talen en er kunnen andere factoren meespelen bij de keuze tussen Julia en R voor een specifiek project.
R is in de academische wereld en het bedrijfsleven veel breder geadopteerd dan Julia, waardoor het veel makkelijker is om een baan te vinden als je kunt aantonen dat je vaardig bent met R.
Hoewel minder bedrijven Julia gebruiken in hun data science- en analyticsprojecten, begint de programmeertaal Julia aan populariteit te winnen. We hebben een blogpost over de toepassingen van Julia. Bekijk die als je wilt weten waarvoor Julia vandaag wordt gebruikt. Steeds meer bedrijven zien het grote voordeel van Julia bij het ontwikkelen van oplossingen voor hun businessproblemen. Dat is vooral zichtbaar in de potentiële kostenbesparing bij het draaien van Julia-code in productie dankzij Julia’s indrukwekkende snelheid en performance.
Om een idee te krijgen van de baanvooruitzichten voor elk van deze skills, vergelijken we het aantal vacatures (volgens LinkedIn) in de VS voor R en Julia waarin ze als vereiste skills worden genoemd. Er zijn momenteel meer dan 150.000 openstaande functies voor R en slechts 1.190 voor Julia.
Data science en analytics zijn vakgebieden in ontwikkeling waarin je meerdere tools of programmeertalen moet gebruiken en oplossingen moet bouwen. Als je je carrière in data begint, zul je dus eerst een taal moeten kiezen om te leren — dat kan R, Julia, Python, MATLAB, SAS of zelfs C zijn.
Het belangrijkste is echter: kies er één en ga aan de slag. Uiteindelijk zul je je skillset moeten uitbreiden en het is sterk aan te raden om een tweede programmeertaal te leren. Onderweg pik je mogelijk ook skills op in allerlei tools — zoals datavisualisatietools als Power BI en Tableau. Je kunt ook datavisualisatie met R leren met DataCamp’s track.
Op basis van de populariteit van R en het aantal vacatures in het bedrijfsleven is R een uitstekende eerste keuze voor een beginner in data science en aanverwante vakgebieden. Maar als je al een paar jaar in een data-gerelateerde rol werkt, kun je veel waarde halen uit het leren van Julia, omdat het aanzienlijke voordelen kan opleveren voor je huidige of toekomstige werkgever.
Julia staat algemeen bekend om zijn snelle performance, vooral bij numerieke en wetenschappelijke computing. R is niet zo snel als Julia, maar heeft een groot aantal packages en is veelzijdig, wat het voor bepaalde projecten een betere keuze kan maken.
Ja, het is mogelijk om functies tussen R en Julia aan te roepen, evenals vanuit andere talen zoals Python. Dit kan handig zijn als je in één project wilt profiteren van de sterke punten van beide talen.
Zowel R als Julia kunnen met Jupyter Notebooks worden gebruikt en hebben sterke online communities en documentatie. Elke taal heeft echter ook eigen tools en resources, zoals R-Studio voor R en Pluto-notebooks voor Julia.
Julia- en R-cursussen
Cursus
Cursus
Cursus

blog
Adel Nehme
15 min