Gli editor di Jeff Atwood stanno parlando di editori che potremmo aspettarci di avere in futuro. Credo che non ne avesse in mente nessuno, ma forse mi sbaglio.
Detto questo, il problema delle schede rispetto agli spazi di cui sta parlando è ampiamente risolto da alcuni IDE di oggi. Visual Studio, ad esempio:
-
Regola gli spazi per te, rendendo più semplice mantenere la stessa formattazione nel codice e non preoccuparti mai degli spazi. Ad esempio se inizi a digitare:
if (! this.isDead )
{
this.Kill ( ) ;
}
lo risolverà per te mentre digiti :
if (!this.isDead)
{
this.Kill();
}
-
Permette di riformattare il documento¹ con Ctrl + E → Ctrl + F (o Ctrl + Shift + F in Eclipse), se riesci ancora a creare problemi con gli spazi.
-
Applica la regola degli spazi o o : se apri un documento che contiene sia spazi che tabulazioni, ti verrà chiesto se desideri trasformare le schede in spazi o spazi per schede o mantenere tutto come è.
-
Regola il rientro in base alle tue impostazioni, il che rende irrilevante discutere il numero di spazi per rientro (quattro contro due per esempio) all'interno di un team.
Un altro punto è che gli IDE odierni sono abbastanza potenti da fornire una visualizzazione migliore del codice , rendendo le discussioni spazio / tabulazioni / indentazione meno rilevanti in alcune circostanze. Invece di visualizzare il codice come codice, cioè in testo semplice, puoi visualizzare i diagrammi, i grafici, ecc. e manipolare ² Visual Studio, ad esempio:
-
Fornisci ai progettisti molte cose. Ad esempio, è possibile creare un Windows Form tramite il trascinamento della selezione e non preoccuparsi mai del modo in cui il codice viene scritto e quale indentazione viene utilizzata. Lo sviluppo drag and drop è anche strongmente incoraggiato in generale da Microsoft e stanno lavorando sodo per fornire diversi mezzi per creare codice senza scriverlo manualmente. A parte le opinioni personali (la mia è particolarmente negativa³), questo paradigma di trascinamento della selezione ti consente di immaginare quali sarebbero gli editor della prossima generazione e come astraggono le discussioni tab / spazi / indentazione.
-
Permette di creare la struttura di base con classi, interfacce, proprietà, metodi vuoti (non implementati), ecc. usando diagrammi di classi, senza mai aprire il codice sorgente stesso. Devi ancora andare al codice per scrivere effettivamente i corpi di metodi o proprietà, ma ancora, si può fare molto lavoro attraverso i diagrammi delle classi.
-
Lascia generare codice da UML⁶.
Per concludere, con gli IDE di oggi, in alcuni casi non è nemmeno necessario vedere il codice sorgente, poiché è possibile utilizzare metodi alternativi di visualizzazione del codice. In questo caso, non devi preoccuparti di indentazione. E quando devi tornare al codice sorgente del testo normale, l'IDE è abbastanza intelligente per formattare correttamente il codice mentre scrivi.
¹ Almeno per C #. Il supporto per il formato automatico JavaScript è piuttosto scarso.
² La parte di manipolazione è particolarmente importante. Se puoi semplicemente visualizzare il codice come dati, ma non modificarlo, hai ancora tutti i problemi relativi a spazi, tabulazioni e rientri. I vecchi IDE hanno iniziato a fornire mezzi alternativi per visualizzare il codice, ma è solo di recente che è diventato popolare avere una relazione in due modi tra un diagramma (o un'altra forma di visualizzazione) e il codice sorgente stesso.
³ Principalmente perché il codice generato automaticamente è sempre troppo sporco e presenta capacità troppo limitate. Ad esempio, negli ultimi dieci anni, ogni nuovo WYSIWYG prometteva clean HTML e CSS, e comunque quando hai bisogno di codice pulito con sprite CSS e altre funzionalità avanzate, dovrai eseguire il lavoro a mano.
⁴ Il codice creato dal designer di Windows Form potrebbe non essere conforme alle regole di StyleCop, ma ancora, non ho mai dovuto correggere il rientro per il codice di Windows Form generato automaticamente.
⁵ Il codice generato viola magnificamente molte regole StyleCop, il che significa che l'utilità dei diagrammi delle classi per generare codice è piuttosto limitata se ti interessa lo stile. Tuttavia, ti toglie l'attenzione su spazi bianchi, tabulazioni e indentazione.
⁶ Non ho mai testato questa funzione, perché non ho TFS. Da quello che ricordo, puoi effettivamente generare codice sorgente da alcuni diagrammi con VS2010 Ultimate + TFS. Se ho torto, sentiti libero di modificare la mia risposta o aggiungere un commento.