> Programming is no longer a community. It's a competition.
Programming is no longer an engineering job. It's no longer a form of art. It's this race to the bottom where you have to mindlessly glue together as many libraries as it would take to write as little of your own code as possible, treating said libraries as black boxes.
This is so cynical, yeah plenty of people have jobs that look like this, but if you look hard enough, there are tons of corners of the internet where people (communities!) are doing weird and fun things with code.
I think this is a great misunderstanding. One of the greatest contributions from Unix is the idea of programs that act as composable building blocks. You shouldn't need to reinvent every wheel to get your job done.
I mean, operating systems are remarkable pieces of engineering. Mostly. But that's not what I'm talking about.
I'm talking about those cases when people pile 5 layers of abstraction just so they don't have to learn something, but get done with the job a little bit quicker. They don't try to understand neither the inner workings of these layers nor the CPU/memory/storage cost. If it means you write fewer code, it goes into your project. Thus you end up with "desktop apps" that are websites, with all the amazements (/s) of the modern web development, packaged with an insanely complex thing that a web browser is — just so the bullshit unrealistic "business requirements" are met. Or laggy, bloated mobile apps that get updated every week with no discernible changes. These just scream that the people behind them have no clue what they're doing.
> These just scream that the people behind them have no clue what they're doing.
Or maybe they know exactly what they are doing, but what they are doing isn't what you think they are doing. I'm pretty sure nobody at Slack regrets using electron.
> Or maybe they know exactly what they are doing, but what they are doing isn't what you think they are doing.
They're fixing bugs in an app that is 10 screens of lists. How does someone who knows what they're doing make this many bugs this subtle in such an app? I have no idea.
> I'm pretty sure nobody at Slack regrets using electron.
I'm pretty sure nobody at Slack cares. They do whatever their managers tell them to.
I always imagine people like this in a situation like: what if a business need comes across for a desktop, a website, mobile apps, fully responsive, theme-able, animated.
You have 1 week.
I'm not big on web technology du jour so despite my years of experience not sure I can... but I bet you a random bootcamp graduate who couldn't tell you what a TCP packet is could do it!
And there's the fact they don't know how TCP works and their solution takes 100x the RAM to do a simple task than a native app apparently isn't stopping similar apps from doing X million AAR...
It's hyperbole, but in the opposite way of "it's just 10 lists".
These programs you see don't exist in a vacuum. The requirements you see before your eyes are the tip of the iceberg.
It's so weird to see everyone think of everything in terms of money, everything being done in the name of it.
> what if a business need comes across for a desktop, a website, mobile apps, fully responsive, theme-able, animated.
What if someone wants a baby in a month? It doesn't work like that. No matter how hard you try, it takes 9 months. It's the same with quality software. These arbitrary unrealistic deadlines help nothing.
I'm dying of laughter because this is exactly the reply I would expect from someone of the school of thought I was representing.
But I'm sorry, that's a thing! People ask for a baby in a month, get a baby in a month, sure the baby is not great, but it gets them pretty far. Not everyone has the luxury to say no and walk away. Honestly I find that kind of weird gatekeeping in our profession kind of sad.
-
The people who "only know how to slap together components" are starting somewhere. I was privileged enough to have access to technology from a young age and tinker to my hearts content so I ended up with a deeper understanding of things. But there are people who started from nothing, didn't have the opportunity to even tinker had they had the access, they were working on moving forward in life.
Now our field has been democratized to the point people don't need to have had those opportunities to do amazing things, we act like that they do is somehow lesser, even though once we swallow our pride, at the end of the day people don't care that much.
People notice their apps crash, people complain things are slow. But when the chips are on the table, they deal with it very well. The web has gotten slower and slower, and it's usage has gone up and up. The apps have gotten buggier and buggier and the amount of utility they provide has never been higher.
-
Also I thought about pointing out the context is for-profit apps here when talking about people rushing to ship hastily slapped together legos but figured anyone having this conversation would realize that.
In that context money is everything. No point in shipping a formally verified native app if a competitor takes the entire market with their 1 month baby and no one uses it. (and yes sure you can point out the academic satisfaction of it... but academic satisfaction isn't going to pay a mortgage or feed your kids)
I don't write software that is used by the masses, so I have the luxury of not needing maximum compatibility. If it works on the machines the company needs, then it's good enough. I get that some of the heavy weight libraries offer not only the speed of immediate working availability with "battle" tested compatibility (thinking web/javascript libraries specifically). However, I like learning. I like understanding why things work, or more importantly why something didn't work. If that means I have to re-learn something others already know, then so be it (that's what learning is).
APIs codify the concept of "Standing on the shoulders of giants", but substitute "giants" for "$X". The social consequences of that substitution are still being worked out today.
Programming is no longer an engineering job. It's no longer a form of art. It's this race to the bottom where you have to mindlessly glue together as many libraries as it would take to write as little of your own code as possible, treating said libraries as black boxes.