Si a Figma se le pudieran agregar también comportamientos de UI, probablemente se vería justo así. La web se siente como si llevara años yendo hacia atrás: perdimos Flash y pasamos a HTML5, pero aquella corriente en la que la gente creativa hacía muchas cosas terminó diluyéndose.
Antes, IDEs como Visual Basic, Delphi y Borland JBuilder tenían builders simples de aplicaciones, y Eclipse también tuvo durante un tiempo un builder sencillo de UI en Swing. En la web también estaban Dreamweaver, FrontPage y otros.
No digo que esas herramientas fueran perfectas, pero nunca apareció un reemplazo adecuado, y ahora parece algo profundamente derrochador: se “diseña” en Figma y luego el equipo de desarrollo lo vuelve a implementar casi desde cero.
No estoy seguro de cuánto desperdicio haya realmente. Hay partes que se superponen, pero por experiencia no eran muchas; la mayor parte del tiempo de frontend se va en el comportamiento detrás de los componentes, la interacción con dispositivos, la seguridad y las llamadas a APIs.
No creo que los builders visuales de UI fueran el camino a seguir. Funcionan bien para UI estáticas, pero se desmoronan en cuanto intentas expresar restricciones dinámicas.
Figma también lo demuestra. Para prototipos rápidos es útil colocar elementos con posición absoluta y usar símbolos, pero en cuanto introduces autolayout, terminas enfrentando casi los mismos problemas que con CSS flexbox y grid. La diferencia es que ocurre en un sistema mucho peor, sin control de versiones, herramientas de refactorización ni ChatGPT.
Subjetivamente, también me resulta mucho más fácil trabajar directamente con una estructura XML que hacer doble clic en 15 grupos, o entrar con cmd-clic, para seleccionar un componente específico y luego modificar propiedades en forma de texto. Por eso creo que Apple y Android empujaron los interface builders hacia los DSL.
VB6 fue, por lejos, el mejor IDE para quienes necesitaban producir resultados de inmediato.
A mediados de los 2000, cuando instalaba sistemas de CCTV basados en PC, le estaba demostrando una PC a un cliente de un restaurante y le mostré el servicio de música Pandora; me preguntó si podía escucharlo por las bocinas del restaurante. Con un cable 3.5mm-RCA-BNC que tenía en el auto lo conecté al amplificador, y el cliente quedó encantado, diciendo que se sentía como entrar al siglo XXI.
Luego preguntó si podía pausar un momento la música y hacer anuncios a los clientes, así que le creé un acceso directo al mezclador de sonido sndvol32.exe en el escritorio. Cuando dijo que quería que los empleados lo hicieran desde el mostrador, no desde la oficina, le pedí un clip y 30 minutos.
Saqué del auto cable Cat 5 trenzado y un viejo mouse IBM beige de dos botones, tendí el cable desde la oficina hasta la recepción, soldé un par del Cat 5 al switch del clic izquierdo y fijé el cuerpo del mouse a la pared con un tornillo para drywall, como una cabeza de ciervo disecada. Del lado de la oficina, como no llevaba un DB-25, soldé los cables al clip y lo conecté de forma estable al puerto LPT de la PC.
Después fue fácil. Busqué “VB6 Volume Mixer”, lo descargué, abrí la casilla de silencio de stereo mix, copié una línea en un timer y cada 100 ms verificaba si el pin LPT estaba en corto; si lo estaba, silenciaba stereo mix y quitaba el silencio del micrófono.
Fue algo hecho en sitio, sin planificación previa, y ese cliente sigue siendo cliente hasta hoy. Para un trabajador todoterreno, era una herramienta realmente excelente.
Creo que hace unos años leí en Reddit un comentario de alguien que había visto a empleados de un restaurante presionar un mouse pegado a la pared para hacer anuncios. Creo que era para avisar que un pedido estaba listo; era una configuración tan peculiar que probablemente haya sido este caso.
También me gusta VB6, pero esto se ve como 10% VB6 y 90% MacGyver. Es alguien que la Phoenix Foundation definitivamente necesita.
“VB6 es el mejor IDE” no; era el segundo. El mejor era Delphi, y hoy tal vez sea Lazarus.
Está realmente bien hecho, y si ahora aparece también Delphi, creo que podría volver a estar satisfecho con el estado de los entornos de desarrollo.
Código fuente: https://github.com/BAndysc/AvaloniaVisualBasic6
Como borraron el comentario que mencionaba Lazarus, agrego que sí conozco Lazarus y lo uso en proyectos antiguos. Pero quiero una versión moderna que también funcione dentro del navegador, y .NET parece bastante adecuado para ese propósito en este caso. Tal vez incluso podría estar basado en https://pascalabc.net/en/.
No es broma: programar en Pascal/Lazarus y Common Lisp sigue siendo más divertido que usar las herramientas actuales; no hay ansiedad, solo disfrute y productividad.
Que puedas usar tecnologías basadas en .NET en el cliente o dentro del navegador no significa que necesariamente debas hacerlo. Estos frameworks suelen implicar grandes concesiones y, una vez que empiezas a usarlos, rápidamente quedas atado a ellos.
Por ejemplo, migrar de MVC a MVC es mucho más fácil que migrar de webforms a blazor/avaloniaui/dotvvm.
Hace más falta Turbo Pascal/C++.
A fines de los 90 y comienzos de los 2000 fui realmente productivo con VB5/6. Hice muchas apps utilitarias para resolver todo tipo de pequeños problemas, y era facilísimo armarlas como si fueran piezas. Intenté pasarme a vb.net, pero no se sentía igual.
El builder de VB6 Winforms de aquí es casi 100% idéntico al builder de Winforms del Visual Studio 2022 actual.
Lo uso varias horas todos los días: arrastras unos cuantos componentes a un formulario, agregas un poco de lógica y en minutos tienes funcionando una pequeña app de escritorio.
Desde 2021 el soporte es mejor, así que lamentablemente programo en C#, pero sinceramente creo que VB.NET era superior por la legibilidad del código.
Conozco esa sensación. En la universidad era el encargado de VB6 para escribir automatización de pruebas de equipos como GPIB, UART, RS422, etc., y gané bastante como estudiante de posgrado en el departamento de ingeniería eléctrica. Dejé de ser asistente de docencia y me reemplazaron como encargado de equipos; también pagué la mayor parte de la maestría con eso.
Me recuerda a una de las mejores herramientas de programación de aquella época. Cuando pasamos de BASIC a Visual Basic fue impactante. Incluso hoy extraño una herramienta así, y las llamadas herramientas no-code o low-code actuales funcionan de una manera bastante distinta. Sigo pensando que el mejor low-code es el que hacía VB
No hace falta extrañarlo. Todavía existe una herramienta que funciona de forma parecida: https://www.lazarus-ide.org/
Sinceramente, si se trata de un enfoque de programación reactiva, no parece tan difícil agregarle al IDE una experiencia de usuario relacionada
Creo que la mayoría de los desarrolladores de frameworks olvidan la productividad como métrica clave. Puede que sea una afirmación algo injusta, pero la falta de herramientas visuales es decepcionante
Wow, VB6 fue precisamente la herramienta que me introdujo al desarrollo de software cuando era chico. Era justo la dosis de nostalgia que necesitaba hoy
Misma experiencia. Pero con el ímpetu de la juventud, no tardé mucho en declarar que BASIC era un lenguaje inútil y pasarme a MS Visual C++ 6
C++ y MFC eran peores por otros motivos, pero después descubrí Linux y ya se sabe cómo sigue la historia
Aun así, todavía no encontré nada tan potente como el RAD de VB6. Hoy en día hacemos UI como cavernícolas, ubicando todo a mano o usando XML
Igual yo. Empecé con una copia pirata de VB6 y una descarga de un sitio web que explicaba bastante bien cómo usarlo
Recuerdo incluso hacer cosas como usar DMA sobre imágenes con la API de Win32 para detectar colisiones píxel por píxel entre sprites. Qué buenos tiempos
Hacer DLLs de alto rendimiento en Visual C++ y usarlas desde VB era el equilibrio perfecto
Revisando el GitHub del autor, parece que también mantiene una biblioteca de UI para un look and feel clásico de Win9x: https://github.com/BAndysc/Classic.Avalonia
Me gustó y me dan ganas de hacer una app con eso
Creo que esa biblioteca por sí sola merece una publicación aparte tanto como la recreación de VB6. El detalle es excelente y me dan ganas de volver a explorar Avalonia
Extraño esos tiempos. Todos los IDE tenían depurador línea por línea
Las aplicaciones Angular/React actuales, incluso después de años, siguen sin tener algo así, y todavía me confundo con la sintaxis
Nunca lo había pensado así, pero es cierto. React tiene buenas herramientas como plugins de navegador, pero llevar eso de vuelta al IDE sigue siendo doloroso
Lo que escribes y lo que realmente se ejecuta son tan distintos que conviene ver las aplicaciones de una sola página como otro lenguaje. Firefox tiene un buen depurador de JavaScript, y funciona bien si la salida de las herramientas de build genera sourcemaps
Está bueno. Tengo un pequeño reporte de bug
Agregué un botón, hice doble clic para abrir la ventana de código, puse un código simple como MsgBox "Hello" y luego hice clic en la x de la esquina superior derecha de la ventana de código
El código no se guardó. Para actualizar el código hay que hacer “Save” o “Run” en el proyecto. El viejo IDE de VB recordaba todo lo que uno escribía, así que en eso es distinto
Funciona con el control de botón, pero parece que el control de etiqueta no dispara el evento Click de ninguna manera
Recuerdo que en los 90 muchas empresas pequeñas funcionaban con VB y Access. Les dio muchísimo poder a personas que no eran programadoras
Ojalá hubiera algo parecido para la web. Algunas soluciones low-code se ven parecidas por fuera, pero lo distinto de VB era que podía crecer hasta convertirse en una app completa sin tener que cambiar de herramienta a mitad de camino. Siempre me sorprende la complejidad de desarrollar y desplegar apps CRUD web hoy en día
La web es una plataforma de apps realmente pésima. Es popular por dos razones
Primero, no requiere instalación ni lidiar con el empaquetado del sistema operativo. Porque el empaquetado de todos los sistemas operativos es terrible
Segundo, SaaS es DRM. Si alojas el software en la nube, no hay piratería y es fácil cobrar una suscripción mensual
Si tuviera que mencionar una tercera, sería que facilita crear funciones de colaboración, pero eso solo aplica a cierto software
1 comentarios
Opiniones en Hacker News
Si a Figma se le pudieran agregar también comportamientos de UI, probablemente se vería justo así. La web se siente como si llevara años yendo hacia atrás: perdimos Flash y pasamos a HTML5, pero aquella corriente en la que la gente creativa hacía muchas cosas terminó diluyéndose.
Antes, IDEs como Visual Basic, Delphi y Borland JBuilder tenían builders simples de aplicaciones, y Eclipse también tuvo durante un tiempo un builder sencillo de UI en Swing. En la web también estaban Dreamweaver, FrontPage y otros.
No digo que esas herramientas fueran perfectas, pero nunca apareció un reemplazo adecuado, y ahora parece algo profundamente derrochador: se “diseña” en Figma y luego el equipo de desarrollo lo vuelve a implementar casi desde cero.
Figma también lo demuestra. Para prototipos rápidos es útil colocar elementos con posición absoluta y usar símbolos, pero en cuanto introduces autolayout, terminas enfrentando casi los mismos problemas que con CSS flexbox y grid. La diferencia es que ocurre en un sistema mucho peor, sin control de versiones, herramientas de refactorización ni ChatGPT.
Subjetivamente, también me resulta mucho más fácil trabajar directamente con una estructura XML que hacer doble clic en 15 grupos, o entrar con cmd-clic, para seleccionar un componente específico y luego modificar propiedades en forma de texto. Por eso creo que Apple y Android empujaron los interface builders hacia los DSL.
VB6 fue, por lejos, el mejor IDE para quienes necesitaban producir resultados de inmediato.
A mediados de los 2000, cuando instalaba sistemas de CCTV basados en PC, le estaba demostrando una PC a un cliente de un restaurante y le mostré el servicio de música Pandora; me preguntó si podía escucharlo por las bocinas del restaurante. Con un cable 3.5mm-RCA-BNC que tenía en el auto lo conecté al amplificador, y el cliente quedó encantado, diciendo que se sentía como entrar al siglo XXI.
Luego preguntó si podía pausar un momento la música y hacer anuncios a los clientes, así que le creé un acceso directo al mezclador de sonido sndvol32.exe en el escritorio. Cuando dijo que quería que los empleados lo hicieran desde el mostrador, no desde la oficina, le pedí un clip y 30 minutos.
Saqué del auto cable Cat 5 trenzado y un viejo mouse IBM beige de dos botones, tendí el cable desde la oficina hasta la recepción, soldé un par del Cat 5 al switch del clic izquierdo y fijé el cuerpo del mouse a la pared con un tornillo para drywall, como una cabeza de ciervo disecada. Del lado de la oficina, como no llevaba un DB-25, soldé los cables al clip y lo conecté de forma estable al puerto LPT de la PC.
Después fue fácil. Busqué “VB6 Volume Mixer”, lo descargué, abrí la casilla de silencio de stereo mix, copié una línea en un timer y cada 100 ms verificaba si el pin LPT estaba en corto; si lo estaba, silenciaba stereo mix y quitaba el silencio del micrófono.
Fue algo hecho en sitio, sin planificación previa, y ese cliente sigue siendo cliente hasta hoy. Para un trabajador todoterreno, era una herramienta realmente excelente.
Está realmente bien hecho, y si ahora aparece también Delphi, creo que podría volver a estar satisfecho con el estado de los entornos de desarrollo.
Código fuente: https://github.com/BAndysc/AvaloniaVisualBasic6
Como borraron el comentario que mencionaba Lazarus, agrego que sí conozco Lazarus y lo uso en proyectos antiguos. Pero quiero una versión moderna que también funcione dentro del navegador, y .NET parece bastante adecuado para ese propósito en este caso. Tal vez incluso podría estar basado en https://pascalabc.net/en/.
No es broma: programar en Pascal/Lazarus y Common Lisp sigue siendo más divertido que usar las herramientas actuales; no hay ansiedad, solo disfrute y productividad.
Por ejemplo, migrar de MVC a MVC es mucho más fácil que migrar de webforms a blazor/avaloniaui/dotvvm.
A fines de los 90 y comienzos de los 2000 fui realmente productivo con VB5/6. Hice muchas apps utilitarias para resolver todo tipo de pequeños problemas, y era facilísimo armarlas como si fueran piezas. Intenté pasarme a vb.net, pero no se sentía igual.
Lo uso varias horas todos los días: arrastras unos cuantos componentes a un formulario, agregas un poco de lógica y en minutos tienes funcionando una pequeña app de escritorio.
Desde 2021 el soporte es mejor, así que lamentablemente programo en C#, pero sinceramente creo que VB.NET era superior por la legibilidad del código.
Me recuerda a una de las mejores herramientas de programación de aquella época. Cuando pasamos de BASIC a Visual Basic fue impactante. Incluso hoy extraño una herramienta así, y las llamadas herramientas no-code o low-code actuales funcionan de una manera bastante distinta. Sigo pensando que el mejor low-code es el que hacía VB
Creo que la mayoría de los desarrolladores de frameworks olvidan la productividad como métrica clave. Puede que sea una afirmación algo injusta, pero la falta de herramientas visuales es decepcionante
Wow, VB6 fue precisamente la herramienta que me introdujo al desarrollo de software cuando era chico. Era justo la dosis de nostalgia que necesitaba hoy
C++ y MFC eran peores por otros motivos, pero después descubrí Linux y ya se sabe cómo sigue la historia
Aun así, todavía no encontré nada tan potente como el RAD de VB6. Hoy en día hacemos UI como cavernícolas, ubicando todo a mano o usando XML
Recuerdo incluso hacer cosas como usar DMA sobre imágenes con la API de Win32 para detectar colisiones píxel por píxel entre sprites. Qué buenos tiempos
Revisando el GitHub del autor, parece que también mantiene una biblioteca de UI para un look and feel clásico de Win9x: https://github.com/BAndysc/Classic.Avalonia
Me gustó y me dan ganas de hacer una app con eso
Extraño esos tiempos. Todos los IDE tenían depurador línea por línea
Las aplicaciones Angular/React actuales, incluso después de años, siguen sin tener algo así, y todavía me confundo con la sintaxis
Está bueno. Tengo un pequeño reporte de bug
Agregué un botón, hice doble clic para abrir la ventana de código, puse un código simple como
MsgBox "Hello"y luego hice clic en la x de la esquina superior derecha de la ventana de códigoEl código no se guardó. Para actualizar el código hay que hacer “Save” o “Run” en el proyecto. El viejo IDE de VB recordaba todo lo que uno escribía, así que en eso es distinto
Recuerdo que en los 90 muchas empresas pequeñas funcionaban con VB y Access. Les dio muchísimo poder a personas que no eran programadoras
Ojalá hubiera algo parecido para la web. Algunas soluciones low-code se ven parecidas por fuera, pero lo distinto de VB era que podía crecer hasta convertirse en una app completa sin tener que cambiar de herramienta a mitad de camino. Siempre me sorprende la complejidad de desarrollar y desplegar apps CRUD web hoy en día
Primero, no requiere instalación ni lidiar con el empaquetado del sistema operativo. Porque el empaquetado de todos los sistemas operativos es terrible
Segundo, SaaS es DRM. Si alojas el software en la nube, no hay piratería y es fácil cobrar una suscripción mensual
Si tuviera que mencionar una tercera, sería que facilita crear funciones de colaboración, pero eso solo aplica a cierto software