2010-02-12 11 views
6

Lasciatemi spiegare cosa intendo per "editor di codice bidimensionale": immagina di usare Inkscape o Gimp in una grande tela (diciamo infinita). Lo strumento "T - aggiungi testo" viene utilizzato per scrivere il codice. Inoltre, tutte le definizioni di funzione saranno incorniciate e i collegamenti connetteranno le funzioni chiamate.Esiste un editor di codice bidimensionale visivo?

In altre parole: si dispone di un foglio molto grande di carta (virtuale) in cui è possibile scrivere.

Sarebbe davvero utile. Non voglio scrivere codice come una lunga lista di righe, specialmente ora che i grandi monitor sono più economici.

È un editor di codice simile?

Qual è la tua opinione? Useresti un editor di codice 2d?

+0

ho ricordo di aver visto un po 'di Microsoft (probabilmente?) Demo alcuni mesi fa, che ha fatto qualcosa di simile. Era essenzialmente una tela ENORME dove i moduli del programma erano piccole scatole colorate con linee che mostravano i collegamenti (referenze e chiamate di funzioni) tra di loro. Puoi ingrandire per vedere il testo, quindi fare clic e modificarlo. Molto bello Vorrei poter ricordare il nome. Sono quasi sicuro di averlo visto su Slashdot. – FrustratedWithFormsDesigner

risposta

1

Ho scritto 3 o 4 editor visivi e il mio secondo ha funzionato in questo modo, cioè per java e C++ (mai pubblicato, anche se l'ho usato per alcuni lavori di ricerca pubblicati) Ancora non mi piace molto scrivere il mio codice 'come una lunga lista di linee'. Il mio punto è, dopo aver provato un sistema come questo, ho provato un sistema con finestre (profili di classe in Windows, tasto destro per aprire editor di codice), quindi un sistema ad albero ...

nel lungo periodo (Ho scritto diversi app che utilizzavano tutte quelle), il sistema ad albero con finestre non sovrapposte si sentiva al tempo stesso più scalabile (a diverse dimensioni del monitor) e soprattutto, più produttivo, perché era necessario trascinare le caselle di testo e i collegamenti e/o le finestre nella prima versione, senza aggiungere molto all'esperienza di programmazione, quindi è stato dispendioso.

Se vuoi provare alcune di queste cose, puoi usare google antegram per java (solo Java) antegram per il web (javascript/php/actionscript) e ee-ide (su oogtech.org). Non sono sicuro di poter recuperare l'originale editor C++/java textbox + links (che potrebbe comprimere anche i grafici e avere una tela infinita, quindi molto vicino a ciò che descrivi).

Non ci sto lavorando tanto quanto ero abituato a come pochi programmatori mi sembravano piacere tranne che a me, ma se ti piace lavorare sulla via dell'albero, o se vuoi aggiungere cose per i tuoi scopi, ee-ide sarebbe la strada da percorrere, poiché è piacevolmente modulare e facile da estendere rispetto al resto.

Sul lato commerciale, è possibile configurare Visual Studio per lavorare con diagrammi simili a UML. Ho la sensazione che potrebbe essere un po 'troppo pesante (anche se è sicuramente più codifica di UML), ma non sono sicuro, non ho ancora provato.

-2

Per me, il pattern MVVM indica che non c'è alcun codice dietro i controlli dell'interfaccia utente. La logica è tutto in una classe con proprietà.

Le proprietà utilizzano l'associazione WPF per aggiornare i controlli dell'interfaccia utente. Ad esempio, nel modulo o nella finestra, in qualsiasi pagina, MySearchButton.IsEnabled è associato alla proprietà ViewModel.MySearchButtonIsEnabled. Quindi la logica dell'app viene eseguita nella classe ViewModel e imposta solo le sue proprietà e gli aggiornamenti dell'interfaccia utente automaticamente.

Sebbene questo sia specifico per MS WPF, il pattern deriva effettivamente da SmallTalk e si trova nel campo di sviluppo come MVP. Senza WPF si dovrebbe scrivere la logica del databinding o 'presenter', che è comune.

Ciò significa che l'interfaccia utente può essere strappata e una nuova copiata molto rapidamente e con poca conoscenza del codice da parte dell'interfaccia utente - che, in un mondo ideale, è un ragazzo creativo che guida una Citroen anni '70.

Quindi il mio punto è che, sebbene sembri un'innovazione semplice, un editor 2D come questo potrebbe supportare uno stile di codifica che non è più considerato ottimale.

+0

L'OP non sta chiedendo affatto dello sviluppo dell'interfaccia utente. – Jay

+0

Scusa, pensavo che stesse spiegando un sistema in cui il CodeBehind per la finestra/il controllo di pagina si trova sulla superficie del design che gira intorno alle caselle. –

0

A un certo punto, LabView aveva una modalità di programmazione come questa. Hai collegato i blocchi di programma in modo grafico.

È da tanto che non utilizzo LabView che non so se è ancora lo stesso.

1

Questo probabilmente non risponde esattamente alla tua domanda, ma comunque.

Dai un'occhiata allo NodeBox beta. È un ambiente di programmazione visiva principalmente per la creazione di grafica generativa. È possibile programmare e modificare i nodi con il codice Python, collegarli e riutilizzarli in diversi modi. (Windows e Mac OS)

Inoltre vale la pena menzionare (in termini di concetto) è Field. È per programmare le prestazioni e disporre i bit di codice su uno stage/timeline. Molto interessante ma anche molto confuso. (Solo Mac OS)

Il terzo è vvvv. Viene utilizzato molto da artisti grafici per creare immagini in 3D in tempo reale. Basato su nodo (Solo Windows)

NodeBox e Field sono open-source, quindi se stai cercando di creare qualcosa da te puoi vedere come è fatto lì.

1

Controllare questo. L'ho incontrato oggi e mi sono ricordato di questa domanda.

Codice Bolle

alt text http://img188.imageshack.us/img188/3351/bub.png

sviluppatori trascorrere del tempo significativo lettura e la navigazione frammenti di codice diffusione su più sedi. La natura basata su file di IDE contemporanei rende proibitamente difficile creare una vista simultanea di tali frammenti. Proponiamo una nuova metafora dell'interfaccia utente per il codice comprensione e manutenzione basata sulle raccolte di frammenti leggeri, modificabili, chiamati bolle, che formano i gruppi di lavoro visibili simultaneamente .

L'obiettivo fondamentale di questo progetto è per rendere più facile per gli sviluppatori di vedere molti frammenti di codice (o altre informazioni ) in una sola volta, senza dover navigare avanti e indietro. Ognuno di questi frammenti è mostrato in una bolla.

Una bolla è completamente modificabile e vista interattivo di un frammento come un metodo o un insieme di utente variabili.Bolle, a differenza finestre, hanno minima confine decorazione, evitare clipping loro contenuti utilizzando automatica codice reflow e elisione, e non si sovrappongono ma invece spingono reciprocamente allontanato . Le bolle esistono in un grande spazio virtuale bidimensionale in cui un gruppo di bolle comprende un set di lavoro simultaneamente visibile . Le bolle supportano un meccanismo di raggruppamento leggero e supportano ulteriormente le connessioni tra di esse.

Uno studio utente quantistico indica che Code Bubbles ha aumentato significativamente le prestazioni dello per due attività di comprensione del codice controllate da . Uno studio utente qualitativo con 23 sviluppatori professionisti indica interesse sostanziale ed entusiasmo per l'approccio, nonostante il radicale partenza da ciò che gli sviluppatori sono utilizzato.

http://www.cs.brown.edu/people/acb/codebubbles_site.htm

Problemi correlati