La scelta degli strumenti da usare nella programmazione è un fattore spesso sottovalutato sebbene influenzi in primo grado la qualità del codice prodotto. Le decisioni sono dipendenti da diversi fattori e spesso soggettive: ciò significa che diversi programmatori possono usare strumenti molto differenti ma altrettanto validi. L'importante è essere coscienti di aver effettuato una scelta e non subire passivamente le mode imposte dal mercato.
Strumenti
Programmi usati internamente e modalità di sviluppo
Al giorno d'oggi, con l'eccezione di pochi casi (nello specifico: programmazione embedded bare metal), lo sviluppo di un'applicazione non comincia mai da zero. In caso contrario si avrebbero tempi biblici solo per vedere i primi risultati.
La scelta di appoggiarsi ad un software di base piuttosto che un altro diventa quindi un fattore cruciale che spesso determina il successo o l'insuccesso dell'intero progetto. La eNTiDi si appoggia a software che devono soddisfare alcuni prerequisiti dettati dalla logica:
- licenza rigorosamente open source, per limitare il "vendor lock-in";
- comunità più ampia possibile, per cercare di appoggiarsi ad un prodotto relativamente longevo;
- ambiente developer friendly: questo software viene usato esclusivamente dallo sviluppatore mentre l'utente finale avrà accesso solo al prodotto finale.
Lo sviluppo di programmi simili ha portato al consolidamento di diversi gruppi di software di base (chiamati stack software) sopra cui sviluppare le diverse famiglie di applicazioni.
- I gestionali per la generazione automatica dei disegni tecnici si appoggiano sulla ADG e possono fare uso di Silverstripe se implementati su web o intranet locale.
- Le applicazioni di automazione industriale si basano tipicamente sullo stack di librerie GTK. Il protocollo del bus di comunicazione deve tassativamente essere aperto: ad oggi viene favorito EtherCAT in quanto considerato il tecnicamente più adatto per soluzioni real-time.
- Le applicazioni web e i siti dinamici vengono sviluppate su piattaforme LEMP usando il framework e CMS Silverstripe.
- Quando è necessario compilare per Windows si fa leva sul progetto aur-fedora-mingw-w64: contiene il porting dei pacchetti essenziali al cross-building di progetti GTK2 e GTK3.
Gli unici strumenti che rimangono invariati sono il sistema operativo (una distribuzione GNU/Linux, solitamente Debian-based per il deployment e ArchLinux-based per lo sviluppo), l'editor di testo e il sistema di controllo dei sorgenti.