Sql is de broccoli onder de it-talen: we weten dat het goed voor ons is, maar daarom vinden we het nog niet lekker. Al beleeft dat zogenaamde saaie sql bij diverse profielen een comeback. ‘Ook als ontwikkelaar is kennis van sql erg nuttig.’
Sla er de laatste editie van de belangrijkste indexen van programmeertalen op na: zowel bij Tiobe als bij IEEE zit sql in de lift. Telkens stevig in de top 10 van meest gebruikte programmeertalen.
Dat is opmerkelijk. Sql is enerzijds al geen klassieke programmeertaal. Het is een query-taal voor onder meer het bevragen en aanpassen van gegevens in een relationele database. ‘Maar sql is vandaag wel een van de meest gevraagde vaardigheden op it-vacatures’, oppert Stephen Cass, special projects editor bij IEEE Spectrum. ‘Al is het wel vaak in combinatie. Werkgevers vragen kennis in combinatie met bijvoorbeeld C++ of Java. Ze willen een bepaalde talenkennis plus sql.’
Anderzijds is het opmerkelijk dat sql, zeker in it-termen, al vrij oud is. De taal werd in de loop van de jaren zeventig ontwikkeld door IBM. In de jaren tachtig werd sql gestandaardiseerd en vervolgens kreeg het diverse versies en smaken. ‘Veel toepassingen hebben tegenwoordig een front-end of middleware laag die praat met een back-end databank’, verklaart Stephen Cass het aanhoudende belang van sql. ‘Waarom het wiel opnieuw uitvinden en proberen je eigen database en bijbehorend netwerk interface protocol te hacken als er zoveel sql-implementaties beschikbaar zijn?’
Verdomhoekje
Sql is altijd in gebruik gebleven, maar was daarom lang niet in de mode. Met de opmars van nieuwe technologieën en alternatieve databanken en databanksystemen, genre nosql, kwam sql in de hoofden van heel wat it’ers zelfs eerder in het verdomhoekje terecht.
Maar perceptie is niet altijd realiteit. ‘De overgrote meerderheid van databasetoepassingen gebruikt sql en dat is nooit veranderd. Zelfs toen sommige bedrijven nosql aan het uitproberen waren, heeft dit er niet toe geleid dat sql aan populariteit heeft ingeboet’ aldus Bill Karwin, datawetenschapper en auteur in een reactie op Quora. ‘De meeste bedrijven die nosql inschakelden, gebruikten dat voor nieuwe projecten. Sql vervangen door nosql voor bestaande projecten gebeurde niet zo vaak’, stelt hij
Dataspecialisten halen aan dat die nosql-variant zeker van tel is voor specifieke noden of toepassingen, zoals scaling. En dan is er nog de diversiteit van het nosql-landschap met de varianten die vaak opduiken: key-value stores, document stores, column family data stores en graph databases. Al is voor klassiek gebruik (pakweg salarisadministratie-databases, inventaris-databases of werknemers-databases) en een beperkt systeemaanbod sql doorgaans eerste keuze.
Back to business
Los daarvan, lijkt sql dus zelfs een heuse comeback te beleven. Veel hedendaagse data- en databasemanagementsystemen, zoals Dremio en Snowflake gaan bijvoorbeeld volop met sql aan de slag. ‘Bij ons maken drie- à vierhonderd collega’s, zowel zakelijke als technische profielen, actief gebruik van sql, en zijn daar ook in getraind’, stelt Iliana Iankoulova, data lead bij online supermarkt Picnic en Snowflake-gebruiker in een interview tijdens de Snowflake Summit. ‘Sql is onze gemeenschappelijke taal.’
Met deze aanpak gaat Picnic ook een beetje terug naar het basisbeginsel van sql. Indertijd werd de query-taal ontwikkeld als een vraagtaal voor de eindgebruiker. Het idee was namelijk dat businessmanagers zelf sql zouden gebruiken om bedrijfsgegevens te analyseren. Of hoe sql helemaal back to business lijkt. ‘Mensen zijn vandaag ook veel meer technologie gedreven’, stelt Iankoulova. ‘Dat speelt zeker ook.’
Een uitstekende ontwikkeling; helemaal als SQL wordt gecombineerd met beslissingstabellen.
https://dmcommunity.org/2021/09/02/is-sql-for-business-or-it/
SQL ondersteunt CRUD, dus is naast DQL ook DDL/DML.
Wat leuk bij Tiobe die stijgers te zien : javascript, c++, sql, MATLAB, fortran en cobol.
SQL is in opmars omdat de applicatiematerie-inhoudelijke kant van middleware overbodig is geworden. Ik kan niets bedenken wat in C# kan maar niet in SQL al was het maar omdat de C# en C++ code kunt ‘deployen’ als common language runtime stored procedures in de database en dus helemaal niet voor heen en terug hoeft naar de middleware. Omgevingen zoals Transact -SQL zijn daardoor o.a. geschikt als software client naar andere WebAPI’s maar kunnen met een reverse proxy als lege middleware front end ook perfect de hoofdontwikkelomgeving zijn voor API- en Webhost applicaties. Vroeger ging alles via de middleware (met heel veel problematiek van dien) omdat er gewoekerd moest worden met hoeveelheid werkgeheugen en traagheid van opslaggeheugen. Maar door razend snel en relatief spotgoedkoop opslaggeheugen is die afwegingsbalans totaal de andere kant opgeslagen. Er zijn nog steeds ongelooflijke nadelen aan verbonden als je voortdurend in roundtrips van middleware naar de database gaat en er is geen enkel voordeel meer. Ook is code brengen of data halen inmiddels een totaal andere afweging geworden. Ten derde is de ‘stringificatie’ van data (versus binary data) een geheel andere geworden omdat omdat het tegenwoordig altijd als Ascii aankomt en ook weer in dat formaat vertrekken moet. Het aantal roundtrips van middleware naar data is denk ik voor 80% of zo bepalend voor de prestaties van een API of website. Dat kun je tegenwoordig altijd terugbrengen naar één.
Leuk artikel en goed om te lezen.
SQL is de enige codetaal waarin ik tegenwoordig nog schrijf. Ik hou ervan omdat het declarative is. Je beschrijft het antwoord en laat het systeem zelf maar uitvogelen hoe deze het produceert anders dan imperatieve talen zoals C#, Java, etc. Natuurlijk hebben die ook wel wat “set based” mogelijkheden, maar het is vooral micro managen.