8 ms·
I feel old now. I'm fairly sure that we could do this almost as fast with VB or Delphi a couple of decades ago, but a little more deterministic results instead
by JanneVee 3y ago
I feel old now. I'm fairly sure that we could do this almost as fast with VB or Delphi a couple of decades ago, but a little more deterministic results instead of having the tool inferring it from the label names. We had this and then we shoved everything in the browser and forgot that we could do this without using huge amount of compute of some generative AI model.
Look at me I'm old yelling at clouds!
- ilaksh 3y agoThere are still tools to do it. I think the reason they are not more popular with programmers is that it's basically some stupid subconscious thing where we are afraid of being accused of being users or beginners. Not something we realize consciously, but anything that doesn't involve complex colorful text naturally gets kind of peer pressured out because it looks like a "beginner tool".
- jszymborski 3y agoI first started programming with VB6 and have yearned to make a GUI program as simply as I did then. Can you point me to something as simple? I've tried Glade before but the time I used it I didn't find it a particularly pleasant experience
- ilaksh 3y agoI also used VB6 back in the day. It was great. Sadly I, like all programmers, have been peer pressured or something into avoiding tools like that. But I know they exist. I also made one several years ago. (No one was interested). But I think if you search for "RAD" or "Rapid Application Development" or graphical component based development may get quite a lot. I think that there are several plugins for WordPress that have similar functionality, although less code integration. Maybe search for "drag and drop React editor".
- password4321 3y agoWindows Forms for .NET Framework 4 using Visual Studio was (is?) a simple Windows-only option.
- lanstin 3y agoI used VBA and Tk. They were good. I always assumed front end web people have similar tools?
- NoGravitas 3y agoGlade is actually annoying enough that it's easier and faster to construct your UI in-code.
- monknomo 3y agoI have enjoyed using windowbuilder and formdev when I need a desktop gui
- ilaksh 3y agoThe most up to date version might use something like Streamlit with a drag and drop editor.
- Guvante 3y agoYou are missing a huge caveat of those tools. They tend to have limits in functionality. It isn't uncommon that you prototype with a tool and it is super fast but before you can launch for real you need to rewrite everything. At that point it is difficult to know if the prototype was valuable. Certainly quickly visualizing is good but a prototype tool that is non functional is even faster to use. Having a tool that allows easy drag and drop without any friction on the generated code (including difficulty of using that code) while also having all the powers of HTML would be really cool. Such a tool wouldn't be a beginner tool but any that fail this and can't really go all the way to final product gets discarded as "I am going to have to rewrite anyway". Less of a "I am too good for that" more a "not a useful abstractions level" when considered holistically.
- ilaksh 3y agoThat's a good rationalization for doing everything manually, but I don't believe it really holds up. I think it comes down to some social psychological effects that as I said are subconscious. So people don't realize it's effecting their decision making. When they decide not to use those tools they will use rationales like you said rather than admitting that they felt peer pressure.
- cs02rm0 3y agoDisagree, it's a very conscious choice from having been burned repeatedly by being asked to do something leftfield.
- bluefirebrand 3y agoSome people want to be good software developers, not just good website builders. If you want to use low code website builders, feel free. If that suits your work style and the projects you're building, great. But you will never develop the skills you need to actually build software. A person who spends their life using website builders instead of writing software will never be able to build their own website builder, for example. Some of us actually like to have the skills to build the tools ourselves. If you want to call that peer pressure, then sure. It's peer pressure to elevate your own experience and attain mastery, instead of settling for only ever using tools that other people built for you.
- MattRix 3y agoI get your point, but it only applies to the most simple of these examples. This can do all kinds of stuff, for example look further into that thread and you’ll see it implementing tic tac toe. The tool works by basically sending a screenshot of your diagram to GPT4 and saying “implement this”.
- lolinder 3y agoWhich in turn only works for simple stuff that GPT-4 can implement from a single screenshot, and is, as OP pointed out, non-deterministic. The code OP is referring to would have been written to integrate with the rest of the project, to connect to data stores and services that the screenshot has no way of knowing about. People built huge applications in VB and similar tools. Don't get me wrong, these new tools are cool, and I imagine they'll be great for prototyping small things quickly!
- MattRix 3y agoHuman beings build stuff non deterministically too. The key is just to give the tool more information along with the screenshot, for example showing it your current codebase so it writes code using the same conventions.
- 95014_refugee 3y ago... and our opinions about how badly this is going to pan out are based on decades of experience with how badly that panned out. Nobody that has ever had to maintain software is going to look at this and be impressed. Without a reproducible and predictable set of transforms from the source artifact to the product artifact(s), maintenance of software generated in this fashion will be impossible. The concept of a "localized" change doesn't exist; you have to assume that any and every change risks breaking the entire product. This is, of course, just another version of folks looking at something that mimics a (structured, evolved) human activity and assuming that it is in fact reproducing that activity, rather than just copying some subset of the visible consequences of that activtiy.
- gchamonlive 3y agoThere was a reason why we moved away from this. Everything is code, the UIs for creating such interfaces are just abstractions. The code generated by those no-code approaches to interface design was horrible and would break down quite fast in larger projects. Maintainability for such interfaces was non-existent. I think just regretting an old feature long gone without proper context is dangerous. If we are to bring back those approaches we have to keep in mind exactly why they went away in the first place.
- vintagedave 3y ago> Everything is code, the UIs for creating such interfaces are just abstractions. The code generated by those no-code approaches to interface design... I'm not sure you're replying to the same thing. I never used VB much, but Delphi was not and is not no-code. In fact it emphasised using libraries a lot ('components' in its terms are classes provided by libraries) and the UI had a text description, which was streamed and created at runtime. Delphi today could indeed create something doing this just as fast, and you wouldn't draw a trackbar and hope it's recognised in the image by the AI... you'd drop an actual trackbar.
- protomolecule 3y agoThat's not how VB6 or Delphi work. Delphi's visual editor allows you to position, link together and configure visual and non-visual components in design time, automatically serializes all the components into text file and in runtime your program deserializes these components from the resource embedded in the program's binary file. It also allows you to create handlers for events like OnButtonClicked or OnDBConnectionOpened where the usual arbitrarily complex programming happens. The first result from google showing what this looks like: https://www.youtube.com/watch?v=AyWm24ekSVM https://www.youtube.com/watch?v=AyWm24ekSVM
- insanitybit 3y agoI don't use these tools (I do backend dev), so perhaps I'm mistaken, but the benefits here are, I assume, a) For UX people who have minimal programming knowledge but need to produce mockups. b) For people like me who might want a basic UX to start with for demo purposes.
- easeout 3y agoI think we'd all be gladly sitting atop high abstractions like that if not for the fact that brands pay the bills, and brands want custom experiences. Website and app design often begins with "what does a button look like," and design tools focus not on prebuilt widgets but on paths and fills, because the last thing a brand wants is to speak with different tones in different media. Their software has to feel like their stores and advertisements in order to create a brand-consistent customer experience. Design systems are a hot topic today because what brands got with this design method is a different voice in each of their sites and apps, because they're all independently custom.
- PaulHoule 3y agoThis is what kills Horizon Worlds, which is Facebook's earnest answer to the problem of making VR authoring much easier than "making a video game" I want to make a 3-d world based on photographs (even stereo) and visual art and to do that I need to import JPG or PNG images. No can do. They have a short list of textures they supply, but you cannot import media assets like images, audio, video, geometry, point clouds, whatever, ... McDonald's would insist on putting a Coca-Cola logo on the cups and so would every other brand.
- ben_w 3y ago> Website and app design often begins with "what does a button look like," Yup. Been a long time since I've used an un-customised standard button outside my personal projects, no matter how much R&D has been spent by Apple on working out what it means for a UI to be good.
- hotnfresh 3y agoYou still see this using just about any major native UI toolkit. They may not be RAD-fast, but all kinds of elements and interactions that require custom and usually-janky JavaScript to implement on the Web are available “for free”. And actually work correctly, interact with the rest of the toolkit the way you’d expect, and i18n and a11y and all that work correctly and consistently. There’s no reason HTML can’t do a lot more than it does out-of-the-box, saving crazy numbers of developer-hours and piles of user frustration every year. It just doesn’t.
- maaaaattttt 3y agoI have kind of the same opinion. Maybe more provocative. When people show me figma to HTML with AI I tell them “have you ever heard of Dreamweaver?” Ok, dreamweaver code was ugly and unusable when AI generated code is not too bad (sometimes). But still, I also feel we kinda were already close to where we’re at today.
- nvm0n2 3y agoAre you sure? I remember one of Dreamweaver competitive advantages was that it produced much cleaner HTML than it's competitors. FrontPage was the big offender with awful code.
- pclmulqdq 3y agoToward the end of its life, Dreamweaver's code was quite readable. Webflow today is kind of an equivalent, and also puts out relatively readable HTML. I think most of the reputation comes from people looking at its early output.
- lakpan 3y agoI’d say nobody who “hand crafts” code finds any generated code readable. AI almost puts a dent in that, but even that often produces really ugly code.
- Zetobal 3y agoPeople also produce really ugly code.
- raydev 3y agoThat's why any good company has code review rules and required linters and push restrictions, etc.
- mrguyorama 3y agoI once spent a week as an intern building a really clean and well done java swing UI options panel for a portion of our team's app. I was so proud of myself and thought it was so clear and concise and great. I told my manager it was all finished. Well, no one else on the team was that familiar with java swing so they couldn't work with it, so one of my coworkers had to spend an hour rebuilding the panel in the UI builder that the rest of the app worked in. It produced a perfectly functional UI that had all the features requested and could be maintained by anyone on the team. Sure, the raw java file was twice as long, but who cares? It gets compiled. I was enlightened on that day. "Elegant" is worthless in most cases. Five years later that entire app was rebuilt as a web app and nobody gave a shit whether one of it's option panels was artisanally hand crafted with care and love or spit out by an actually really good and regularized UI builder. We are data plumbers. Nobody cares if the pipes you laid out are arranged to look like the mona lisa, and it's probably worse for the customer and maintenance that way anyway.
- aa-jv 3y agoOnce upon a time, there was a fresh new operating system, the next step, being demo'ed in the Graphics pavillion of Comdex. Some huge nerd stood there, dragging things around with a mouse, 'proving' that you didn't have to be a programmer to build applications. A decade after that, something floated around for a year or two called Visix Vibe, which gave the same thing, but for this relatively new language (at the time), Java. Every few years, maybe 4-5 or a decade or so, someone gets the itch to make all the complexity fade away. Eventually though, they build an OS.
- golergka 3y agoHN has this weird nostalgic thing for VB and Delphi, but I feel that most people who express it either haven't actually used these tools or don't remember it well. There's no way to do responsive interfaces with it. If you want anything but your OSes native controls, you're in the world of hell too. Even localisation is a problem. No unit, no integration tests. WYSIWYG editors mean that form files are changed automatically and it's often not realistic to review the diffs. And the languages itself — while being adequate for their time, they're don't even have support for functions as first-class objects, so compared to modern alternatives they're almost unusable and require enormous amount of boilerplate.
- jjkaczor 3y agoNo way to do responsive interfaces? Oh sweet summer child. (if you are going to call us weirdly nostalgic) There were ton's of methods - from extremely manual code-based detection of window resizing events, then subsequent calculating and scaling contained controls, to a myriad of third-party libraries/components that would provide an automatic resizable host container for other controls. Localization was not a problem - VB6 supported 'resource files' like every other Win32 app. Unit and integration tests were possible - but uglier with visual forms - typically requiring third-party products, and/or low-level Win32-API integrations. But in reality - you would abstract all of your business logic into classes/modules/units with very little within the UI, so that those would be unit-tested, instead of the UI. Now - don't get me wrong, VB was limited in many many ways, and I am not nostalgic for it - but, it was more capable than the picture you are painting. Delphi even moreso, as it had easy and direct access to the entire Win32 API and could handle threading and pointers as well.
- empath-nirvana 3y agoYou couldn't have a conversation with Dreamweaver.
- NoGravitas 3y agoIs it because you couldn't have a conversation with Dreamweaver that you came to me?
- agvxov 3y agoyou could, it would be just a bit one sided.
- mfbx9da4 3y agoI think this is kind of missing the point. The fact that the underlying implementation is not a hand-coded-deterministic one is the interesting thing about this demo. This is clearly going to be useful by making people more efficient and only going to get better with time.
- NoGravitas 3y agoI, for one, love to have my code generated non-deterministically. Makes debugging so easy.
- meheleventyone 3y agoI’d just ship drawings and have it generate the code at runtime.
- darkwater 3y agoYou made me chuckle but that could realistically be some form of art in the near future.
- yetihehe 3y agoNow, instead of looking in some cryptic symbols which you don't understand, you just mash "regenerate" button until it works. Can anything be more simple? Of course, with newer models you need to hit that button even less, it's progress, isn't it?
- mmanfrin 3y agoYou're right, chatGPT and AIs will go nowhere.
- theptip 3y agoKeep in mind this could equally be a picture of a napkin. Ignoring that though, I t’s fair to make this point for the current level of capabilities, but look at the trajectory… in a year or two when the training set has lots of examples of people using this, it should be pretty competitive.
- api 3y agoYou're absolutely correct. When we went to the browser we took 30 years of UI development knowledge and UI/UX principle and flushed it down the toilet. Only very recently have we started to gain composability in browser UIs through things like React, and it's a sad facsimile of the widget composability we had in WYSIWYG UI development on PCs in the late 1980s and early 1990s. The web is a shit UI platform, but that's because it wasn't designed to be one. UIs were shoehorned into a hypertext system designed for viewing documents.
- tonyedgecombe 3y agoIt's also a shit document platform even though that is what it was designed for.
- api 3y agoIt's really a quick hack that got mass adopted and then became the center of gravity due to network effects. ... like DOS, Unix, BASIC, JavaScript, and loads of other things we got stuck with at various times. Network effects are a force of nature that doesn't care about you. They are not your friend.
- financltravsty 3y agoHTML is a shit spec. Without strong semantic elements, it's impossible to reliably parse any HTML document without using your eyes.
- meiraleal 3y agoThe web is a much better UI platform than what's available in linux desktop and whatever took 30 years of UX development in Linux wasn't flushed down the toilet (emacs, vi, GNU, ...). MS Windows users miss their Delphi/VB software.
- meheleventyone 3y agoAlso old(ish) and agree, everything in here could just be a drag-and-drop component.
- goodpoint 3y agoAnd don't forget this stunt took some kilos of Co2 released in the atmosphere to run the AI.
- insanitybit 3y agoMy laptop from multiple years ago (6GB VRAM) can run local models with decent performance. It's my understanding that the major energy cost is from training the models, which you do somewhat infrequently, and that generation isn't nearly as costly. Someone who knows more, please correct me if I'm wrong!
- jes5199 3y agoI would like to see an actual report on this
- city41 3y agoI'm also reminded of Steve Jobs's Interface Builder demo: https://www.youtube.com/watch?v=dl0CbKYUFTY&t=70s https://www.youtube.com/watch?v=dl0CbKYUFTY&t=70s I still think it's impressive that AI can just look at 2 rectangles and discern slider though.
- brundolf 3y agoIt has nothing to do with the browser, it has to do with how opinionated your framework is. VB was highly opinionated; it made native windows-style UIs and nothing else. Nobody was taking arbitrary mockups from designers, with a wildly custom look-and-feel, and replicating them down to the pixel in VB. Today, most product GUIs are part of the brand. For better or worse, every company wants a distinctive look and feel and set of UI behaviors. This requires the tools used to build them to be much more complicated. You could replicate VB in a browser. Many people have done roughly that. But nobody uses them to build products, because their company doesn't want boring/generic UIs.
- qup 3y agoVB6 allowed you to use bmp files as guis. I built an mp3 player that looked like an artist's pallette, completely curved. I'm sure it was some monstrosity of a hack. I didn't understand it at the time.
- meiraleal 3y agoHonest question: what's the point of saying that something could be done 20 years ago (when most people weren't online or using a computer)? 20 years ago we also had music, pizza, movies, games and old people yelling at clouds.