You can pattern match these concerns to "kids these days" all you wish. But there are these days. There are days when the kids are doing it worse; and to imagine their arent is foolish.
These are the days when your operating system is hostile to you, sells your data and injects adds into its basic operation. These are the days when the main distribution channel of software is HTTP with dynamic memory languages which require build systems to deploy. These are the days when people read a book and think themselves jnr engineers.
It is all well and good deploying your cynicism in this fashion, thinking yourself wise, but in the end your view is just another old wives tale. The tale of "the elder shouting at clouds" is just the tale of the eldar shouting at eldars shouting at clouds. If one analyses the world with such infantile aproximations, one will finds oneself likewise dumb.
You aren't engaging with the quite serious catastrophe that has become modern software development. It is hard to imagine software engineers of the 70s and 80s, though imperfect, doing with modern technology what we do with it.
The Linus Torvalds of the world, the jblows, the K&Rs, and so on -- are people born of a culture of ruthless simplicity. Award the 70s with the technology of today and it's a hard sell to suppose that group really invents React, the HTTP stack, and so on.
The inability to see this is the real naivity here. Cheap cynicism doesnt win you any point
Linus wrote the first draft of the Linux kernel as a college student in late 1991.
19-NINETY-1
Linux is 100% a product of the 90s and after, and is one of the biggest software quality success stories of all time. It has only improved since then.
Initial public release of PostgreSQL, the best open source database around today, was 1996. It has only improved since then.
The C spec was improved from C89 to C99. Implementations appeared for C89 in the 1990s, and both were notable improvements over original K&R.
First release of Python in 1991. Improving steadily since then.
The web browser is arguably the single most impressive app of all. Graphical layout and executable from network-loaded resources. It is THE killer app of the internet. As far as the average person in the world is concerned, if browsers disappeared, the world would stop. The security scrutiny browsers have received have exceeded ANY other pieces of software that have ever existed, and multiple browsers have been independently created.
Blender: 1994. Improving since then.
Games have never been more technically sophisticated, visually impressive, environmentally immersive, and narratively deep as they are today.
I do have a soft spot for Star Control II, but again that was released in 1992.
This isn't cynicism. This is an honest appraisal of my lived history of computing.
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.
These are the days when your operating system is hostile to you, sells your data and injects adds into its basic operation. These are the days when the main distribution channel of software is HTTP with dynamic memory languages which require build systems to deploy. These are the days when people read a book and think themselves jnr engineers.
It is all well and good deploying your cynicism in this fashion, thinking yourself wise, but in the end your view is just another old wives tale. The tale of "the elder shouting at clouds" is just the tale of the eldar shouting at eldars shouting at clouds. If one analyses the world with such infantile aproximations, one will finds oneself likewise dumb.
You aren't engaging with the quite serious catastrophe that has become modern software development. It is hard to imagine software engineers of the 70s and 80s, though imperfect, doing with modern technology what we do with it.
The Linus Torvalds of the world, the jblows, the K&Rs, and so on -- are people born of a culture of ruthless simplicity. Award the 70s with the technology of today and it's a hard sell to suppose that group really invents React, the HTTP stack, and so on.
The inability to see this is the real naivity here. Cheap cynicism doesnt win you any point