this post was submitted on 28 Aug 2023
172 points (86.1% liked)
Programmer Humor
32373 readers
197 users here now
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
The wheel is always being reinvented
Especially with frontend. Feels like every few years there’s a complete paradigm shift that forces everything to be rewritten from scratch.
Because web development sucks, web developers are always trying to reinvent web development such that it doesn't suck, and they keep failing.
They keep failing because it's impossible, and it's impossible because the requirements are directly contradictory.
And they keep failing because, quite frankly, they don't know how to succeed. Most web developers are not grizzled 50-year-olds with decades of experience and a solid understanding of things like type systems and build automation, and most grizzled 50-year-olds with decades of experience and a solid understanding of things like type systems and build automation want nothing to do with web development. Microsoft somehow managed to scrape together enough exceptional individuals to create TypeScript, but they seem to have exhausted the supply of such individuals.
Most web developers don't even seem to fully appreciate what TypeScript does and why it's important, let alone have the skill to write similarly sophisticated tools themselves. Consider, for example, Vite not running TypeScript type checking with every build. Vite's developers cite compilation speed as their motivation for cutting this corner. These people clearly do not understand the importance of correctness checking.
Another example: as far as I can tell, no web application build tools track dependencies between source files for incremental compilation, nor am I aware of any standard format for compilers (TypeScript, Sass, Babel, etc) to communicate that information to the build tools invoking them (Webpack, Vite, Grunt, etc).
Every once in a while there's a ray of hope, like TypeScript, but that's all it is: hope. The web developer experience has never been anywhere close to the caliber of developer experience you'll get with a language like Rust, and sadly I don't foresee that changing any time soon.
And no, htmx is not the answer to our prayers. It seeks to fix HTML, and HTML is not what's fundamentally broken.
Angular builds are incremental by default.
Why should that requirement hold for web development but not for any other kind of development?
Again, Angular makes an incremental build in about a second, maybe 5 for large applications. Compare this to Java, where even simple backends require 20–30 seconds of build time.
This makes no sense. Which is simpler – a function called
mergeObjects
from a library or a recursive function of 30–50 lines to do this without the library? Libraries’ whole purpose is making things simpler.Ever heard of just-in-time compilation?
TypeScript has minor-point releases about every 3–4 months. What makes you think it’s dying?
To conclude, because this post is long enough: Your comment is full of opinions, but little else.
Job security, baybeee 😎 /s
Centralise what's decentralised and decentralise what's Centralised and you'll look like a genius.
At my last company, there was a massive half-year project for the whole department to move all the microservices and all that stuff (multiple hundred projects) into a monorepo.
Then my team was transferred to another department. Here we had a massive, half-year project for the whole department, to pick apart a similarly-sized monorepo into separate microservice repos.