El que necessites saber sobre Carbon

Carbon és un nou llenguatge de programació creat pels enginyers de Google com a successor de C++. Això és el que els desenvolupadors de programari han de saber sobre això.

A principis d’aquest any, es va presentar un nou llenguatge de programació anomenat Carbon. És un llenguatge de programació de sistemes presentat per primera vegada el 19 de juliol per Chandler Carruth, enginyer de programari de Google, a la conferència CppNorth al Canadà.

Mentre encara es troba en una fase experimental, Carbon podria actuar com a successor de C++. Però què han de saber els desenvolupadors al respecte? Per saber-ne més, vam parlar amb un escriptor de desenvolupament de programari i tecnologia amb seu a Noruega Erik Engheim.

Va dir en aquests moments, Carbon està en una etapa molt primerenca. “El que tenim és una especificació incompleta inicial juntament amb un intèrpret anomenat Carbon Explorer, que us permet provar parts de l’idioma”, va dir.

“Per tant, quan avaluem què podria ser Carbon per als desenvolupadors, hem de mirar l’especificació actual del llenguatge i els objectius a llarg termini del llenguatge”.

Què fa que Carbon sigui diferent?

Sovint sorgeixen nous llenguatges de programació. Per exemple, Engheim va dir que Scala i Clojure són llenguatges que es van fer amb la idea de poder reutilitzar el codi Java existent en llenguatges nous i moderns.

Tanmateix, l’adopció d’aquests llenguatges per als desenvolupadors de Java existents “mai va funcionar tan bé” perquè era difícil executar un projecte barrejat amb Java i Scala.

Però aleshores va arribar un nou idioma, Kotlin. “Va recollir moltes de les bones idees de Scala, però empaquetat d’una manera que els desenvolupadors de Java poden entendre fàcilment. Kotlin és prou semblant semànticament a Java que es pot introduir en un projecte Java i podeu trucar fàcilment al codi Kotlin des de Java i al codi Java des de Kotlin.

Engheim va assenyalar que Swift va tenir èxit per raons similars en ser un nou llenguatge dissenyat específicament per combinar bé amb Objective-C.

“No cal fer un compromís total amb una nova llengua. Un projecte podria existir fàcilment com una barreja de Swift i Objective-C. Els desenvolupadors d’Object-C podrien trucar fàcilment al codi Swift i els desenvolupadors de Swift podrien trucar fàcilment al codi Objective-C. Anar mentalment entre les llengües no era una càrrega massa gran”.

Llavors, on encaixa Carbon en tot això? Engheim va dir que és el mateix concepte que Swift i Kotlin, ja que és un nou llenguatge que pretén ser “un reemplaçament incorporat” de C++, permetent als desenvolupadors tenir tots dos en el mateix projecte.

“Això és molt diferent d’alguna cosa com Rust, Go, D i Nim, que són tots llenguatges de programació de sistemes que, en principi, poden substituir C++. El problema és que no estan pensats per tenir un projecte mixt. Aquests llenguatges poden, mitjançant un treball addicional, reutilitzar el codi C++ existent, però no sense esforç”.

Per què utilitzar Carbon en lloc de C++?

Tot i que poder barrejar els dos idiomes en un projecte es pot veure com una cosa bona, per què els desenvolupadors voldrien conèixer Carbon quan ja tenen C++?

Engheim va dir que Carbon es podria pensar com una implementació neta de C++ i que potencialment permetria que els desenvolupadors menys sèniors entrin en la lluita.

“C++ s’ha convertit en un llenguatge especialitzat utilitzat principalment per desenvolupadors experimentats i molt capaços. Per descomptat, no és impossible que els desenvolupadors sense experiència escriguin codi C++, però corren el risc seriós de cometre molts errors de programació dolents. C++ és un llenguatge que ofereix un ric bufet de maneres de disparar-se al peu. Per tant, escriure codi C++ de qualitat requereix molta experiència i habilitat”, va dir.

“Carbon obrirà les portes perquè els desenvolupadors amb menys experiència puguin fer contribucions valuoses a un projecte C++ existent. Des de la perspectiva de l’empresa, Carbon significa que s’ha de dedicar menys temps a la formació per aconseguir que els desenvolupadors produeixin codi de qualitat. L’atractiu clau per a les empreses és que poden reutilitzar grans bases de codi C++ que han gastat petites fortunes desenvolupant durant molts anys”.

També hi ha alguna cosa per als desenvolupadors experimentats, segons Engheim, que va dir que Carbon podria oferir una millor productivitat i una mica de xarxa de seguretat.

Què més diferencia Carbon?

Basant-se en l’especificació del llenguatge, Engheim ha observat algunes altres característiques de Carbon:

  • No més punters nuls: això ha estat anomenat l’error de mil milions de dòlars pel científic informàtic britànic Tony Hoare, i Carbon no ho fa.
  • Tots els valors s’han d’inicialitzar a un valor conegut: C++ permet valors no inicialitzats, que poden provocar un comportament estrany quan s’executa el codi
  • Les declaracions de flux de control esperen expressions booleanes: podeu crear accidentalment bucles infinits en C++ si no proporcioneu una expressió booleana, i un bucle for no es queixarà si es dóna un nombre enter com a condició d’aturada en C++.
  • No hi ha constructors, de manera que no podeu explotar accidentalment el vostre codi cridant una funció virtual des d’un constructor
  • No podeu anul·lar accidentalment un mètode virtual, com en C++
  • La programació de plantilles es fa molt més fàcil de fer en Carbon que en C++, ja que teniu interfícies, que defineixen clarament què ha de suportar un tipus de plantilla.

Assessorament per a desenvolupadors

Tot i que hi ha moltes raons potencials per entusiasmar-se amb el nou llenguatge de programació, Carbon encara es troba en les seves primeres etapes, la qual cosa significa que hi ha moltes coses que es desconeixen.

Per exemple, Engheim va assenyalar que els detalls de la gestió de la memòria encara no s’han descobert. “La gestió manual de la memòria és un fet, però, per descomptat, hi ha diverses maneres en què ajudaríem a facilitar aquesta assignació i desassignació”, va dir.

“Tot i que Carbon no té constructors, de fet té destructors, de manera que aquest és un concepte important amb el qual els desenvolupadors de C++ estaran familiaritzats i que solen estimar, ja que ofereix una bona manera de gestionar els recursos. Un destructor d’un objecte que representa un fitxer podria, per exemple, assegurar-se que un controlador de fitxer està tancat.

No hi ha compiladors per a Carbon i la funcionalitat de l’intèrpret és molt limitada, va dir Engheim, per la qual cosa va aconsellar que espereu uns quants anys abans de capbussar-vos en l’idioma, sobretot si sou un desenvolupador que li agrada ser molt pràctic.

Tanmateix, per a aquells que encara tinguin curiositat per veure l’idioma i el que vindrà pel camí, hi ha algunes opcions.

“Podeu llegir l’especificació de l’idioma vosaltres mateixos, o podríeu enganyar i llegir articles escrits per altres, inclòs jo, que inclouen aspectes específics de l’idioma”, va dir.

“Per descomptat, els creadors tenen diversos exemples de codi que podeu veure. Per descomptat, també hi ha la presentació original. Depèn del que busquis. La lectura d’una especificació d’idioma no agradarà a tothom, per tant, llegir versions popularitzades d’aquest material pot ser més sensata”.

10 coses que heu de saber directament a la vostra safata d’entrada cada dia de la setmana. Inscriu-te a la Breu diariel recull de notícies essencials de ciència-tecnologia de Silicon Republic.

Leave a Comment

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