Quoto... io sono a favore dell'utilizzo del C per arduino, meglio ancora se C++...
guarda, il C ha cosi' tante ambiguita', side effect etc
ed e' cosi' poco definito e genera cosi' tante cattive abitudini
che se non ci stai attento sono guai
per porre rimedio ho inventato "
la maestrina"
modificando gli script di build up delle varie toolchain
in modo che "
la maestrina" sia chiamata appena dopo CPP
e appena prima di CC
lei non conosce la grammatica ANSI C ma un subset MISRA
con una serie di regole addizionali
e bacchetta le mani rigettando il codice se non le matcha
e' severissima
in pratica CPP espande le macro, fa tutto il lavoro di preprocessing
quando il codice C e' pronto per essere passato al compilatore C
prima di passarglielo interviene "
la maestrina" che lo analizza
se passa restituisce ans_OK
se non soddisfa printa dove/cosa non va bene, quale regola ha violato, e restituisce ans_REJECT
Makefile recepisce la cosa come un errore, e si blocca all'istante
la catena si ferma, e tu sei obbligato ad intervenire e sistemare il codice
all'inizio e' una gran rottura, poi dopo un po' si creano meccanismi mentali automatici
e scrivi il codice gia' giusto per non ricevere altre bacchettate dal "
la maestrina"
questo approccio mi permette di evitare situazioni brutte
in cui scrivere le cose in C si sposa con l'ambiguita' dello stesso linguaggio
non e' essere fissati, e' che noto che prevenire sia meglio che curare
proprio in termini di ore spese per scrivere, debuggare, mantenere, e portare il codice
il che e' fiquo, no

?
e' fiquo, pero' con questo approccio non insegno e non imparo nulla di
code designl'ho appreso ad ing del software e corsi vari, ma come si suol dire
e' come l'inglese, se non lo parli ... lo perdi ...
mentre le cattive abitudini, una volta prese, sono dure a perdersi
ho forzato "
la maestrina" a richiedere espressaemente le interfacce pubbliche e private
scritte in un certo modo, pero' ... alla fine e' un validatore C, fa quel che puo', e nulla di piu'
scrivere la maestrina ha coinvolto esperti appassionati di code design e linguaggi e traduttori
e circa 5 mesi di lavoro a tempo perso
scrivere una cosa simile per il C++ e' davvero troppo
ha una grammatica complicatissima il C++, ed e' molto ma molto complesso da gestire
di contro, invece, modula2 supporta la modularita', e modula3 e' object oriented nativo
e non hanno bisogno di alcuna maestrina perche' e' gia' incorporata =P