Dopo l'articolo Gli strumenti richiesti in un hosting, voglio proporre lo stesso quesito ma in un ambito differente: quello degli editor, che utilizzate per scrivere pagine web.
Quali sono le caratteristiche che un software desktop oriented di questo genere, che sia open source o meno, dovrebbe avere? Queste si devono intendere esclusivamente in chiave di programmazione, e non riguardanti gli strumenti interni come ad esempio le viste codice/risultato, i vari modelli di "creazioni guidate" o le disposizoni dei menu.
Ecco qui elencate quelle sicuramente più gettonate:
- chiusura automatica dei tag HTML
- chiusura automatica delle virgolette (" e ') e delle parentesi ( { [ e ( ) all'interno del codice
- evidenziazione delle varie sezioni del codice
- possibilità di scegliere le porzioni di codice da evidenziare, con stili personalizzati
- suggerimenti ed elenco dei parametri quando si utilizza una funzione
- suggerimenti ed elenco degli attributi quando si crea un tag html
- possibilità di estendere le funzionalità con patch personalizzate
- supporto per le librerie Javascript
- supporto per la creazione di snippet di qualsiasi linguaggio
- aggiornamento automatico dei link collegati quando si modifica o rinomina un file
A mio avviso la caratteristica più importante, che unifica alcuni dei punti sopra elancati, è l'estensibilità , cioè la possibilità di estendere le funzionalità dell'editor in base alle proprie esigenze.
Per quanto possa essere completo, un editor non potrà mai possedere tutte le fattezze necessarie ad ogni singolo utilizzatore. I linguaggi sono parecchi, cosi come i framework Javascript con le relative API, release, patch e plug-in.
Avendo la possibilità di estensione, possiamo inserire le API di jQuery piuttosto che quelle di MooTools o di Prototype, creare particolari snippet del nostro linguaggio preferito, aggiungere/personalizzare gli stili delle sintassi, modifcare l'elenco dei parametri di una funzione e cosi via.
In questo modo l'editor si adatterebbe allo sviluppatore, dandogli la possibilità di modificare le proprie caratteristiche di base, a seconda della metodologia desiderata.
Voi che ne pensate?