2010-02-12 12 views
6

Permítanme explicar lo que quiero decir con "editor de código bidimensional": imagínense el uso de Inkscape o Gimp en un lienzo grande (digamos infinito). La herramienta "T - agregar texto" se usa para escribir el código. Además, todas las definiciones de funciones se enmarcarán y los enlaces conectarán las funciones llamadas.¿Hay un editor visual de código bidimensional?

En otras palabras: tiene una hoja de papel (virtual) muy grande donde puede escribir.

Sería realmente útil. No quiero escribir código como una larga lista de líneas, especialmente ahora que los monitores grandes son más baratos.

¿Hay un editor de código de ese tipo por ahí?

¿Cuál es su opinión? ¿Usarías un editor de código 2d?

+0

Recuerdo ver algunas Microsoft (probablemente?) DEMO hace varios meses que hizo algo por el estilo. Era esencialmente un Lienzo ENORME en el que los módulos del programa eran pequeños cuadros de colores con líneas que mostraban los enlaces (referencias y llamadas a función) entre ellos. Podría acercarse para ver el texto, y luego hacer clic y editarlo. Muy genial. Ojalá pudiera recordar el nombre. Estoy bastante seguro de haberlo visto en slashdot. – FrustratedWithFormsDesigner

Respuesta

1

He escrito 3 o 4 editores visuales y mi segundo trabajo así, que era para Java y C++ (nunca publicado, aunque lo usé para algunos trabajos de investigación publicados) Todavía no me gusta mucho escribir mi código 'como una larga lista de líneas'. Mi punto es que, después de probar un sistema como este, probé un sistema de ventanas (contornos de clase en ventanas, clic derecho para abrir los editores de código), luego un sistema basado en árbol ...

a largo plazo (escribí varios aplicaciones que usan todas esas), el sistema basado en árbol con ventanas no superpuestas se sintió a la vez más escalable (a diferentes tamaños de monitores) y lo más productivo, porque era necesario arrastrar los cuadros de texto y los enlaces y/o ventanas en la primera versión, sin agregar mucho a la experiencia de programación, por lo que se sintió un desperdicio.

Si quiere probar algunas de estas cosas, puede google antegram para java (java solamente) antegrama para web (javascript/php/actionscript) y ee-ide (en oogtech.org). No estoy seguro de si podría desenterrar el editor original de C++/java textbox + links (que también podría colapsar gráficos y tener un lienzo infinito, muy parecido a lo que describes).

No estoy trabajando en esto tanto como solía hacerlo. A los programadores les pareció que les gustaba menos que a mí, pero si te gusta trabajar de la forma en árbol, o si quieres agregar cosas para tus propios fines, ee-ide sería el camino a seguir, ya que es muy modular y fácil de extender en comparación con el resto.

En el aspecto comercial, puede configurar visual studio para que funcione con diagramas similares a UML. Tengo la sensación de que podría ser demasiado pesado (aunque definitivamente es más codificante que orientado a UML), pero no estoy seguro, aún no lo he intentado.

-2

Para mí, el patrón MVVM significa que no hay ningún código detrás de los controles de la interfaz de usuario de todos modos. La lógica está en una clase con propiedades.

Las propiedades utilizan el enlace de datos WPF para actualizar los controles de la interfaz de usuario. Por ejemplo, en el formulario o la ventana, la página, lo que sea, MySearchButton.IsEnabled está vinculada a la propiedad ViewModel.MySearchButtonIsEnabled. Por lo tanto, la lógica de la aplicación se ejecuta en la clase ViewModel y simplemente establece sus propias propiedades y las actualizaciones de la interfaz de usuario automáticamente.

Aunque esto es específico de MS WPF, el patrón en realidad proviene de SmallTalk y se encuentra en todo el campo de desarrollo como MVP. Sin WPF uno necesitaría escribir la lógica de enlace de datos o 'presentadora', que es común.

Esto significa que la UI puede ser arrancada y una nueva pegada muy rápido y con poco conocimiento del usuario de IU, que, en un mundo ideal, es un tipo creativo que maneja un Citroën de los 70.

Así que mi punto es que, aunque suena como una clara innovación, un editor 2D como este estaría ayudando a un estilo de codificación que ya no se considera óptimo.

+0

El OP no está preguntando sobre el desarrollo de UI en absoluto. – Jay

+0

Lo siento, pensé que estaba explicando un sistema por el cual el CodeBehind para la ventana/página/control está en la superficie de diseño flotando en cajas. –

0

En un punto, LabView tenía un modo de programación como este. Has conectado bloques de programas de forma gráfica.

Ha pasado tanto tiempo desde que utilicé LabView que no sé si sigue siendo el mismo.

1

Esto probablemente no responda su pregunta exactamente, pero de todos modos.

Eche un vistazo a NodeBox beta. Es un entorno de programación visual principalmente para crear gráficos generativos. Puede programar y editar los nodos con código python, conectarlos y reutilizarlos de múltiples maneras. (Windows y Mac OS)

También vale la pena mencionar (en términos de concepto) es Field. Es para programar actuaciones y organizar fragmentos de código en una etapa/línea de tiempo. Muy interesante pero también muy confuso. (Mac OS solamente)

El tercero es vvvv. Los artistas gráficos lo usan mucho para crear efectos visuales en 3D en tiempo real. Basado en nodo (Sólo Windows)

NodeBox y Field son de código abierto, por lo que si está buscando crear algo usted mismo, puede ver cómo se hace allí.

1

Mira esto. Lo encontré hoy y recordé esta pregunta.

Código Burbujas

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

Desarrolladores pasar mucho tiempo la lectura y la navegación por fragmentos de código difusión a través de múltiples ubicaciones. La naturaleza basada en archivos de los IDE contemporáneos hace que sea prohibitivamente difícil crear y mantener una vista simultánea de dichos fragmentos . Proponemos una nueva metáfora de interfaz de usuario para el entendimiento y mantenimiento del código basado en colecciones de fragmentos livianos editables llamados burbujas, que forman conjuntos de trabajo simultáneamente visibles .

El objetivo fundamental de este proyecto es para que sea más fácil para los desarrolladores para ver muchos fragmentos de código (o otra información ) a la vez sin tener que navegar de ida y vuelta. Cada uno de estos fragmentos se muestra en una burbuja.

Una burbuja es un totalmente editable y vista interactiva de un fragmento tal como un método o colección de variables miembro.Burbujas, en contraste con ventanas, tienen una mínima decoración frontera , evitar el recorte sus contenidos mediante el uso automático de código reflujo y elisión, y no se superponen sino que empujan entre sí fuera del camino . Existen burbujas en un gran espacio virtual 2-D pannable donde un grupo de burbujas comprende un conjunto de trabajo visible simultáneamente . Las burbujas admiten un mecanismo de agrupamiento liviano , y otras conexiones de soporte entre ellas.

Un estudio de usuario cuantitativo indica que Code Bubbles aumentó rendimiento significativamente para dos tareas de comprensión de código controlado . Un estudio de usuario cualitativo con 23 desarrolladores profesionales indica interés y entusiasmo sustancial para el enfoque, a pesar de la radical salida de lo que los desarrolladores son solía.

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

Cuestiones relacionadas