És hora de jubilar-se C?

Després de gairebé mig segle d’ús, és hora que els desenvolupadors integrats passin a un llenguatge més modern?

El llenguatge de programació C és, sens dubte, un dels llenguatges de programació amb més èxit de la informàtica. Va aparèixer per primera vegada al voltant de 1972, C va sortir de Bell Labs i va ser creat per Dennis Ritchie. Durant els últims 20 anys, C ha estat classificat com un dels dos llenguatges de programació més populars del món (vegeu la figura 1) per l’índex de programació TIOBE. És el llenguatge més popular per als desenvolupadors de sistemes incrustats i s’utilitza en gairebé el 80% de tots els projectes incrustats. Després de gairebé mig segle d’ús, és hora que els desenvolupadors integrats passin a un llenguatge més modern? És hora de jubilar-se C?

feu clic per veure la imatge a mida completa

Figura 1 – El rànquing de l’índex de la comunitat de programació TIOBE dels llenguatges de programació durant els darrers 20 anys. Sempre ha estat un dels dos idiomes principals.

Per diverses raons, la temptació de retirar C i passar a un llenguatge de programació més modern és relativament alta. En primer lloc, els enginyers de nivell inicial que sovint són molt sol·licitats per les empreses tecnològiques tenen poca o cap experiència amb C. Els programes universitaris actuals se centren en l’ensenyament d’idiomes moderns com Python o C++. Posar-los al dia i experimentar-los pot requerir importants inversions monetàries i de temps que poques empreses estan interessades.

A continuació, tot i que és molt popular, el llenguatge de programació C està datat. C no admet conceptes de programació moderns com les classes i l’herència. Si compareu els conjunts de característiques dels llenguatges moderns com C++, Python i Rust, el llenguatge C comença a semblar un dinosaure! L’última vegada que l’estàndard C va afegir noves funcions va ser el 2011! El llançament estàndard del 2017 només tenia correccions i aclariments tècnics, i el proper llançament estàndard previst per al 2023 tampoc no es va posar en marxa.

La retirada de C continua semblant temptadora, però hi ha diversos problemes amb només allunyar-se de C. Primer, C és un llenguatge fantàstic per a aplicacions de procediments de baix nivell que s’executen a prop del maquinari. És compacte i eficient. En segon lloc, els enginyers superiors estan arrelats en l’idioma. Es troben en un punt en què han utilitzat la llengua durant dècades i tenen poc o cap interès per aprendre i passar a una llengua més moderna. Finalment, tantes biblioteques heretades i bases de codi utilitzen C que no podem abandonar-les. El cost de portar el codi heretat seria massa elevat!

Sembla que tenim una mica de dilema! Com a indústria, hauríem de retirar C per aprofitar llenguatges i tècniques més modernes, però el temps i els costos per canviar i la quantitat de codi heretat que hem de mantenir sovint impedeixen retirar C. La necessitat de tècniques més modernes , tot i que mantenim els beneficis que obtenim de C, ens pot allunyar d’utilitzar un únic idioma dominant i obligar-nos a confiar en diversos idiomes per fer la feina.

L’ús d’altres idiomes per donar suport a C ja pot estar passant. Per exemple, la taula 1 a continuació mostra la classificació de diversos idiomes a l’índex TIOBE. En el passat, un o dos idiomes dominaven la informàtica. Avui, els quatre idiomes principals tenen una valoració d’un 10%. Crec que això apunta al final de les llengües dominants úniques. En canvi, els desenvolupadors aprofitaran diversos idiomes per assolir els seus objectius finals.

classificació llenguatge Valoració
1 Python 12,20%
2 VS 11,91%
3 Java 10,47%
4 C++ 9,63%
27 Rovell 0,52%

Taula 1 – Una llista de llenguatges de programació associats sovint amb el desenvolupament de programari incrustat (Font: Índex TIOBE). Nota: aquestes classificacions no representen l’ús de programari incrustat, només l’ús general de la indústria informàtica.

Si mireu amb atenció dins del sector, això ja està passant. Veig empreses que estan passant a utilitzar C++ que encara tenen nombroses biblioteques C. Veig empreses que intenten Rust, però confien en les seves biblioteques C provades com a part de la construcció i viceversa. Malauradament, o potser, depenent de la vostra perspectiva, afortunadament, això vol dir que C continuarà sent una llengua dominant indefinidament en el futur.

És hora de jubilar-se C? És una pregunta senzilla però complicada. Jo diria que sí, però depèn del que facis. És possible que no vulgueu utilitzar C++ o un altre llenguatge amb un microcontrolador de 8 bits. Si esteu treballant amb microcontroladors de 32 bits d’avantguarda amb aprenentatge automàtic o desenvolupant dispositius connectats, un llenguatge diferent del C us proporcionarà les eines addicionals que necessiteu per tenir èxit. El temps i el cost per canviar d’idioma poden ser massa elevats. La meva regla general és que si es tracta d’un disseny nou, comenceu amb un llenguatge modern. Si es tracta d’un disseny heretat, aprofita el codi heretat i escriu codi nou en un llenguatge modern.

Què penses? És hora de jubilar-se C?


Jacob Beningo és un consultor de programari integrat especialitzat en sistemes basats en microcontroladors en temps real. Promou activament les millors pràctiques de programari a través de nombrosos articles, blocs i seminaris web sobre temes del disseny d’arquitectura de programari, DevOps incrustat i tècniques d’implementació. Jacob té 20 anys d’experiència en el camp i té tres títols, inclòs un màster en enginyeria de la Universitat de Michigan.

Contingut relacionat:

Per obtenir més informació sobre Embedded, subscriu-te al butlletí setmanal de correu electrònic d’Embedded.



Leave a Comment

Your email address will not be published. Required fields are marked *