Is C nog een programeertaal of protocol?
C is zo alomtegenwoordig dat andere talen geen succes kunnen boeken zonder ermee overweg te kunnen. De taal is de fundering van ’s werelds belangrijkste software en overstijgt zo zichzelf.
Er zijn veel programmeertalen beter, veiliger en eenvoudiger dan C, maar dat maakt ze niet populairder. Bovendien is het onmogelijk voor populaire nieuwkomers zoals Rust om zich zomaar helemaal los te wrikken van C. Applicaties bestaan immers zelden in volledig geïsoleerde omgevingen en daar knelt het schoentje. Je toepassing draait in een omgeving en wil misschien daarlangs interageren met input van gebruikers.
1. Alles is C
Is die omgeving Windows-gebaseerd? Het gros van de kernel van Microsoft Windows is in C geschreven en ontwikkeld. Om met dat besturingssysteem te praten, kan jouw applicatie maar beter een beetje C begrijpen.
Op naar Linux dan? Linus Torvalds duwt dat besturingssysteem almaar meer in de richting van Rust, maar opnieuw is de kernel voornamelijk in C geschreven. De komende jaren zal er vermoedelijk wel een langzame verschuiving plaatsvinden. Dat verhaal geldt ook voor Android, dat uiteindelijk gebaseerd is op de Linux-kernel. Google moedigt het gebruik van Rust in Android aan maar de basiscode blijft op C gebaseerd.
Doet Tim Cook het beter? Niet echt. Ook de kernel van OS X is een C-product. Net als bij Linux en Android kan je de lijn naar de mobiele implementatie doortrekken: iOS vertrouwt op C. Zelfs in databaseland kan je niet ontsnappen aan C (of C++), dat de Oracle Database aandrijft, net zoals MySQL MS SQL Server en PostgreSQL.
2. Geen taal zonder FFI
Dat is de wereld waarin moderne talen zoals Rust, Swift en Python opgroeien en ze moeten conformeren. Om zich nuttig te kunnen maken op ’s werelds belangrijkste besturingssystemen, moeten de talen functies en routines van die platformen kunnen aanroepen. Een foreign function interface (FFI) maakt het mogelijk voor een applicatie geschreven in één taal om samen te werken met een toepassing of platform in een andere taal. Een FFI geeft een high level-taal de mogelijkheid om direct met een C-omgeving te interageren, zonder API.
Geen enkele taal kan volwassen worden zonder FFI die directe interactie met C mogelijk maakt. Die realiteit komt met haar eigen mandje vol problemen, aangezien C niet meteen de eenvoudigste taal is om een vertaalslag uit te maken, maar high level-programmeertalen hebben allemaal hun eigen oplossing die de klus klaart. Een C-FFI is een must have.
3. Het Engels van de programmeertalen
Mondige applicaties praten soms graag met meer dan alleen het platform waarop ze draaien. Het is perfect mogelijk dat apps geschreven in twee minder alomtegenwoordige moderne talen met elkaar moeten samenwerken. Dan is de vraag maar of er een FFI voorzien is. De gemakkelijkheidsoplossing lonkt als een soort van Belgisch compromis.
De voertaal tussen een Vlaamstalige en een Franstalige collega is al te vaak Engels: een taal die vrijwel iedereen spreekt. Zo gaat het ook in programmeerland. Waarom zouden de toepassingen niet in termen van C met elkaar communiceren? Dat kunnen ze immers al.
Zo wordt C meer dan een taal. Of het een goede zaak is, laten we in het midden, maar C heeft zich vandaag ontpopt tot een soort protocol. Iedere taal en toepassing moet C spreken omwille van de legacy, waardoor C een veilige taal wordt voor iedereen om in te communiceren. C is het Engels van de programmeertalen.
Ben jij ook overtuigd dat C de taal is die de wereld van ontwikkelaars doet draaien (of niet)? Dan heeft CHRLY België jouw skills nodig. Bekijk onze vacatures en solliciteer vandaag nog!