Again, I don't think you're making contact with jblow's point, nor the context of my reply. Nothing in what you've said he'd disagree with.
His claim isnt the obviously absurd idea that no good software is written today, or over the last 30 years. Such a position is trivial to refute.
His issue is the complexity of operating systems today, with too much emphasis on bad developer tooling (eg., GC+OO over just providing better memory handling tools), coupled with the internet as a means of app distribution, and in the influx of "below-jnr" level engineers has created a perfect storm of terrible software.
Something disguised by radical advances in hardware. When a modal popup in vscode steals my cursor focus when i'm in the middle of deleting a file (etc.) it's hard to disagree.
Everything is 10-100x more complex than it needs to be, and most developers are stacking plates higher and higher (eg., electron) on a terrible foundation.
This isnt a point that can be engaged with based on a superficial analysis or just a reductio ad absurd ("here are counter examples...").
How many developers write postgres, and how many write vscode? How much has been spent on the latter vs. the former? (and so on).
I giving Linus as an example of the earlier programming culture, jblow himself is alive today after all. The claim isnt that nothing of this culture survives -- it's that its power and influence has collapsed.
It started to collapse when hardware stopped disciplining programmers in the mid 90s.
The barriers to entry have dropped to the point of disappearing. It's why the industry is so vibrant.
"The odds are good, but the goods are odd."
The core group of CS & CE graduates are as good or better than their forebears. That hasn't changed. What has changed are the number of folks without CS & CE degrees entering the field.
You cite VS Code modals yet scoot over a huge truth: without Electron, Microsoft would never have invested as much into an IDE with consistent UI and feature set across Windows, MacOS, Linux, and more including both amd64 and ARM architectures.
You complain about an annoying modal without recognizing that without Electron, you wouldn't have the app! Or it at best would be Windows-only. Or perhaps a limited-features version for MacOS like their Office suite is.
Then of course there's the realization you can embed VS Code in a browser with essentially feature parity with a desktop install.
Electron paved the way for VS Code to be installed and run on a Chromebook. A Chromebook!
Do you get how amazing that all is? How the VS Code marketplace is filled to the brim with tools for every programming language and subsystem you want or need? Many are crap and many are solid gold.
There are undisciplined developers, sure. There are undisciplined plumbers, roofers, auto mechanics, electricians, medical doctors, CPAs, school teachers, and on and on.
I've met CS PhDs that couldn't code their way out of a paper bag outside of academia. I've met folks who haven't graduated high school do incredible feats of software engineering. And all points in between (which is where I have been in my career).
It's not collapsing. It's becoming normalized in our society. This is what that looks like.
You're explaining the decline, not arguing against it. That MS chose to invest vast amounts of time and money in typescript & vscode shows they could easily have done so on a fast native cross platform technology instead.
The network effects that the interent has created, around terrible technologies, explains the tactical choices made by each actor here to worsen the quality of software dramatically.
The issue is the net strategic loss in what choices were not made. Cross-platform games cost less than the investment made into VS Code -- and consider what valve has done for the steam deck.
Let's be clear: highly performant, reliable, cross platform, native feature-ful software was always an option; and often a relatively easy one to exercise.
The modern software culture made deliberate tactical decisions not to pursue that path. The idea that we should be amazed an IDE runs on a chromebook is frankly obscene.
We should be outraged that we live in a world where laptops can run x86 CPUs and not run arbitary x86 software. We should be outraged that there was ever a world in which a generic piece of hardware would arbitarily constrain generic software.
All this apologia of yours i think really exposes how far our expectations have fallen, and does nothing but show Mr. Blow to be on the money
> Let's be clear: highly performant, reliable, cross platform, native feature-ful software was always an option; and often a relatively easy one to exercise.
Okay. Got it. You have no idea what you're talking about. I challenge you to name these "relatively easy" cross-platform libraries and apps with feature parity.
No, seriously. List these UI libraries that seamlessly integrate with the target OS.
if you think they can't be named for engineering reasons, then err, i dont know what to tell you.
How many games run on xbox, playstation, pc, windows, mac, etc. that include an entire UI library with native font rendering, events, buttons, windows, etc. -- lots ! Indeed, with multiplay, online updates, networking...
This is not an engineering challenge, indeed, their absence given electron/vscode/etal. is the sign of how bad things have got.
The engineering "talent" at Microsoft now consists of teams of script kiddies building javascript UIs on top of javascript UIs with teams smaller than, say, No Man's Sky and achieving much less.
The situation is, really, that bad.
Apple brought iOS apps to MacOS with relatively little effort; steam likewise via proton did a great amount more in brining entire non-linux game libraries to linux.
Making a stupid cross-platform UI library is absolutely trivial compared to either. Many game devs do it for every game they make. Yet companies like MS, indeed most software companies, don't have enough talent available or the incentives to do it.
> How many games run on xbox, playstation, pc, windows, mac, etc. that include an entire UI library with native font rendering, events, buttons, windows, etc.
And each required a non-trivial amount of engineering effort AND are not common libraries between game vendors. A lot of duplicated effort. In addition, they may look the same but there are A LOT of platform-specific differences that must be maintained separately.
> Apple brought iOS apps to MacOS with relatively little effort
Because they spent literally decades bringing their dev tools and libraries in sync with one another. You're highlighting the last lap of a marathon. It should be noted that it only applied to a single platform, Apple's. There was absolutely no cross-pollination with non-Apple targets.
> steam likewise via proton did a great amount more in brining entire non-linux game libraries to linux.
Again, the last lap of a marathon, building on decades of Wine work before it. And even then, there are huge swaths of games that have not been ported.
> Making a stupid cross-platform UI library is absolutely trivial
Yes, Java AWT was one example. Java AWT/Spring was yet another. wxWidgets, Qt, and others as well. Only a minority of devs use these because they are either a pain in the ass to use, have uncanny valley aspects when deployed, or just plain don't look good outside of a Linux environment (where almost everything looks like crap by default).
Have YOU actually used and shipped a cross-platform app with a GUI? Do you have personal experience in this area, or are you talking about theoreticals and trade magazine articles. Because I have. It's a royal pain in the ass. Electron was far easier to deal with though bloated and slow as it is.
It's why Tauri is so attractive to me now. Far fewer resources while still maintaining a common, familiar cross-platform API.
His claim isnt the obviously absurd idea that no good software is written today, or over the last 30 years. Such a position is trivial to refute.
His issue is the complexity of operating systems today, with too much emphasis on bad developer tooling (eg., GC+OO over just providing better memory handling tools), coupled with the internet as a means of app distribution, and in the influx of "below-jnr" level engineers has created a perfect storm of terrible software.
Something disguised by radical advances in hardware. When a modal popup in vscode steals my cursor focus when i'm in the middle of deleting a file (etc.) it's hard to disagree.
Everything is 10-100x more complex than it needs to be, and most developers are stacking plates higher and higher (eg., electron) on a terrible foundation.
This isnt a point that can be engaged with based on a superficial analysis or just a reductio ad absurd ("here are counter examples...").
How many developers write postgres, and how many write vscode? How much has been spent on the latter vs. the former? (and so on).
I giving Linus as an example of the earlier programming culture, jblow himself is alive today after all. The claim isnt that nothing of this culture survives -- it's that its power and influence has collapsed.
It started to collapse when hardware stopped disciplining programmers in the mid 90s.