Raamwerken, programmeertalen: Codering vanaf nul vs. gebruik van een framework
Opfrissen van de verschillen tussen deze twee termen: een programmeertaal is in wezen de manier waarop we met computers communiceren en hen vertellen wat ze moeten doen met behulp van syntaxis en semantiek.
Een framework daarentegen is een verzameling programma’s die bij elkaar worden gebracht om een taak uit te voeren, coderen efficiënter te maken en in het algemeen het leven van programmeurs gemakkelijker te maken.
Nu staan de twee niet precies tegenover elkaar, maar er is een voortdurende discussie in de programmeergemeenschap over de vraag wat voor programmeurs belangrijker is om meer vertrouwd mee te zijn: Programmeertalen (de nuts and bolts) of frameworks (sneller en, soms, functioneler).
Enkele van de populairdere frameworks waar je misschien al van gehoord hebt zijn onder andere Ruby on Rails en Angular.JS. Maar zowel programmeertalen als de bijbehorende frameworks blijven elke dag stijgen en dalen.
Dus wat betekent dit voor u?
NEXT GENERATION DEVOPS: VALUE STREAM MANAGEMENT
Helen Beal (DevOps Institute.)
HOW TO GROW YOUR SERVERLESS TEAM
Sheen Brisals (The LEGO Group)
MLOPS: CONTINU LEVERING VAN MACHINE LEARNING SYSTEMEN
Hauke Brammer (finpair GmbH)
Frameworks vs. maatwerkoplossingen
In een perfecte wereld zou je alles moeten weten over zowel frameworks als talen. Maar we leven niet in een perfecte wereld en je tijd is kostbaar.
Laten we eens kijken naar de verschillen tussen de twee opties en waarom je waarschijnlijk meer baat hebt bij een uitgebreide kennis van frameworks dan wanneer je je terdege bewust bent van alle ins en outs van de programmeertaal.
Bouwen vanaf de basis
Ontwikkelen is niet gemakkelijk, dus waarom zou je het jezelf moeilijker maken?
Het is een vrij eenvoudige vergelijking, op het meest fundamentele niveau: Waarom helemaal opnieuw beginnen als je kunt profiteren van tools die al zijn ontworpen om je te helpen bij je programmeerinspanningen?
Het punt is dat veel frameworks al veel voor je hebben gedaan en voor jou een efficiëntere ervaring kunnen creëren.
Tuurlijk, je bent het misschien niet helemaal eens met elke beslissing die de maker van het framework heeft genomen. Misschien kunt u het zelfs beter zelf doen als u de taal overbrengt naar de coderingssyntax van uw voorkeur. Maar dit gaat allemaal ten koste van tijd.
Het overzetten van alles naar de taal van uw keuze kan dagen en mogelijk zelfs jaren duren, afhankelijk van hoe uitgebreid het framework is of wat u precies wilt kopiëren.
U krijgt misschien niet alles wat u zoekt uit het framework, of in ieder geval niet precies zoals u het zou willen, maar het alternatief is vanaf nul beginnen, en dat is niet echt haalbaar gezien de tijdsdruk die op ons wordt gelegd puur door het feit dat we sterfelijk zijn en geen onbeperkte hoeveelheid tijd hebben om aan alles te sleutelen zodat het precies is zoals we het willen.
SEE ALSO: Technologietrends 2017: Here are the top frameworks
Frameworks make things simpler
Hier een vrij handige blik op alle manieren waarop Ruby on Rails gebruikers helpt een aantal van de minutiae van eindeloze uren coderen te verminderen.
Kleine dingen zoals het verwijderen van puntkomma’s en andere handige trucjes stellen programmeurs in staat om hier en daar een paar bochten af te snijden en niet te worden gestraft.
Natuurlijk heb je nog steeds een vrij uitgebreide kennis van Ruby nodig om aan Rails te kunnen werken, maar aan het eind van de dag hoef je geen expert-programmeur in Ruby te zijn om over te stappen op Rails.
Je bent nog steeds aan het coderen, maar een heleboel kleine details en meer frustrerende aspecten van het coderen worden opgeruimd door goede frameworks, en dat is een bonus die je niet wilt missen.
U moet zich al zorgen maken over zoveel andere aspecten van uw code, van algemeen ontwerp tot beveiligingsproblemen, dus waarom zou u het framework niet wat van het zware werk voor u laten doen?
Automatisering neemt het over
Er was een tijd dat elke toetsaanslag exact moest zijn om uw programma te laten werken zoals u dat wilde. Maar met de technologische vooruitgang worden ook de scherpe kantjes ervan afgehaald.
Niet langer hoef je duizenden regels code met een fijne kam door te nemen. In plaats daarvan worden veel van die zinloze toevoegingen of misstappen eruit gehaald door compilers en geautomatiseerde protocollen die zijn ontworpen om deze onnodige stukjes code te vinden.
Door deze evolutie is de nadruk minder komen te liggen op hoe precies en vertrouwd je moet zijn met een bepaalde code, omdat de gevolgen van het maken van een fout of het niet precies goed doen van dingen veel groter waren.
Leer de juiste gereedschappen voor de taak
Zoals ik aan het begin van dit stuk al zei, coderen evolueert. Het verandert. Het groeit.
En een van de manieren waarop het is gegroeid, is de afhankelijkheid van applicatieprogramma-interfaces (API’s) en algoritmen om je te helpen de taak te volbrengen die je je hebt voorgenomen.
Frameworks, bijvoorbeeld, definiëren en implementeren gewoonlijk algoritmen, en de algoritmen correct krijgen kan soms crucialer zijn voor je programmeersucces dan de specifieke syntaxis.
Opnieuw, je kunt deze algoritmen opnieuw configureren, maar je loopt het risico een fout te maken die je project kan doen ontsporen. Op dezelfde manier is het ook een kwestie van tijd. Waarom uren werk toevoegen en het risico vergroten dat je code in de war raakt, als je in plaats daarvan een manier kunt vinden om je te redden met een algoritme dat al door het framework is geïmplementeerd?
Opnieuw, het geeft je misschien niet alles wat je wilt. Maar zoals het liedje van de Rolling Stones zegt, het geeft je wat je nodig hebt.
SEE ALSO: Nieuw JAX Magazine nummer – What’s next for frameworks?
Wat frameworks toevoegen dat programmeertalen niet doen
Frameworks en programmeertalen zijn met elkaar verweven. Het is niet binair. Het is niet of/of. Ze werken samen en programmeurs moeten beide redelijk goed kennen om echt effectief te zijn. Natuurlijk zul je soms geconfronteerd worden met situaties die complexe oplossingen vereisen die een framework niet kan oplossen. Bijvoorbeeld, soms zal een uniek probleem een specifieke set van oplossingen vereisen die een framework niet kan bieden, en daarom moet je terugvallen op programmeren.
Maar hier is het ding – je kunt je maar op zo veel concentreren met je tijd om zowel frameworks als de talen die ze verbeteren te leren. Tijd is een hulpbron en je moet het verstandig besteden. En als je eenmaal voldoende kennis hebt van zowel frameworks als programmeertalen, welke moet je dan meer tijd investeren in het leren ervan? Welke zal je uiteindelijk een betere programmeur maken?
Het antwoord is frameworks. Ze maken je snel, efficiënter, en minder vatbaar voor het maken van domme menselijke fouten. Ze staan gelijk aan snelweg versus stadsverkeer. Snelwegen zijn gestroomlijnd en hebben veel obstakels zoals gebouwen en lichten verwijderd. Natuurlijk vind je de richting van een snelweg niet altijd goed, of vind je dat een gat moet worden gerepareerd, of dat het efficiënter zou zijn om bepaalde stukken om te leggen, maar je stapt toch niet uit je auto om hem met de hand opnieuw aan te leggen?
Want als het doel is om sneller en efficiënter te reizen, dan zou het veel te lang duren om de snelweg opnieuw aan te leggen in plaats van hem gewoon te gebruiken zoals hij is.
Dat is in feite de deal die je krijgt met raamwerken. Sneller, efficiënter, veiliger. Misschien niet altijd volgens je precieze specificaties, maar gezien het alternatief zijn frameworks er om je leven gemakkelijker te maken en ze bieden gewoon meer dan programmeertalen alleen kunnen.