this post was submitted on 01 Sep 2023
339 points (96.2% liked)
Programming
17437 readers
244 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Web development feels like it's stuck in the early 2000's. I've ranted a lot about it over the years but I just don't know how everyone is okay with it. I'm sure tons of people will disagree.
HTML is bad. The language itself feels unintuitive and is clunky compared to modern markdown languages, and let's be honest, your webpage just consists of nested
<div>
tags.CSS is bad. Who knew styling can be so unintuitive and unmanageable? Maybe it made sense 25 years ago, but now it's just terrible. It's very clunkily integrated with HTML too in my opinion. Styling and markdown should be one easier to use language where 50% of it isn't deprecated.
Javascript has been memed to death so I won't even go there. Typescript is OK I suppose.
And now for my hottest take: ~10+ years ago I saw web building tools like Wix and I completely expected web development to head in the direction using a GUI to create, style, and script from one interface, even allowing you to create and see dynamic content instantly. I've seen competitors and waited for "the big one" that's actually free and open source and good enough to be used professionally. It never happened. Web dev has just gone backwards and stuck in its old ways, now it's a bloated mess that takes way more time than it deserves.
The Godot engine is actually a pretty good option for creating GUI apps and it's exactly what I envisioned web dev should've been this past decade. One language, intuitive interface, simple theming and easy rapid development... Shame it never happened.
My websites do not consist of nested divs. Your webpages might just consist of nested divs, but only if you are clueless about what you're doing and are oblivious to basic stuff like accessibility support.
Being unmanageable is the output of the developer team, not the languages they use. Decoupling Presentation from the data and semantics never ceases to make sense. CSS has many issues but the way its integrated with HTML is certainly not one of them.
Frankly, you sound like you blame your tools a lot.
https://quirksmode.org/css/ has entered the chat.
These days usually both html and css are in the presentation layer, well separated from the data, and the extra separation between css and html is just an annoyance. Then people started using tailwind, and we're going in circles with extra complexity.
Yet Markdown languages are far, far more limited in both scope and functionality than HTML is. How do you bridge this gap without making it just as complex?
They didn't start by writing a spec with half of it deprecated already. They started with something, and over time kept developing it - and deprecating other parts. No matter what you propose, unless it's 100% absolutely perfect (and nothing ever is) you'll end up in the same situation. The only other choice would be to break backwards compatibility, which is obviously not a good thing to do.
People say the same about no-code frameworks. There's a good reason that stuff doesn't work beyond the absolute basics. If it was really possible, HTML+CSS+JS give you all the necessary tools to build it. You won't get there with a more limited system.
That's a really big topic but in general I'd combine theming and markup to one language (not necessarily coupling CSS and HTML in one file but having something that does both with similar syntax and rules), make things simpler so there's one clear way of doing something rather than using a generic container for everything, etc.
Obviously deprecating a few things will happen over time but the reason web dev is how it is now is because technology used to be a lot more limited and websites were a lot simpler. 25 years ago, nobody knew what the "modern web" would look like so it was made up as people went along. We know what specifications we would need now if anybody went back and re-did them, I think you'd end up with something better.
I don't think they're comparable. You won't use a GUI and drag-and-drop for everything obviously, you'd still be able to add sections with code.
The fact that Wordpress powers almost half the internet is proof that a simpler web dev experience like this is in demand and it can work. Most websites don't need something complex, just something that supports rapid development and is intuitive, and doesn't make it easy to fall into bad practices. Like I said, it's a hot take, but I would prefer it so much this way.
You'd have to show an example of such a language, it's difficult for me to imagine a good combination between styles and markup - it's good that they are as separate as they are, intertwining them makes the web less useful.
We know the specifications we need for current development and applications. If we were to "reset" and build new specifications now, how do you know they won't be just as useless in 25 years?
Why do you think such a tool doesn't exist as of now? The platform definitely enables you to build it if it's possible - and a less capable platform will not make it easier to enable such a thing.
There are other options. A version on html/css/js would be good IMO. Then you can remove things you should not use in newer versions or make other breaking changes and better evolve the standard. Yes the browsers need to implement and understand each version. Much like how rust works with its editions.
This increases complexity a lot, since you don't just have to implement compatibility with the editions etc., but also have to properly test a giant amount of cases against all of them. What is the advantage compared to marking things as deprecated?
Nope, my webpages are not just nested divs. I use nav, main, form, select, etc to name a few. I actually use very few JS. It's mainly for communication with the server when I need AJAX to retrieve data.
Have you tried Flutterflow?
No, how is it?
Godot has native support for 3 languages and community support currently built for like 6 other languages.
But the main language is GDScript, everything else is an alternative if you prefer not to use it.
Xcode for web dev basically?
I think that Godot GUIs are very limited compared to HTML+CSS. It's not a huge problem for videogames since screens sizes aren't going to vary as much as for a web app and you are probably going to make a lot of changes anyway when porting to something like mobile. But it would never work well for proper responsiveness on different screens.
It's definitely not perfect (and definitely not a replacement for web apps) but I think it's a big step in the right direction for GUI development. People have made impressive programs with it.