Post by enoquickSe per limitazioni intendi la mancanza di OO ad esempio non è una
limitazione,esiste il C++ per questo
Anche, ma non principalmente: si può lavorare OO pure con il C, basta
avere un minimo di disciplina. Però trattare le stringhe come array di
char, la libertà sintattica che porta a fare errori (di logica) senza
nemmeno accorgersene... queste cose sono le vere limitazioni. La
sintassi "aperta" serve per avere un compilatore piccolo e veloce, le
stringhe come array per avere una gestione stringhe efficiente. OK, una
volta questi erano aspetti chiave, ma ora come hai detto tu sono tutte
cose che relegano il C al ruolo di assembler portatile.
E' vero che la sintassi del C ha fatto scuola: è stata adottata da così
tanti altri linguaggi che in pratica non puoi fare a meno di impararla,
ti piaccia o meno.
Ma non so se è un bene... mi sembra come la storia della tastiera
QWERTY, che siccome tutti sono abituati a quella si usa quella, anche se
ci sarebbe la dvorak che è più comoda.
Per dirne una, il C usa le parentesi graffe per qualunque tipo di
blocchi di istruzioni: IF, cicli FOR, funzioni, struct ecc. ecc...
d'accordo, funziona e amen, però a me pare più utile usare cose come
beginfunc/endfunc e beginproc/endproc: invece di vedere una scaletta di
quattro o cinque parentesi graffe chiuse, che visivamente si giocano
tutto sull'indentazione, vedere endif; endfor; endfor; endproc;
renderebbe tutto molto più leggibile.
La differenza per chi programma? La quantità di concentrazione
necessaria, e il tempo risparmiato per riprenderla quando il seccatore
di turno se ne va :-)
Era solo un esempio, però ogni tanto mi chiedo seriamente se per caso
non esista un tipo di sintassi radicalmente migliore di quella C-like
che usano i linguaggi di oggi.