# Programació en C/Per què aprendre C?

C és el llenguatge de programació més comunament utilitzat per a escriure sistemes operatius. Unix va ser el primer sistema operatiu escrit amb C. Més tard, Microsoft Windows, Mac OS X, i GNU/Linux es varen escriure tots en C.
C no només és el llenguatge de sistemes operatius, és el precursor i inspiració per a gairebé totes les llengües de d'alt nivell més populars disponibles avui. De fet, el Perl, PHP, Python, i Ruby estan completament escrits en C.
Com a analogia, diguem que volem aprendre espanyol, italià, francès, o portuguès. No seria útil saber llatí abans? Exactament així com llatí és la base de totes les llengües romàniques, sabent C el permetrà entendre i apreciar una família sencera de llengües de programació construïdes sobre les tradicions de C.

### ﻿Per què C, i no llenguatge assemblador?

﻿El llenguatge d'assemblador, encara què és extremadament potent, és simplement massa difícil de programar aplicacions grans i difícil llegir o interpretar d'una manera lògica. Addicionalment, els diferents processadors estan programats utilitzant llenguatges assemblador diferents i havent de triar i aprendre només un d'ells és massa arbitrari. De fet, un dels punts forts del C és la seva universalitat i portabilitat a diverses arquitectures informàtiques.
﻿Una raó important és l'assignació de memòria. A diferència de la majoria dels llenguatges de programació, C permet al programador escriure directament en memòria d'una manera independent de la màquina. Els llenguatges com Java i Perl estalvien al programador d'haver de preocupar-se d'assignació de memòria i punters. Això és normalment una bona cosa, ja que tractant amb assignació de memòria quan s'esta construint un programa d'alt nivell és un procés altament propens d'error. Tanmateix, quan es tracta amb el codi de baix nivell com la part del sistema operatiu que controla un mecanisme, C proporciona una interfície uniforme, neta. Aquestes capacitats només no existeixen en uns altres llenguatges com Java. També, C és llenguatge compilat, que crea arxius executables ràpids i eficaços.
﻿Com dòminos que es tomben, la pròxima generació de programes segueix la tendència dels seus avantpassats. Els sistemes operatius dissenyats a C sempre tenen biblioteques de sistema dissenyades en C. Aquelles biblioteques de sistema són a canvi utilitzades per crear biblioteques de nivell més alt (com OpenGL, o GTK). Els desenvolupadors d'aplicacions utilitzen les biblioteques de nivell més alt per dissenyar processadors de textos, jocs, reproductors multimèdia i la resta. Molts d'ells decidiran programar en la llengua que empren les biblioteques d'alt nivell. I el patró continua una vegada i una altra...

### Per què C, i no uns altres llenguatges d'alt nivell

﻿Mentre el Perl, PHP, Python i Ruby poden ser potents i donar suport a molts trets no proporcionats per defecte a C, no s'implementen normalment en el seu propi llenguatge. Més aviat, la majoria d'aquests llenguatges inicialment depenien de ser escrits en C (o un altre llenguatge de programació d'alt rendiment).
﻿El disseny principal de C ha de produir codi portable mentre es manté el rendiment i es minimitza l'empremta, com és el cas per a sistemes operatius o uns altres programes on una interfície "d'alt nivell" causaria impacte en el rendiment. És un llenguatge estable i madur, on és improbable que les seves característiques desapareguin en molt de temps, i s'ha transportat a la majoria, si no la totalitat, de les plataformes.
﻿Com amb tots els llenguatges de programació, si voleu triar C sobre una altra llengua d'alt nivell és una qüestió d'opinió i requisits tant tècnics com de negoci.