Hacker News new | past | comments | ask | show | jobs | submit login

What boggles me is that it's still hard to put together a UI by dragging/dropping some fields together.

If Visual Basic (and Delphi, and others) had this basically solved twenty years ago, why is it still something that's so hard to do for HTML?




It's so hard because Web layout with HTML/CSS/JS is the ultimate Turing Tarpit [0]. Any tool that tries to offer a simple interface to three interlocking programming languages is going to have to deal with all the crazy things the Javascript Framework of the Week will do to the page you're creating.

This is exactly the problem we're solving with Anvil (https://anvil.works). It's explicitly VB-like - one language, drag and drop design, and object oriented components. But it is only possible because we took the deliberate choice to do it all with one language (Python) with an appropriately simplified display model.

[0] https://en.m.wikipedia.org/wiki/Turing_tarpit


Our product, Elevate Web Builder, does exactly what you describe:

https://www.elevatesoft.com/products?category=ewb&type=web

(Examples at the bottom)

Here's an (older) video that shows the IDE in use:

https://youtu.be/o1cU0KoJU8Q

I wouldn't consider what we're doing as "hard". The main thing is that the developer has to be willing to do some odd things relative to traditional web development, such as:

- Don't use JS as the development language, and only use it as a target for a statically-typed, compiled language. It's basically impossible to do a decent IDE without the type information. Even simple things like getting method signatures of event types for selecting/creating event handlers is impossible without types.

- Don't use CSS and, instead, use per-element style modifications via code. CSS is too broad a brush for component-based development where you want to allow the developer to customize the look and feel of every visual control on a per-control basis. Also, it lacks the flexibility required for dealing with weird/odd control state transitions.

In general, one has to take a step back from the HTML/CSS/JS world and virtualize everything in code in order to allow for dual design-time/run-time usage (we're adding server-side right now). Unfortunately, this also has the side-effect of not being "normal" web development anymore, so we're definitely swimming against the tide. But, I think it's the way to create more reliable and dependable web applications in a must more productive manner.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: