Bullshit Has Dominated the Tech Industry
medium.com
medium.com
"In the article Software Disenchantment, author Nikita Prokopov exposes how bad software has become commonplace in our daily lives [35]. From programs that get incredibly bigger and slower with each new version, offering little or nothing more in return, to the fact that they get worse as they are used, to the most complete chaos that is the software development process.
For example, when creating an empty (!) project in npm for web development more than 50,000 files are downloaded, taking about 350 MB. This house of cards is so fragile that it gives rise to situations that are, to say the least, embarrassing. In 2016, an npm library called Left-pad, downloaded about 2 million times a month, was removed from the repository by its author, resulting in many web projects around the world crashing, including large corporations, forcing npm to revert the deletion [36]. The library, which contained 10 trivial lines, could be implemented in a few minutes even by programming students."
Some, but not all, developers get defensive when the issue of "bloat" is raised.
It would solve a lot of what I see as the problems of modern software. For so many years, people have pursued the false vision of a programming environment where resources can be assumed to be infinite.
The problem is, no matter how much memory you have, if you take a data structure that reasonably fits in your vast amount of memory, and then you inadvertently multiply its size, you won't have space.
Or to put it another way, all finite numbers are infinitely smaller than infinity, so the delusion that any finite number is equivalent to infinity will always bring people to grief.
Could someone please write a manifesto along the lines of "malloc considered harmful"? Just. Say. No.
Yeah you could arena allocate and do some nonstandard techniques like that, but basically you are at the mercy of a garbage collector, and those LOVE to use memory.
So... use C++? use Rust? As you point out, malloc and the heap are kinda the same problem as GC.
Personally, some "runs on 1Ghz and 256MB of RAM" would probably be the most real world effective way to advertise some degree of restraint.
We can't keep wasting processing power, the "laws" are running out of steam. MHz/Ghz is stalled for a decade, and the die shrinks are going to start running out of steam as well.
I can't think the coming AI coding blast will help things either.
We also lack stability and sharing in the runtime libraries (and containers are NOT helping this, they just load all their own mini-OSes for each application), and efficient means of extracting only the necessary routines from big libraries in build processes.
It’s not the GC that uses memory, it’s your program. Compare the memory use of Python with that of C++ in these benchmarks:
https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
Or OCaml and C++ here:
https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
I'm just saying that everything should be written to take what you give it and like it. If you do that, it doesn't matter how much memory there is, or if there is a GC or not - you have none of the problems of unpredictable resource usage.
I don't think (although I haven't been in school over a decade) most people come out of college with an experience of writing small programs to process everything in chunks. It's so...impure. I didn't have the experience of being taught in Scheme or something, but I can imagine.
Even better, cache-oblivious data structures & algorithms avoid the needing for picking/knowing X, and will essentially auto-adjust to near-optimal regardless of the cache size or pressure.
As an example the tab handling is a mess - eg. you can't configure tabs where title updates using escape codes is blocked and the close "x" is removed even though the settings are there - the tab title just reverts to the profile name.
I suspect it would have been fine if they actually designed all the features from the start vs grafting things on ad-hoc.
They literally never tested Notepad with large text files! It can take a minute to open a file that every other text editor on Windows opens instantly. It misaligns tabs and four spaces by one or two pixels, which means they utterly failed to render using a fixed width font in a way I have never seen before.
This minimalist text editor takes over a second to launch from an SSD that can read a 4K movie end-to-end in the same time.
It’s just a staggering level of incompetence.
[1] Their excuses were mostly that they couldn’t even look at his code, lest their minds be infected somehow and be in violation of copyright. Meanwhile Casey uploaded it as open source and they could have at least listened to his videos with their eyes closed. Instead they elected to stick their fingers in their ears and yell “La-la-la can’t hear you!”. Clearly I’m exaggerating for effect, but not much.
The correct solution can be thrown together in a couple of weekends, it's not something that has to be imported into the Windows Terminal codebase as-is.
Exhibit b) Microsoft is a top-5 contributor to Linux: https://www.zdnet.com/article/top-five-linux-contributor-mic...
The Terminal team could have simply asked a Microsoft Linux team member to watch the videos, and then explain the gist of the algorithm without ever referencing any specific code.
Algorithms can only be patented, not copyrighted, and any IP lawyer would tell you that.
Not to mention that Casey's code is dead obvious, totally standard, done-this-way-for-decades, not some sort of exotic thing he invented. Heck, I've personally implemented something nearly identical back in 2000, and I'm pretty sure every game engine console (as seen in Source games) works nearly identically also.
It's so simple that a one or two sentence description is sufficient. Nobody is suggesting that Microsoft copy-paste reams of GPL code. Instead, Microsoft is refusing to listen to a single sentence of good advice, and stubbornly forging ahead with a demonstrably stupid solution.
What is this in reference to? Running `npm init` just creates a package.json file
A lot of the projects that person is talking about ended up being pretty good a year after their launch: Cyberpunk 2077 is a pretty good open world game (if not the messiah some people got hyped for), Apple Maps is not bad these days (especially in California), the iPhone 4 is now considered pretty revolutionary, hell even Windows Vista was not that bad after all the patches!
Right. His point was that these things are being released before they're fully baked. That's a problem, and one that is much more common now.
I agree the game (story, concept, mechanics) was good, but the bugs were real bad.
But also, in many cases people are happy to have the opportunity to support a product before it is completed. Steam Early Access, etc.
Also, I'm sure they are, which is why lots of companies will provide an optional beta version of their software that people can use. But there's a big difference between having the opportunity to use beta software because you want to try it, and having the opportunity to be forced into running a beta and being QA.
His larger point seems to be that we are relying on increasingly complex systems that may become unmaintainable. Its the great tech circle of life.
Unfortunately, I don't see a solution to it anytime soon, short of everything just falling apart.
IMO these types of failures are simply a percentage of the overall tech, and the reason they seem prominent is because there is just a huge race in tech over the past decade.
If you actually want to fix it and reduce that percentage, push to replace engineers with computers. A lot of engineering problems are search problems. Computers are better at search than humans.
We have moved to products just being "good enough".
An example is telco equipment, phones always just worked in the past, you would never expect an outage. Ask most people who had office or home phones up until the 90s and most would say they never had a single instance of their phone not working.
Then we went to Voip, and now soft phones like MS teams, and reliability is shit.
Its embarrassing that products like MS teams require multiple retry attempts each week just to make a simple phone call.
> We are allowing too much power to be concentrated in the hands of a few people, whose ultimate goal is this relentless pursuit of money, not a human project for society.
Swap "power" and "money" and I agree.
> We are allowing too much MONEY to be concentrated in the hands of a few people, whose ultimate goal is this relentless pursuit of POWER
First step, stop giving them your money. 2nd, take away what they've illegally or otherwise ill gotten.
money==power.
I would say it is the majority of cases that people who lose power retain their wealth. Violent ends to power is exceedingly rare comparatively.
I don't see why this should be true. If money=power, surely that has nothing to do with whether you can lose it or not? Generally, when you have something, you can lose it sometimes, no?
They did fix it with later versions of the iPhone 4 and with the iPhone 4S. Also, I remember that they made the "bumper" cases to alleviate the issue with the antenna: https://apple.fandom.com/wiki/IPhone_4_Bumper
It was never a question if you needed a case, but if you could find one that wasn't ridiculous. For any phone there were maybe 3 manufacturers I liked, and they kept changing every few years.
With how long this piece is I honestly feel bad for the author for wasting so much time on the endeavor.
What purpose does an article that’s essentially a gigantic list of every recent corporate scandal serve?
On top of that, toss in the tech geezer’s “back in my day page load sizes were small and now everything is bloated” take we’ve all heard a thousand times. Like, holy shit please stop my phone has a 100Mpbs+ cellular connection, 8GB of RAM, and 512GB of storage I don’t care that websites are 7MB.
There’s nothing actionable about this monstrosity and all it can do is make you upset over a bunch of random shit you can’t control.
Meanwhile vendor products from early 2000s loaded their web interfaces instantly. And they had more functionality.
“And they had more functionality” lmfao which cloud provider had more functionality in 2000? Which cloud provider existed in 2000?
Funny joke though I’m dying over here.
Hold up I gotta go install Macromedia, Java, RealPlayer, and enable ActiveX.
Personally I think it comes down to an over-financialized economy. Raising taxes on corporations and individuals while providing loopholes in the form of writeoffs for re-investing profits in R & D and manufacturing facility upgrades etc. is one obvious solution.
The problem crosses multiple domains, not just "Tech."
Basically we have reach a point as a civilization where failure and ineptitude are increasingly not penalized.
As the article mentions, the emergence of quasi-monopolies constrains decisions at all levels in service of further maximizing financial gains. The 99.9% are mere pawns in this game.
Monopolies are the norm, I believe. The 20th century in the United States (from the Sherman antitrust act, 1890, to the changes in the Reagan era, 1984ish) is an exceptional period.
To mention what good software without bloatware looks like, go checkout https://nirsoft.net website. Small size and absolutely wonderfully working tools made by single dev. Its epitome of craftmanship.
PS: Also System internals tool made by Mark Russinovich
https://en.wikipedia.org/wiki/On_Bullshit
But I think the author really just means software failures. The truth is that we make software to just barely work, knowing we can fix it later. But apparently the author somehow hasn't been exposed to software ever.
Further, I think the author is angry and knows something isn't right in the world and is railing on the software industry. I think (hope) that's misplaced anger, but the author is probably right to be angry about . . . something.
But I think some of the bullshit is superfluous features that do nto do anything or seem redundant. Why is there a warning if you try to turn the volume up too loud on windows? So annoying. Or McAfee being preinstalled and then annoying popups (bloatware). In that sense, I agree with the author.
Some of this can be explained by employer sponsored healthcare and other benefits for employees. Also, employees can capture this divergence by investing wages in index funds like the S&P 500. The divergence, which began in the early 80s, also tracks the start of the huge bull market. Profits that would go to employees are instead reflected in rapidly appreciating share prices and dividends. A lot more people today have IRAs compared to 40 years ago, representing significant wealth .
I don't see how. Those things aren't new, and aren't better than they used to be. Their impact applies to before "the divergence" at least as much as it applies now.
From Wikipedia: Federal Reserve data indicates that as of Q4 2021, the top 1% of households in the United States held 32.3% of the country's wealth, while the bottom 50% held 2.6%.
I don't think 1% of people holding 32% of the wealth is that surprising or exceptional. A lot of people are in the bottom 50% because they don't save any money at all. I think these stats give people the idea that if you were to somehow take all the wealth from the top 1% and give it to the bottom 50% that this would vastly improve their situation, when in reality it wouldn't make much of a difference and would fuck up economic incentive structures.
Really? Releasing a multi-year software project worked on by many, many people that was buggy but still more or less served its purpose is someone's idea of capitalism teetering on the precipice? If we truly believe "bad results for consumers" means capitalism itself is reaching its end stages, an earlier stage of capitalism featured people just brazenly selling pills with tapeworm eggs as a weight loss supplement and no real regulatory apparatus equipped to stop that, so what was that? "Late-stage capitalism" is becoming one of those buzzwords that doesn't mean much of anything.
That is not a "more or less" serving it's purpose.
That being said I also think platform mattered a lot. I played on PS4Pro fwiw
I assume the author is talking about the US.
Genuine question: How does the software industry look in more non-capitalist countries? Is it flourishing without these issues. I bet their equivalent of Apple Maps was perfect on first release!
The software industry has issues but I am sure the author has a causal link from capitalism to these issues coming up in a second edition of this post that is thoruoughly researched!
(Edit: any snark is accidental!)
What a shame.
Of the 100 largest tech companies, 62 are from the US. Next-highest China has 9. [0] Where's all the great software developed by non-capitalist economies?
[0] https://companiesmarketcap.com/tech/largest-tech-companies-b...
Should the industry be perfect?
Modern socialists have clearly studied history, but how are they able to interpret it like this?
Consider as capitalism grows in complexity the grasp of the invisible hand grows weaker until it loses its grip.
Does the world really need a new iPhone every year when people can hardly afford rent?
Does making monopoly aspiring app for dog walking (Wag) to enrich a few sophomoric founders or defraud a few more gullible investors really constitute efficient rationing of scarce resources?
What if we are an the last stages of a faltering system?