Dove sono gli editor della prossima generazione?

5

Stavo leggendo un vecchio articolo Coding Horror su indentazione, quando leggo questo:

Or, maybe you're using a next-next-generation editor that treats code as "data" and the layout (including whitespace) as a "view", making all these concerns largely irrelevant.

Esattamente quello che gli editori della prossima generazione chiamavano Jeff Atwood?

    
posta Theodor 28.04.2012 - 21:04
fonte

3 risposte

6

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.

    
risposta data 28.04.2012 - 21:39
fonte
7

Jeff probabilmente si stava riferendo agli editor di proiezione che effettivamente lavorano sulla sintassi astratta ma visualizzano solo testo, grafica o altre rappresentazioni modificabili dei dati. Jetbrains MPS o Concrete Editor sono tali strumenti. La rappresentazione indotta dei dati è in realtà un pro e un con, poiché è probabile che i dati stessi vengano mantenuti in un formato binario, pertanto non possono essere modificati con strumenti tradizionali come editor di testo semplice.

    
risposta data 28.04.2012 - 22:36
fonte
2

Uso il termine "Formattazione virtuale" per descrivere il comportamento quando il codice viene formattato mentre si digita o si trascina e si rilascia, il testo viene reso utilizzando i margini dinamici senza l'ausilio di alcun carattere di tabulazione o spazio. Il codice semplicemente scorre nuovamente in una nuova forma di formattazione automaticamente man mano che il contesto cambia. Sono previste disposizioni speciali per garantire che il codice non si muova troppo durante la digitazione, in quanto può essere una distrazione.

Se ti interessa la formattazione virtuale, c'è un video qui che mostra il comportamento di un editor XML gratuito che distribuisco come prova del concetto che capita anche di fare qualcosa di vagamente utile.

    
risposta data 29.04.2012 - 00:00
fonte

Leggi altre domande sui tag