In questi giorni mi sto dilettando col linguaggio C sul C64, cosa che ho mai fatto a suo tempo; per la verità non ho mai usato niente di diverso che non fosse il semplice basic e un po' l'assembly.
Devo dire che il mio scetticismo iniziale a lasciato piano piano spazio ad una moderata soddisfazione; almeno, per programmi di lunghezza medio/lunga, è una scelta di gran lunga preferibile rispetto al basic interpretato.
Le scelte possibili si riducono a 2: il Power-C di Better&Working a il Super-C di Abacus.
Il primo godrebbe di una buona fama, produce codice nativo relativamente veloce, ha una libreria molto ricca, una shell unix-like con molti comandi e un assembler integrato. Ma soffre di alcuni fastidiosi bugs, sia la shell che il compilatore spesso danno i numeri e l'editor non è sicuramente dei più sofisticati; non si può certo dire che lasci molto spazio alla fantasia.
Per contro il Super-C di Abacus mi sembra molto più stabile, i programmi mi sembra siano altrettanto veloci e, anche se non ha un assemblatore integrato, dovrebbe essere possibile linkare anche codice prodotto con qualsiasi altro assemblatore. La shell CP/M (o MSDOS) like è più scarna ma molto efficace. Da che lo sto usando non ho notato problemi di sorta, neanche col compilatore e col linker.
La libreria è più misera ma permette di fare quasi tutto, forse manca qualcosa per il SID.
Comunque il suo punto di forza è l'editor, sebbene all'inizio possa sembrare poco "user friendly" ma col tempo si possono apprezzare molte sue caratteristiche che rendono la scrittura e la lettura del codice abbastanza facile e veloce.
Premetto che secondo me alcune caratteristiche del linguaggio C si possono apprezzare meglio sul C64 (o su qualsiasi altro computer di 25/30 anni fa) rispetto ad un moderno PC; per esempio la distinzione tra alcuni tipi di dati (che oggi non sembra avere molto senso), le short form di alcune operazioni sulle variabili, la possibilità di scomporre il programma in piccoli pezzi e poi di unirli (linkarli) insieme, e molto altro.
Ovviamente sul C64 è una scelta un pò "azzardata", il massimo lo si ottiene solo a basso livello, ma il C è comunque un buon compromesso e permette di affinare e di mettere alla prova le proprie capacità di programmatore su una macchina così obsoleta.