'It Just Seems That Nobody is Interested in Building Quality, Fast, Efficient, Lasting, Foundational Stuff Anymore' (tonsky.me)
Nikita Prokopov, a software programmer and author of Fira Code, a popular programming font, AnyBar, a universal status indicator, and some open-source Clojure libraries, writes: Remember times when an OS, apps and all your data fit on a floppy? Your desktop todo app is probably written in Electron and thus has userland driver for Xbox 360 controller in it, can render 3d graphics and play audio and take photos with your web camera. A simple text chat is notorious for its load speed and memory consumption. Yes, you really have to count Slack in as a resource-heavy application. I mean, chatroom and barebones text editor, those are supposed to be two of the less demanding apps in the whole world. Welcome to 2018.
At least it works, you might say. Well, bigger doesn't imply better. Bigger means someone has lost control. Bigger means we don't know what's going on. Bigger means complexity tax, performance tax, reliability tax. This is not the norm and should not become the norm. Overweight apps should mean a red flag. They should mean run away scared. 16Gb Android phone was perfectly fine 3 years ago. Today with Android 8.1 it's barely usable because each app has become at least twice as big for no apparent reason. There are no additional functions. They are not faster or more optimized. They don't look different. They just...grow?
iPhone 4s was released with iOS 5, but can barely run iOS 9. And it's not because iOS 9 is that much superior -- it's basically the same. But their new hardware is faster, so they made software slower. Don't worry -- you got exciting new capabilities like...running the same apps with the same speed! I dunno. [...] Nobody understands anything at this point. Neither they want to. We just throw barely baked shit out there, hope for the best and call it "startup wisdom." Web pages ask you to refresh if anything goes wrong. Who has time to figure out what happened? Any web app produces a constant stream of "random" JS errors in the wild, even on compatible browsers.
[...] It just seems that nobody is interested in building quality, fast, efficient, lasting, foundational stuff anymore. Even when efficient solutions have been known for ages, we still struggle with the same problems: package management, build systems, compilers, language design, IDEs. Build systems are inherently unreliable and periodically require full clean, even though all info for invalidation is there. Nothing stops us from making build process reliable, predictable and 100% reproducible. Just nobody thinks it's important. NPM has stayed in "sometimes works" state for years.
At least it works, you might say. Well, bigger doesn't imply better. Bigger means someone has lost control. Bigger means we don't know what's going on. Bigger means complexity tax, performance tax, reliability tax. This is not the norm and should not become the norm. Overweight apps should mean a red flag. They should mean run away scared. 16Gb Android phone was perfectly fine 3 years ago. Today with Android 8.1 it's barely usable because each app has become at least twice as big for no apparent reason. There are no additional functions. They are not faster or more optimized. They don't look different. They just...grow?
iPhone 4s was released with iOS 5, but can barely run iOS 9. And it's not because iOS 9 is that much superior -- it's basically the same. But their new hardware is faster, so they made software slower. Don't worry -- you got exciting new capabilities like...running the same apps with the same speed! I dunno. [...] Nobody understands anything at this point. Neither they want to. We just throw barely baked shit out there, hope for the best and call it "startup wisdom." Web pages ask you to refresh if anything goes wrong. Who has time to figure out what happened? Any web app produces a constant stream of "random" JS errors in the wild, even on compatible browsers.
[...] It just seems that nobody is interested in building quality, fast, efficient, lasting, foundational stuff anymore. Even when efficient solutions have been known for ages, we still struggle with the same problems: package management, build systems, compilers, language design, IDEs. Build systems are inherently unreliable and periodically require full clean, even though all info for invalidation is there. Nothing stops us from making build process reliable, predictable and 100% reproducible. Just nobody thinks it's important. NPM has stayed in "sometimes works" state for years.
We've been trained to be a consuming society of disposable goods. The latest and greatest feature will always be more important than something that is reliable and durable for the long haul.
Nobody has a clue anymore whether they're building on a poured concrete foundation or a bag of cats.
When the speed of your processor doubles every two year along with a concurrent doubling of RAM and disk space, then you can get away with bloatware.
Since Moore's law appears to have stalled since at least five years ago, it will be interesting to see if we start to see algorithm research or code optimization techniques coming to the fore again.
Perpetual growth also means selling more than last time, and the only way to do that is to make people want your new stuff. This is possible only in two ways: First, your new stuff is so much better than the old one that people WANT it, or second, the old one is already broken so people have to buy it.
Since inventing new stuff that people want badly enough to drop another wad of dough for it even though the old one's still working is hard but making stuff that breaks easily is easy...
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Every now and then Apple does take a step back and work towards making things smaller and faster instead of just newer.
iOS 12 spent a lot of time on just that, especially on making sure the latest software was actually making the oldest devices faster, Reports were the execs were all carrying around iPhone 6 and 6s units for the last few weeks making sure they felt usable.
Similarly OSX has improved in the same way this year, being faster on older hardware - finding my 2010 MacBook Pro still well supported.
I think as developers one thing we can all do to help reverse this trend is to simply be very, very careful about inclusion of third party libraries. That's where a lot of the bloat comes in, you add a few libraries and maybe it has a few dependencies and after a short time you are building in 20-30 subprojetts. Madness.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Unix solved most of the problems associated with an operating system. It's just that most folks don't take the time to learn their history or look at existing solutions. Instead NIH and "I can do it better" syndrome are the rule. I see this constantly on /. and elsewhere. Folks acting like very old technology is brand new, or acting like something that was invented yesterday isn't a blatant copy of previous tech. Even Window is still trying to catch up to technology that's been in various Unix variants for 20+ years. Unix is the way and the light. Specifically, I think the BSD's have the right mindset. As a nice bonus, the non-graphical installation runs off all the Ubuntites. Yay!
Not only do we write document scan and OCR software (ExactScan, OCRKit, Recompres, etc.) that fits on a couple of floppies (well ExactScan non Pro would fit on two 1.44MB I guess), without hundreds of imported dependecies and such: https://exactcode.com/ – On my new youtube channel I recently showed how to program hardware accelerated 3d in a couple of hundred lines of code! Enjoy: https://www.youtube.com/watch?...
Support your state's Right to Repair bill! Part of the reason "everything sucks now" is that we let these fuckers sell us crap that only they can fix.
I assert that Agile is antithetical for this kind of work. It's critical that infrastructure be built to completion (in both functionality and quality). A lot of infrastructure doesn't lend itself to "requirements on 3x5 cards" For example, how would you handle "consistent concurrent updates" in a distributed system? That's an architectural/key design issue that has substantial repercussions throughout a distributed system.
I've worked on several projects producing on reliable software infrastructure. One was all new code, most others included a lot of COTS. Each had a substantial effort to capture 'architecture' and 'requirements,' including establishing what "100%" looked like so we could track progress to completion, and so the users/customers of of the infrastructure had an idea what features and capabilities they could depend on.
DevOps might work, -if- there's a substantial investment in up front architecture, design, and build planning.
(My sense of "architecture" here includes non-functional considerations, deployment issues, and even identifying human contributions to the system, i.e. how the infrastructure will be configured and maintained.)
Letter Perfect for the Atari 800 was an 8K ROM cartridge.
Image: http://www.atarimania.com/utility-atari-400-800-xl-xe-letter-perfect_13691.html
Documentation (100 page PDF): http://www.atarimania.com/8bit/files/letter_perfect.pdf
Remember times when an OS, apps and all your data fit on a floppy?
Sure do. I also remember that it did close to fuck all in the way of useful tasks compared to the devices I have right now. Is there a point to this nostalgia over what now is primitive technology? If your OS fits on a single disk it is either a VERY narrowly focused device that doesn't do much else or it is a very primitive system that cannot do much. Just because something isn't coded in hand written assembler doesn't mean it is bad.
iPhone 4s was released with iOS 5, but can barely run iOS 9. And it's not because iOS 9 is that much superior -- it's basically the same. But their new hardware is faster, so they made software slower.
No they made it DO MORE. It didn't get slower out of incompetence or laziness. (well mostly anyway...) It is a more complicated system that does tasks that weren't previously possible with the older hardware. It's NOT "basically the same" if you really look at it carefully. A lot of new technology has been added which comes at a cost. You could run the old system on the new hardware and it would run faster but do fewer useful things. Pick your poison. I remember running the same DOS system that ran on my 286 on a 486 and it was a whole lot faster but it didn't really take full advantage of that extra speed for most tasks. The code was written the way it was because of the hardware limitations of the day. No different than today.
It just seems that nobody is interested in building quality, fast, efficient, lasting, foundational stuff anymore.
This statement presumes A) that software in the past was all those things (it wasn't) and that B) that the meaning of all those things is clear (it isn't). Define "quality". Define "fast". Define "efficient". And under what context are we talking? That statement makes for a good sound bite but it's as vague as an astrology reading if you really think about it.
very wrong, applications now are built on many bloated layers such that no can understand or secure it.
The massive security holes constantly being found prove it, and the vast majority of those are due to the same mistakes self-confident high IQ morons keep making.
The amount code it takes to do actually a job is much smaller than the size of code we have nowadays, by a factor of at least 10.
it is not "natural", it is laziness, arrogance and ignorance. Each and every security and bug flaw is the fault of that idiotic mindset.
The customer has no choice in the matter. The people that make the decisions and hire/fire are the ones that do. Lets take a look at a typical DevOps or NoOps shop:
1: The devs are mainly junior to intermediate level. Senior devs get the axe because they cost too much.
2: What matters is getting deliverables that marketing has already sold to a customer.
3: The devs are asked each day about said deliverables in the Scrum stand-up meeting.
4: If the devs don't cough that deliverable up -yesterday-, they get replaced by someone else who can.
In this environment, technological debt is someone else's problem. All that matters is getting stuff working and the code artifacts into production. Security, or readability? That's other people's problems.
This is the modern company. The days of people writing code in assembly to get everything to work perfectly and still have room on a floppy disk are over.
Blame the bad top brass, who short their stock before a security breach is announced so they can swing a new yacht, and who can't hear anything over their own ego. That is where the fault resides.
Actually back in those days people did a lot of typing for a living preferred WordPerfect over Word. WP had some nice features like "show codes" if your formatting was fubar you could see what was causing it.
Only the State obtains its revenue by coercion. - Murray Rothbard
I used to be with 'it', but then they changed what 'it' was. Now what I'm with isn't 'it' anymore and what's 'it' seems weird and scary. It'll happen to you!
also:
The children now love luxury. They have bad manners, contempt for authority; they show disrespect for elders and love chatter in place of exercise.[1]
the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff
The Kuhn Rikon Swiss Peeler. Go into any high-end restaurant kitchen, and there's a good chance you'll find a couple of these marvels. You, the home cook, can own this wonder too, but it will set you back: $4.49.
Now go into a home kitchen supply store and you'll find peeling gizmos costing four or five times as much that don't work as well. Somebody once gave me a Wustof peeler that costs over $50, and you know what? It's just as good as the Rikon at over 10x the price. It's pretty to look at, and nicer to hold, but it doesn't get your spuds naked any faster.
So why do people shell out $20,$30, even $50 for a vegetable peeler if the best peeler in the world? Because of what I call the "SUV theory of marketing": people equate heavyweight with quality, not design, performance or durability.
Office automation software hit Rikon Swiss levels of quality twenty years ago. It's possible that iOS hit Rikon Swiss levels of quality around five years ago, with support for the A7 secure enclave. After you get to a certain point, the only way to add to perceived quality is to do stuff that adds weight. Looking at iOS releases, it's probably fair to say that there have been some genuine functional improvements since iOS 7, in areas like multitasking and battery life. A lot of changes are superficial stylistic ones that dont' really matter. In some ways the operating system has found new ways to be intrusive on your attention. Those superficial changes are all excess weight added to create the perception of quality.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
The headline can be rephrased as "it seems that nobody is interested in building expensive stuff".
Doing things better costs money, and in that case, their customers are not ready to pay for it. Consumers pay for what they see: features, a nice GUI, etc... they don't look under the hood as long as it runs. So developers spend money on features and nice design, and do the minimum to make sure it runs well enough for most people. They get better return on investment like this.
As a consulting software developer, I would (very gently and not in these exact words) tell clients they could have it good, fast, or cheap, pick two. Invariably they would insist on all three, a logical impossibility. Once we got down to it, though, it was always "good" that turned out to be where they would accept the biggest hits. Just like in the movie, The Martian, the first place they would cut corners was in testing (followed rapidly by training). Business people would tell me about how getting the contract depended on us being willing to be "result oriented" which in their minds meant pretty much skipping analysis, requirements, and design. That doesn't just sound stupid, it is stupid, although they tried hard to make it sound reasonable. In my experience most people paying for software don't even understand the first thing about how it is created. Neither do a lot of people creating it. After a few highly successful projects that boosted my rep, I only ever got assigned to ones that were on fire, late, and generally had gotten a few previous project managers fired. In none of those was I ever able to find anything to convince me they hadn't pretty much skipped the requirements phase altogether and just gone straight to coding (no one could ever produce even the most basic list of initial requirements). Another problem is the ephemeral nature of most software. Let's face it, software is here today and gone tomorrow for most things (a very few highly revered games might be the exception). My grandfather was an architect and builder. When I was little he would take me around and proudly show me neighborhoods full of high quality expensive homes he had designed and built when he was a young man, as well as office buildings and even a church. I'll never take my grandkids out on the internet and various corporate intranets and show them some of my great coding projects. Even if that was possible, most of them are already gone and my grandkids haven't even been born yet.
at least in America. It's not just because they're short sighted, see here or read up some more via google
This is also why 99 cent stores are a harbinger of doom for an economy. They make most of their money selling essentials (toothpaste, soap, toilet paper, etc) in reduced sizes at very high markups to poor people who only have a few dollars left after paying their bills. Me? I buy that stuff at a warehouse store and it saves me about $100 bucks a year vs a grocery store and closer to $300 vs a 99 cent store.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
living paycheck to paycheck.
There's no middle tier because the middle class has been hollowed out and, well, the middle tier was for them. By "middle class" I don't mean the numeric definition but the more generalized one of a class that has a significant amount of discretionary income.
One thing that's important to realize is that the notion that people are "living beyond their means" is generally a false narrative used by the rich and powerful to keep you and me from questioning the system. There's tons of data to back this up. All the gains since 2008 have gone to the top 1%. Wages stopped growing (and is large swaths declined) in the 70s even as productivity exploded. Essentials like Housing and education are eating up 60+% of peoples income. The commodities market was deregulated resulting in massive food price inflation. For me, I'm going to pay approximately 50% of my income between taxes and healthcare this year and my roads are falling apart, I pay for my kid's school out of pocket and I hesitate to go to the doctor. Meanwhile my country's fighting 8 (count 'em) offensive wars (meaning wars against countries that didn't attack us).
Basically, there's a fall scale class war going on that only one side is fighting...
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
Agreed. I recently had a discussion with another electrical engineer concerning a one-off project I was planning to build. I needed to read an analog voltage from 0 to about 5 Volts, do some scaling, and display it as an (up to) 3-digit number.
Him, serious as a heart attack: "It sounds like you need a raspberry pi and some python code!"
Me, after picking my jaw up off the ground: "What? You really think I need a 32-bit ARM CPU with 512 MB of RAM running a multi-user, multi-tasking, unix-like operating system just to read one analog voltage and drive a 3-digit 7-segment display? I can do this with a 90-cent PIC and maybe 100 lines of assembly code."
Him: "Yeah, but once you add the power supply it will cost a lot more than a rpi and be a lot bigger."
Me: "What are you smoking? A low-dropout 3 or 5 Volt linear regular and a couple of caps will cost me another 90 cents and will fit on the same tiny PCB. And the whole thing will draw a lot less power than a raspberry pi. And it won't be running millions of lines of bloated, potentially buggy code that I've never seen."
Find a modern app that doesn't use 17 different frameworks and external libraries. Each of which ist designed to be general purpose, meaning it does more than the app needs. And each of those external libraries brings in more external dependencies, each of which... How to write "Hello, World" in only 2GB. This is modern software development, and it is seriously insane.
Enjoy life! This is not a dress rehearsal.
if founded on debt, specifically mortgages, right? And what about medical debt? Most bankruptcies are from it you know?
Class war is centuries old. It came before Marx and it continued after his death. You're strawmaning now. Throwing in the much hated SJW. Building up an enemy to direct hate at. You're either a well practiced troll or you're being manipulated by one to push their agenda. If you're just being manipulated then please, go read this. It describes the techniques being used to manipulate you. Russia's the subject of the article but they're by no means the only ones using these techniques.
Now, if you're just a troll, or worse one of the ones working for the ruling class as foot soldiers in their army, well, all I can say is that they will not treat you well after the war is won.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
>He gave you the source. It was a attributed paraphrased quote. What part of that was confusing to you?
The confusing part is when I google Neil deGrasse Tyson, "To think a problem is inherently difficult is hubris"...... nothing comes up. Even when I remove Tyson's name I cannot find ANYBODY that ever said anything remotely like that.
So in other words... it's a false quotation that doesn't exist.
"I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall