I'm sorry but I beg to differ, web programming 10 years ago was a nightmare. It's much better today. It's not web programming that sucks, it's programming with others. I bet most people won't complain much if they got choose what tools they wanted and worked alone. When working with others, different ideas and opinion clash heavily. Programmers are not best known for their awesome communication and the lack of it leads to more mental strain than necessary.
The reality is that one can drive the frontend with 100% javascript no frameworks, html, css, keep things simple avoid the framework nightmare. Use typescript if the project is large enough. How come people are not doing this? Because they are not putting in the time to learn the language, it's all about learning framework. I see the same in backends, people who know rails but not ruby, laravel but not not enough php, android framework but not enough java. This is the problem.
I maintain a web-application by myself: I choose the platform and exactly which bits I wrote myself, and whre I pulled things in from other sources.
It still sucks. The target environment is undefined. In most programming problems we start with with a well defined target environment (or at least the language semantics are well defined and we quickly learn where the platform-specific hacks are).
In web programming each of the browsers is slightly different in about a hundred different ways. The main goal of using the web (presenting a platform independent UI without needing to download native code) is not entirely achievable. Instead, each year we apply slightly different hacks to go around in circles.
> In web programming each of the browsers is slightly different in about a hundred different way
Is this actually true? There are stable, well-tested shims for just about everything out there. CSS strikes me as the only tricky bit, but generally if IE8 users don't get to see an animation I don't really care.
Something largely only possible in hobby projects unfortunately.
On hobby projects I support only standards. Your browser not to spec? Not my problem. Well, it would be my problem, due to less traffic from people with broken browsers, but I don't monetize or track my traffic.
Professionally, I'm over here supporting IE8 and Safari 5 (the last version available to Windows) still. Next year we'll finally be dropping IE (all versions) so only a few more months to go.
Unfortunately if something is broken in Chrome or Firefox - I get to fix it. Then when the browser finally fixes it - I get to go fix it by removing the old fix which now breaks things. Really unproductive but I can't argue against it.
"it's not web programming that sucks, it's programming with others."
Most non-trivial systems require several contributors. 'Professional' means among other things being able to work with others.
"When working with others, different ideas and opinion clash heavily."
Sounds like herding cats. Any complex system should have a technical lead/architect who actually has the authority to say which technologies will be used. It does not mean he shouldn't discuss this with others - but the fact that there is one authority in the end simplifies things.
... and this is the problem. when you are using a library from github, you are programming with others. when they break those libraries, they are breaking your application, any bug in it creeps into your application, if the interface is poorly designed, your code will be hackish to get around it, if it's a pain to setup and configure, you have to deal with it. most programmers today are programming with others, and there's no technical lead. you grab 5 different packages, they all have different styles. In the javascript world people sometimes end up with libraries clashing over each other. This is what I mean by programming with others. :) There is no one authority in the internet. We got that with Linux, OpenBSD, Python, and Ruby and people cry so much about those "dictators"
How can programming with others be the reason, if the OP is saying they find programming for the web with others is much harder than applications development with others?
You cannot assume that the others with web programming is the same others with application programming. The result of one doesn't have to match the other.
Okay, but then how can an observer uninformed on the composition and dynamics of either group conclude that's the real reason it sucks? Unless they're slandering web developers but didn't make that clear?
it was a nightmare (because of the browser support), but it was a nightmare with a hope that it will get fixed (browsers will get better, there will be simple thin abstraction libraries added, etc).
I haven't used those much, just glanced over a system written in them. But that sounds bizarre: I thought the whole point of PHP was to be bland and mainstream. If you know how to program at all, then what is there to learn about it?
I didn't mean that as a criticism. These are all good choices for the role that PHP was intended to play, being the language that everyone writes 10 lines of for their personal website.
The reality is that one can drive the frontend with 100% javascript no frameworks, html, css, keep things simple avoid the framework nightmare. Use typescript if the project is large enough. How come people are not doing this? Because they are not putting in the time to learn the language, it's all about learning framework. I see the same in backends, people who know rails but not ruby, laravel but not not enough php, android framework but not enough java. This is the problem.