Ambienti di sviluppo, Editor di Testo e pregiudizio

Semplicità o complessità? Strumenti estremamente potenti e completi o minimali e affidabili?

Chiunque abbia messo mano alla stesura del codice sorgente di una applicazione si sarà scontrato con questo profondo dilemma. È meglio fare affidamento su un IDE completo o su un semplice editor di testo con supporto all’evidenziazione della sintassi e poco più?

Tipico “ambiente” composto da fido editor e shell a portata di mano :D

Oggi vorrei raccontare la mia esperienza. Sono sempre stato allergico agli IDE, li ho sempre visti come una inutile barriera tra me e la risoluzione del problema vero. Ho sempre creduto che trovarsi di fronte il puro e semplice codice mi aiutasse a mantenere il focus sul lavoro da svolgere piuttosto che sullo strumento utilizzato.
Praticamente tutti i miei progetti sono nati utilizzando un mix di editor di testo e script di vario genere costruiti ad-hoc per le operazioni ripetitive. Questa metodologia in passato non mi ha mai lasciato a piedi.

Essendo però curioso di natura e sapendo che molti hanno aumentato la propria produttività attraverso l’utilizzo di ambienti di sviluppo ho deciso di mettere in discussione le mie convinzioni. Memore degli insuccessi precedenti mi sono affidato a quello che da molti è definito il miglior IDE open source in circolazione: Eclipse.

Utilizzando principalmente python come linguaggio di programmazione ho optato nello specifico per l’estensione Pydev di aptana. Tale necessità è stata dettata dal fatto che eclipse è storicamente legato al linguaggio Java.

L’esperienza all’inizio è stata abbastanza negativa. Ho riprovato quella strana sensazione che mi ha tenuto lontano da programmi di questo tipo per molto tempo: il dubbio di star lavorando “per l’IDE” e non “con l’IDE”.

I primi disagi li ho avuti per integrare al meglio le funzionalità di django (framework web sviluppato in python) all’interno di Eclipse. Devo ammettere che  una coincidenza sfortunata ha contribuito a innervosirmi. Praticamente ho passato una giornata a cercare di creare un ambiente amichevole per scoprire che il giorno dopo sarebbe stata rilasciata una nuova versione di pydev con il supporto integrato a django.

Mettendo da parte l’ennesima dimostrazione della validità universale della Legge di Murphy appena raccontata, devo ammettere che una volta configurato l’ambiente e capite le meccaniche ho iniziato ad apprezzare tutte quelle piccole comodità che un IDE sa offrire.

Esempio di esplorazione contestuale del codice in Eclipse

La cosa che per prima mi ha convinto a continuare a utilizzare Eclipse è stato il completamento automatico del codice. Questa piccola caratteristica che non avevo mai visto di buon occhio ha abbattuto di molto il tempo che in precedenza passavo sulla documentazione ufficiale delle librerie utilizzate. Poter esplorare metodi e possibilità in maniera contestuale alla stesura del codice è indubbiamente comodo. Altra comodità che in passato affidavo al semplice “trova e sostituisci” è quella di poter fare refactoring in maniera molto rapida grazie allo strumento fornito dall’IDE.

Ultima ma non ultima per importanza è l’integrazione con i sistemi di controllo versione del codice (esistono plugin per git,mercurial o subversion). Anche in questo caso sostituire gli script ad-hoc ha richiesto un po di fatica all’inizio. Fatica anche in questo caso ben ripagata.

A questo punto molti lettori si staranno chiedendo il perché di questo post. Tutto sommato chiunque scrive codice conosce i vantaggi di un approccio rispetto all’altro. Quello che volevo evidenziare con questa storia è che spesso capita di fare scelte e di crearsi dei pregiudizi riguardo ad alcune tecnologie.
Pregiudizi che si alimentano senza un particolare motivo se non l’abitudine e la naturale tendenza umana a scegliere sempre e comunque la strada battuta. Provare, mantenere aperti i propri orizzonti e mettere costantemente in dubbio le proprie convinzioni spesso porta a scoperte positive.

Lascio la parola a voi lettori per capire come siete abituati a lavorare in questo ambito e magari “rubarvi” qualche buona idea o pratica.

Press ESC to close