Si on pouvait ajouter le comportement de l’UI à Figma, ça ressemblerait exactement à ça. Le web donne l’impression de reculer depuis des années : on a perdu Flash et basculé vers HTML5, mais l’élan où des gens créatifs fabriquaient toutes sortes de choses s’est essoufflé
Avant, il y avait de petits générateurs d’applications dans des IDE comme Visual Basic, Delphi ou Borland JBuilder, et même Eclipse a eu pendant un temps un petit générateur d’UI Swing. Côté web, il y avait aussi Dreamweaver, FrontPage, etc.
Ça ne veut pas dire que ces outils étaient parfaits, mais aucun vrai remplaçant n’est apparu ; aujourd’hui, on “conçoit” dans Figma, puis l’équipe de développement réimplémente presque tout depuis zéro, ce qui paraît profondément gaspilleur
Je ne sais pas vraiment à quel point c’est du gaspillage. Il y a du recouvrement, mais d’après mon expérience ce n’est pas énorme ; la majeure partie du temps en frontend part dans le comportement, les interactions avec les appareils, la sécurité et les appels API
Je ne pense pas que les constructeurs d’UI visuels aient été la voie d’avenir. Ça marche bien pour des UI statiques, mais ça s’effondre dès qu’on essaie d’exprimer des contraintes dynamiques
Figma le montre bien. Pour des prototypes rapides, il est utile de placer les éléments en position absolue et d’utiliser des symboles, mais dès qu’on introduit l’autolayout, on retombe presque exactement sur les problèmes rencontrés avec CSS flexbox et grid. Sauf qu’ici, on les subit dans un système bien plus médiocre, sans contrôle de version, sans outils de refactorisation et sans ChatGPT
Même subjectivement, je trouve bien plus simple de manipuler directement une structure XML que de devoir double-cliquer à travers 15 groupes ou creuser au cmd-clic pour sélectionner un composant précis, puis modifier des propriétés sous forme textuelle. C’est sans doute pour ça qu’Apple et Android ont poussé les interface builders vers des DSL
VB6 était de très loin le meilleur IDE pour les gens qui devaient produire un résultat immédiatement
Au milieu des années 2000, quand j’installais des systèmes de vidéosurveillance PC pour des restaurants, j’ai montré le service musical Pandora à un client pendant une démo sur son PC, et il m’a demandé s’il pouvait l’écouter sur les enceintes du restaurant. Je l’ai branché à l’ampli avec un câble 3.5mm-RCA-BNC que j’avais dans la voiture, et le client a adoré, en disant qu’il avait l’impression d’entrer dans le XXIe siècle
Ensuite, il a demandé s’il pouvait couper brièvement la musique pour faire des annonces aux clients, alors je lui ai créé un raccourci vers le mixeur audio sndvol32.exe sur le bureau. Quand il a dit qu’il voulait que les employés puissent le faire depuis le comptoir plutôt que depuis le bureau, je lui ai demandé un trombone et 30 minutes
J’ai pris dans ma voiture du câble Cat 5 multibrin et une vieille souris IBM beige à 2 boutons, j’ai tiré le câble du bureau jusqu’au comptoir, soudé une paire du Cat 5 sur l’interrupteur du clic gauche, puis j’ai vissé une vis à placo dans le corps de la souris pour la fixer au mur comme une tête de cerf empaillée. Côté bureau, je n’avais pas de DB-25 sous la main, alors j’ai soudé des fils au trombone pour le connecter de façon fiable au port LPT du PC
Après ça, c’était facile. J’ai cherché “VB6 Volume Mixer”, téléchargé ça, ouvert la case à cocher mute de stereo mix, copié un one-liner dans un timer et fait vérifier toutes les 100 ms si la broche LPT était en court-circuit ; si oui, ça coupait stereo mix et réactivait le micro
C’était du bricolage sur site, sans plan préalable, et ce client l’est encore aujourd’hui. Pour les profils touche-à-tout, c’était vraiment un outil formidable
Il me semble avoir lu sur Reddit, il y a quelques années, un commentaire disant que des employés de restaurant faisaient des annonces en appuyant sur une souris fixée au mur. Je crois que c’était pour signaler qu’une commande était prête ; une installation tellement atypique que c’était probablement ce cas-ci
J’aime aussi VB6, mais là on est plutôt sur 10 % VB6 et 90 % MacGyver. La personne qu’il faut absolument à la Phoenix Foundation
“VB6 meilleur IDE”, non : il était 2e. Le meilleur, c’était Delphi, et aujourd’hui c’est peut-être Lazarus
C’est vraiment très bien fait, et si on avait maintenant Delphi aussi, je crois que je serais à nouveau satisfait de l’état des environnements de développement
Code source : https://github.com/BAndysc/AvaloniaVisualBasic6
Puisque le commentaire qui mentionnait Lazarus a été supprimé, j’ajoute que je connais Lazarus et que je l’utilise sur un vieux projet. Mais je voudrais une version moderne qui fonctionne aussi dans le navigateur, et comme dans cet exemple, .NET semble convenir pour cet usage. Peut-être même sur la base de https://pascalabc.net/en/
Sans plaisanter, programmer en Pascal/Lazarus et en Common Lisp reste aujourd’hui plus agréable que les outils modernes ; il n’y a pas d’angoisse, seulement du plaisir et de la productivité
Ce n’est pas parce qu’on peut utiliser des technologies basées sur .NET côté client ou dans le navigateur qu’on devrait forcément le faire. Ces frameworks impliquent généralement de gros compromis et, une fois qu’on commence à les utiliser, on devient vite dépendant
Par exemple, passer de MVC à MVC est bien plus simple que de passer de webforms à blazor/avaloniaui/dotvvm
Il faudrait aussi du Turbo Pascal/C++
À la fin des années 1990 et au début des années 2000, j’étais vraiment très productif avec VB5/6. J’ai créé plein de petites applications utilitaires pour résoudre toutes sortes de petits problèmes, et c’était incroyablement facile à assembler. J’ai essayé de passer à vb.net, mais ce n’était pas la même sensation
Le générateur Winforms VB6 montré ici est quasiment identique à 100 % au générateur Winforms du tout dernier Visual Studio 2022 sorti aujourd’hui
Je l’utilise plusieurs heures par jour, et on peut faire tourner une petite application desktop en quelques minutes en glissant quelques composants sur un formulaire et en ajoutant un peu de logique
Depuis 2021, le support est meilleur, donc je code malheureusement en C#, mais honnêtement je trouve que VB.NET était supérieur en lisibilité du code
Je vois très bien cette sensation. À l’université, j’étais le référent VB6 pour écrire l’automatisation des tests d’équipements GPIB, UART, RS422, etc., et j’en ai plutôt bien vécu comme doctorant en génie électrique. Quand j’ai arrêté d’être assistant d’enseignement, j’ai été remplacé comme responsable du matériel, et ça m’a payé la majeure partie de mon master
Cela rappelle l’un des meilleurs outils de programmation de l’époque. Le passage de BASIC à Visual Basic avait été un choc. Un tel outil manque encore aujourd’hui, et les outils dits no-code ou low-code actuels fonctionnent de manière assez différente. À mon avis, le meilleur low-code reste toujours celui de VB
Pas besoin d’en être nostalgique. Il existe encore des outils qui fonctionnent de façon similaire : https://www.lazarus-ide.org/
Franchement, avec une approche de programmation réactive, il ne devrait pas être si difficile d’ajouter à l’IDE une expérience utilisateur correspondante
On dirait que la plupart des développeurs de frameworks oublient que la productivité est l’indicateur clé. C’est peut-être un peu injuste à dire, mais l’absence d’outils visuels est décevante
Wow, VB6 est précisément l’outil qui m’a fait entrer dans le développement logiciel quand j’étais enfant. C’était exactement la dose de nostalgie qu’il me fallait aujourd’hui
Pareil. Mais avec l’ardeur de la jeunesse, je n’ai pas mis longtemps à décréter que BASIC était un langage inutile et à passer à MS Visual C++ 6
C++ et MFC étaient pires pour d’autres raisons, puis j’ai découvert Linux, et vous connaissez la suite
Cela dit, je n’ai toujours rien trouvé d’aussi puissant que le RAD de VB6. Aujourd’hui, on en est à placer l’interface à la main comme des hommes préhistoriques, ou à l’écrire en XML
Même chose pour moi. J’ai commencé avec une copie pirate de VB6 téléchargée depuis un site web qui expliquait plutôt bien comment s’en servir
Je me souviens aussi avoir fait des choses comme utiliser le DMA sur des images via l’API Win32 pour créer une détection de collision pixel par pixel entre sprites. C’était une belle époque
VB était l’équilibre parfait quand on écrivait les DLL gourmandes en performances en Visual C++ puis qu’on les utilisait depuis VB
En parcourant le GitHub de l’auteur, on dirait qu’il maintient aussi une bibliothèque UI pour un look and feel Win9x classique : https://github.com/BAndysc/Classic.Avalonia
Ça me plaît tellement que j’ai envie de créer moi-même une application avec
Rien que cette bibliothèque mérite probablement une publication à part entière, autant que la recréation de VB6. Le niveau de détail est excellent, au point de me donner envie de replonger dans Avalonia
Cette époque me manque. Tous les IDE avaient un débogueur ligne par ligne
Aujourd’hui, les applications Angular/React n’ont toujours rien de tel, même après des années, et leur syntaxe me perturbe encore
Je n’y avais jamais pensé ainsi, mais c’est vrai. React a bien quelques outils sous forme de plugins de navigateur, mais les ramener dans l’IDE reste pénible
Il y a un tel écart entre ce qu’on écrit et ce qui s’exécute réellement que je préfère considérer les single-page apps comme un autre langage. Firefox a un débogueur JavaScript correct, et si la sortie des outils de build produit des sourcemaps, cela fonctionne bien
Sympa. J’ai un petit rapport de bug
J’ai ajouté un bouton, double-cliqué dessus pour ouvrir la fenêtre de code, puis saisi quelque chose de simple comme MsgBox "Hello", avant de cliquer sur le x en haut à droite de la fenêtre de code
Le code n’a pas été enregistré. Pour mettre à jour le code, il faut “Save” ou “Run” le projet. L’ancien IDE de VB se souvenait de tout ce qu’on tapait, donc c’est une différence
Cela fonctionne avec le contrôle bouton, mais avec le contrôle libellé, je n’arrive pas du tout à déclencher l’événement Click
Je me souviens que, dans les années 90, beaucoup de petites entreprises tournaient avec VB et Access. Cela donnait vraiment du pouvoir aux non-programmeurs
J’aimerais qu’il existe quelque chose de similaire pour le web. Certaines solutions low-code y ressemblent en apparence, mais ce qui différenciait VB, c’est qu’on pouvait faire grandir l’application jusqu’à en faire une vraie application complète sans devoir changer d’outil en cours de route. La complexité actuelle pour développer et déployer une simple application CRUD web me stupéfie toujours
Le web est vraiment une plateforme d’applications médiocre. S’il est populaire, c’est pour deux raisons
Premièrement, il n’y a rien à installer et on n’a pas à gérer le packaging pour les systèmes d’exploitation. Le packaging est horrible sur tous les OS
Deuxièmement, le SaaS est un DRM. Héberger le logiciel dans le cloud empêche le piratage et permet de facturer facilement un abonnement mensuel
S’il fallait citer une troisième raison, ce serait la facilité à créer des fonctions collaboratives, mais cela ne concerne qu’une partie des logiciels
1 commentaires
Réactions sur Hacker News
Si on pouvait ajouter le comportement de l’UI à Figma, ça ressemblerait exactement à ça. Le web donne l’impression de reculer depuis des années : on a perdu Flash et basculé vers HTML5, mais l’élan où des gens créatifs fabriquaient toutes sortes de choses s’est essoufflé
Avant, il y avait de petits générateurs d’applications dans des IDE comme Visual Basic, Delphi ou Borland JBuilder, et même Eclipse a eu pendant un temps un petit générateur d’UI Swing. Côté web, il y avait aussi Dreamweaver, FrontPage, etc.
Ça ne veut pas dire que ces outils étaient parfaits, mais aucun vrai remplaçant n’est apparu ; aujourd’hui, on “conçoit” dans Figma, puis l’équipe de développement réimplémente presque tout depuis zéro, ce qui paraît profondément gaspilleur
Figma le montre bien. Pour des prototypes rapides, il est utile de placer les éléments en position absolue et d’utiliser des symboles, mais dès qu’on introduit l’autolayout, on retombe presque exactement sur les problèmes rencontrés avec CSS flexbox et grid. Sauf qu’ici, on les subit dans un système bien plus médiocre, sans contrôle de version, sans outils de refactorisation et sans ChatGPT
Même subjectivement, je trouve bien plus simple de manipuler directement une structure XML que de devoir double-cliquer à travers 15 groupes ou creuser au
cmd-clic pour sélectionner un composant précis, puis modifier des propriétés sous forme textuelle. C’est sans doute pour ça qu’Apple et Android ont poussé les interface builders vers des DSLVB6 était de très loin le meilleur IDE pour les gens qui devaient produire un résultat immédiatement
Au milieu des années 2000, quand j’installais des systèmes de vidéosurveillance PC pour des restaurants, j’ai montré le service musical Pandora à un client pendant une démo sur son PC, et il m’a demandé s’il pouvait l’écouter sur les enceintes du restaurant. Je l’ai branché à l’ampli avec un câble 3.5mm-RCA-BNC que j’avais dans la voiture, et le client a adoré, en disant qu’il avait l’impression d’entrer dans le XXIe siècle
Ensuite, il a demandé s’il pouvait couper brièvement la musique pour faire des annonces aux clients, alors je lui ai créé un raccourci vers le mixeur audio
sndvol32.exesur le bureau. Quand il a dit qu’il voulait que les employés puissent le faire depuis le comptoir plutôt que depuis le bureau, je lui ai demandé un trombone et 30 minutesJ’ai pris dans ma voiture du câble Cat 5 multibrin et une vieille souris IBM beige à 2 boutons, j’ai tiré le câble du bureau jusqu’au comptoir, soudé une paire du Cat 5 sur l’interrupteur du clic gauche, puis j’ai vissé une vis à placo dans le corps de la souris pour la fixer au mur comme une tête de cerf empaillée. Côté bureau, je n’avais pas de DB-25 sous la main, alors j’ai soudé des fils au trombone pour le connecter de façon fiable au port LPT du PC
Après ça, c’était facile. J’ai cherché “VB6 Volume Mixer”, téléchargé ça, ouvert la case à cocher mute de stereo mix, copié un one-liner dans un timer et fait vérifier toutes les 100 ms si la broche LPT était en court-circuit ; si oui, ça coupait stereo mix et réactivait le micro
C’était du bricolage sur site, sans plan préalable, et ce client l’est encore aujourd’hui. Pour les profils touche-à-tout, c’était vraiment un outil formidable
C’est vraiment très bien fait, et si on avait maintenant Delphi aussi, je crois que je serais à nouveau satisfait de l’état des environnements de développement
Code source : https://github.com/BAndysc/AvaloniaVisualBasic6
Puisque le commentaire qui mentionnait Lazarus a été supprimé, j’ajoute que je connais Lazarus et que je l’utilise sur un vieux projet. Mais je voudrais une version moderne qui fonctionne aussi dans le navigateur, et comme dans cet exemple, .NET semble convenir pour cet usage. Peut-être même sur la base de https://pascalabc.net/en/
Sans plaisanter, programmer en Pascal/Lazarus et en Common Lisp reste aujourd’hui plus agréable que les outils modernes ; il n’y a pas d’angoisse, seulement du plaisir et de la productivité
Par exemple, passer de MVC à MVC est bien plus simple que de passer de webforms à blazor/avaloniaui/dotvvm
À la fin des années 1990 et au début des années 2000, j’étais vraiment très productif avec VB5/6. J’ai créé plein de petites applications utilitaires pour résoudre toutes sortes de petits problèmes, et c’était incroyablement facile à assembler. J’ai essayé de passer à vb.net, mais ce n’était pas la même sensation
Je l’utilise plusieurs heures par jour, et on peut faire tourner une petite application desktop en quelques minutes en glissant quelques composants sur un formulaire et en ajoutant un peu de logique
Depuis 2021, le support est meilleur, donc je code malheureusement en C#, mais honnêtement je trouve que VB.NET était supérieur en lisibilité du code
Cela rappelle l’un des meilleurs outils de programmation de l’époque. Le passage de BASIC à Visual Basic avait été un choc. Un tel outil manque encore aujourd’hui, et les outils dits no-code ou low-code actuels fonctionnent de manière assez différente. À mon avis, le meilleur low-code reste toujours celui de VB
On dirait que la plupart des développeurs de frameworks oublient que la productivité est l’indicateur clé. C’est peut-être un peu injuste à dire, mais l’absence d’outils visuels est décevante
Wow, VB6 est précisément l’outil qui m’a fait entrer dans le développement logiciel quand j’étais enfant. C’était exactement la dose de nostalgie qu’il me fallait aujourd’hui
C++ et MFC étaient pires pour d’autres raisons, puis j’ai découvert Linux, et vous connaissez la suite
Cela dit, je n’ai toujours rien trouvé d’aussi puissant que le RAD de VB6. Aujourd’hui, on en est à placer l’interface à la main comme des hommes préhistoriques, ou à l’écrire en XML
Je me souviens aussi avoir fait des choses comme utiliser le DMA sur des images via l’API Win32 pour créer une détection de collision pixel par pixel entre sprites. C’était une belle époque
En parcourant le GitHub de l’auteur, on dirait qu’il maintient aussi une bibliothèque UI pour un look and feel Win9x classique : https://github.com/BAndysc/Classic.Avalonia
Ça me plaît tellement que j’ai envie de créer moi-même une application avec
Cette époque me manque. Tous les IDE avaient un débogueur ligne par ligne
Aujourd’hui, les applications Angular/React n’ont toujours rien de tel, même après des années, et leur syntaxe me perturbe encore
Sympa. J’ai un petit rapport de bug
J’ai ajouté un bouton, double-cliqué dessus pour ouvrir la fenêtre de code, puis saisi quelque chose de simple comme
MsgBox "Hello", avant de cliquer sur le x en haut à droite de la fenêtre de codeLe code n’a pas été enregistré. Pour mettre à jour le code, il faut “Save” ou “Run” le projet. L’ancien IDE de VB se souvenait de tout ce qu’on tapait, donc c’est une différence
Je me souviens que, dans les années 90, beaucoup de petites entreprises tournaient avec VB et Access. Cela donnait vraiment du pouvoir aux non-programmeurs
J’aimerais qu’il existe quelque chose de similaire pour le web. Certaines solutions low-code y ressemblent en apparence, mais ce qui différenciait VB, c’est qu’on pouvait faire grandir l’application jusqu’à en faire une vraie application complète sans devoir changer d’outil en cours de route. La complexité actuelle pour développer et déployer une simple application CRUD web me stupéfie toujours
Premièrement, il n’y a rien à installer et on n’a pas à gérer le packaging pour les systèmes d’exploitation. Le packaging est horrible sur tous les OS
Deuxièmement, le SaaS est un DRM. Héberger le logiciel dans le cloud empêche le piratage et permet de facturer facilement un abonnement mensuel
S’il fallait citer une troisième raison, ce serait la facilité à créer des fonctions collaboratives, mais cela ne concerne qu’une partie des logiciels