'It Just Seems That Nobody is Interested in Building Quality, Fast, Efficient, Lasting, Foundational Stuff Anymore' (tonsky.me) 560
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.
Why should they? (Score:5, Insightful)
Re:Why should they? (Score:5, Insightful)
and our kids and grandkids will be buried in our electronic wastes.
corporate greed is to blame (the consumer, less so). forced obsolescence for the sake of profits and with zero regard to the environment.
Re:Why should they? (Score:5, Interesting)
Re:Why should they? (Score:4, Insightful)
Re: (Score:2)
Re: (Score:2)
iPhone 4S used to be the best and could run all the applications.
Today, the same power is not sufficient because of software bloat. So you could say that all the iPhones since the iPhone 4S are devices that were created and then dumped for no reason.
It doesn't matter since we can't change the past and it doesn't matter much since improvements are slowing down so people are changing their phones less often.
scratched on some cave wall in Princeton: (Score:3)
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] [quoteinvestigator.com]
Re:Why should they? (Score:5, Interesting)
Re:Why should they? (Score:5, Informative)
There is one place where people still produce stuff like the OP wants, and that's embedded. Not IoT wank, but real embedded, running on CPUs clocked at tens of MHz with RAM in two-digit kilobyte (not megabyte or gigabyte) quantities. And a lot of that stuff is written to very exacting standards, particularly where something like realtime control and/or safety is involved.
The one problem in this area is the endless battle with standards morons who begin each standard with an implicit "assume an infinitely fast CPU with infinite RAM...". The number of standards meetings I've sat through where we've been met with total incomprehension, I mean literally a total inability to comprehend, that something has to operate on anything less than a multi-GHz CPU with gigabytes of RAM....
Re: (Score:3)
Tens of megahertz... pffft, some of my best code runs at 0.25MHz to save power, or 0.03MHz for ultra low power.
Seriously though, back in the day an Amiga with 10MHz CPU (no FPU, no cache, no brand prediction or out of order execution etc.) could run some amazing desktop apps in 512k. Stuff that actually puts modern apps to shame for usability.
But the price we paid for that was that the OS had no memory protection or and the filesystem could easily become corrupted. There was no virtual memory either so if y
Re: (Score:3)
Re: (Score:3)
> Poor software engineering means that very capable computers are no longer capable of running modern, unnecessarily bloated software.
Not just computers.
You can add Smart TVs, settop internet boxes, Kindles, tablets, et cetera that must be thrown-away when they become too old (say 5 years) to run the latest bloatware. Software non-engineering is causing a lot of working hardware to be landfilled, and for no good reason.
Re:Why should they? (Score:5, Interesting)
Can you really not see the connection between inefficient software and environmental harm? All those computers running code that uses four times as much data, and four times the number crunching, as is reasonable? That excess RAM and storage has to be built as well as powered along with the CPU. Those material and electrical resources have to come from somewhere.
But the calculus changes completely when the software manufacturer hosts the software (or pays for the hosting) for their customers. Our projected AWS bill motivated our management to let me write the sort of efficient code I've been trained to write. After two years of maintaining some pretty horrible legacy code, it is a welcome change.
The big players care a great deal about efficiency when they can't outsource inefficiency to the user's computing resources.
Re:Why should they? (Score:4, Insightful)
How about pointless software and total environmental harm? I believe they call it "cryptocurrency mining" in more polite circles.
Re: (Score:3, Interesting)
The kind of quality and efficiency that the summary seems to be talking about is expensive. The buying market wants cheap. Creating cheap solutions means grabbing third-party libraries and gluing them together....as much as possible. Once it basically works you just move on. That keeps development costs low and time to market low, which is exactly what the market wants.
Of course, people might say they want lean and mean, but, when they whip out their wallets they always go for cheap and already-availabl
Re:Why should they? (Score:5, Insightful)
Re:Why should they? (Score:5, Interesting)
There is a big chunk of consumers, probably 20%, that always buy the cheapest possible thing without regard to quality. It's the market Walmart caters to, and I have no problem with businesses that explicitly target "cheap". But that should be a niche, dammit!
It's more than that (Score:4, Insightful)
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.
Re:It's more than that (Score:4, Insightful)
I would hope any self-respecting Slashdotter would understand the "Vimes Boot Theory of Value". However, while there are people forced into that trap by circumstance, there are many more people who simply lack he judgement, ability to plan, or ability to defer gratification. I can't really blame companies for selling to them.
It really pisses me off, however, when there are no middle tier products for some need, just "the cheapest shit possible" and "custom made, massive margin" if you want any quality. Seems like there would be a market for goods in between, the decent quality, moderate margin goods. Perhaps companies get trapped by focusing on growth of sales, rather than profits.
At least as of 2018 that's 78% (Score:5, Insightful)
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...
Re:At least as of 2018 that's 78% (Score:5, Interesting)
I'm sorry but I used to work at a retail store with lots of people barely getting by. YES a lot of these people would spend money frivilously, like buying new jeans or dresses when they already had a closet FULL of clothes. (How do I know? I just asked.)
Meanwhile I'd keep wearing the same stuff for 10+ years, and only bought new when I had no choice.
- Those people who were my minimum wage coworkers were indeed "living beyond their means" while I was living within my means (and watching my bank account grow). It is a CHOICE of how to live, not a trap.
Re: (Score:3, Informative)
At least as of 2018 that's 78% living paycheck to paycheck.
OK. So, assuming an estimated population of 325,000,000, that means that that 253,500,000 people live paycheck to paycheck and 71,500,000 do not. Of those 71,500,000, more than 90,000,000 own an iPhone [statista.com]. That's right. Mathematically, at least 10% of the US population that supposedly lives to paycheck must own an iPhone for the sales figures to work out. Meaning that if iPhone owners account for every single American who is not in financial distress and then some, that means every single owner of a top
You do understand our entire economy (Score:3)
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 [wired.com]. It describes the techniques being used to manipulate you.
Re: (Score:3)
You don't have to spend a ton of money. Sure you could spend $100 for some Florsheims or other high-end brand, but I bought a pair of Rockports for $30 (sale price) and they lasted 15 years before finally falling apart (the sole separated from the leather).
Re: (Score:3)
You don't have to spend a ton of money. Sure you could spend $100 for some Florsheims or other high-end brand, but I bought a pair of Rockports for $30 (sale price) and they lasted 15 years before finally falling apart (the sole separated from the leather).
And 15 years ago, that was true of that brand. Want to bet you could buy the same brand today and get half or a third of the lifespan out of it? And you can't tell by looking that they're different
One of the very biggest problems with capitalism is the feedback mechanism. If the feedback time scale is longer than a year, it doesn't work. You don't know if your product with a nominally long lifespan will actually have a long lifespan until after you've bought it and after some years have elapsed. Enough
Re: (Score:3)
> 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
Even when I spent a year with no job, I had enough intelligence to look at the UNIT PRICE of the item. As you stated the reduced sized items are more costly (per gram) than larger sizes, so I always went larger. More bang for each buck.
- If people cannot figure this out by themselves (look at the unit price & go with the lowest unit
Re: (Score:3)
> Quick question ... do you always buy the cheapest car possible? I'm pretty sure you don't.
I didn't used to. I typically went with a middle grade around $22,000 pricetag. Then two years ago I bought a Ford Fiesta for $11,000..... it has absolutely no bells or whistles (not even cruise control), but it has held-up just as well as my older cars that cost double the price.
It has the same engine as installed in the ~$22,000 Ford Mondea (aka Fusion), and same tires as my former Honda Civic which lasted 80,
Re:Why should they? (Score:5, Insightful)
The kind of quality and efficiency that the summary seems to be talking about is expensive. The buying market wants cheap. Creating cheap solutions means grabbing third-party libraries and gluing them together....as much as possible. Once it basically works you just move on. That keeps development costs low and time to market low, which is exactly what the market wants.
To use the Apple example in the summary, Apple could create lean and efficient software for their phones without raising costs to consumers. But then they would go from making a metric shit ton of profit to only making a standard shit ton of profit and we can't have that, can we? It's not that the people have decided what they want, corporations have told people what they want and the people lapped it up, even when it is quite clearly not in their best interest.
Re: (Score:3)
Apple's model really annoys me. I have an iphone 4s which works just fine, but I cannot download Kindle or Amazon Video apps off the Apple store. Reason: "Your OS is out of date" and of course the latest OS won't work on the 4s.
I later learned how to "force" the apps to download on my ancient OS via some hacking, and guess what? They worked just fine!
Apple's claim the OS was too old was pure BS. Apple deliberately designs their software system to "not work" and thereby force users to upgrade to new har
Re: (Score:3)
Look, building super high quality code is hard, but not everything has to be avionics grade code to be a lot better than it is now, and there are good tradeoffs. Building an app? If your foundation is solid and if you have build a framework that makes it easy to build the type of app you are working on (sometimes including well build third party libraries, chosen carefully) then it will be easier and cheeper for you to roll out new features with minimum effort because you paid the cost up front instead of
Re: (Score:3)
There is nothing difficult about programming. The only thing difficult is when a programmer makes it difficult. To paraphrase Neil d
Re:Why should they? (Score:5, Interesting)
Many problems in life we that call "difficult" are because they require physical effort or lots of knowledge which may be incredible difficult to acquire. But problems of pure reasoning, like many "difficult" aspects of programming, are only relatively difficult to the person(s) claiming it to be, not an inherent fact.
I don't claim to be "smart" as in better at everything, but I do have my strengths. In those strengths, I have solved issues that have stumped entire communities of seasoned professionals for years within seconds of reading of the problem. My guess is most people are like me and we're just not letting people who have intuitive understandings of certain issues to be fully utilized. I've heard of people who can't do basic arithmetic, but are gods at Calculus, but were prevented from even learning Calculus until much later and became recognized as leading physicists in their niche. It was only happenstance that a teacher allowed them to skip remedial math and go into advanced math. There's probably many more out there.
A big problem of intuition is it's nearly impossible to explain and few believe you if they can't understand. Let me explain how you ride a bike. Sit on the seat and start peddling.
Re: (Score:3)
>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.
Re: (Score:3)
It's even harder for code to be high quality when every year the new shiny framework comes out rather than bug fixes to the old framework, so you re-implement everything rather than bug fixing your old code.
It's the churn that's killing quality.
For example, Debian Stable is stable because of a commitment to only make the changes necessary to fix bugs once a version goes stable.
The customer can't find it as an option (Score:5, Insightful)
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.
Re:Why should they? (Score:4, Interesting)
The market only buys cheap because of the years of expensive brands turning out to be rebadged crap. It's to the point where paying more just means you paid more. So the consumers figure if they're likely to get crap either way, they might as well get cheap crap rather than expensive crap.
You can't just pay a bit more for quality because paying a bit more means nothing. You can't actually make something that costs a bit more due to higher quality because nobody will believe that it's actually better or that once you establish a reputation you won't cheap out and stick them with the same old crap in a more expensive box.
It might help somewhat if truth in advertising saw some meaningful enforcement once in a while.
Re: (Score:2)
Re:Why should they? (Score:5, Informative)
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.
It's not just consumer stuff.
The network team I'm a part of has been dealing with more and more frequent outages, 90% of which are due to bugs in software running our devices. These aren't fly-by-night vendors either, they're the "no one ever got fired for buying X" ones like Cisco, F5, Palo Alto, EMC, etc.
10 years ago, outages were 10% bugs, and 90% human error, now it seems to be the other way around. Everyone's chasing features, because that's what sells, so there's no time for efficiency/stability/security any more.
Re: (Score:2)
Everyone's chasing features, because that's what sells, so there's no time for efficiency/stability/security any more.
Interestingly, as much as we all hate subscription models from companies like Abode and Microsoft, those subscription models do give these companies more of an incentive to focus on stability, efficiency, and security instead of features. Of coarse, they will probably just profit more and do less overall development but stability and quality will get better with fewer new "features" added.
Re:Why should they? (Score:4, Informative)
Interestingly, as much as we all hate subscription models from companies like Abode and Microsoft, those subscription models do give these companies more of an incentive to focus on stability, efficiency, and security instead of features. Of coarse, they will probably just profit more and do less overall development but stability and quality will get better with fewer new "features" added.
Do you have any idea how much support subscriptions for Cisco/F5/Palo Alto/EMC gear cost per year? Hundreds of thousands a year for two smallish data centers' worth. They STILL can't get it stable.
(As I'm writing this, my VP just walked by telling someone, "OK, it's escalated to EMC".)
Re: (Score:2)
Re: (Score:3)
I'd have to disagree. It's a well known fact noone can ever find their 10mm socket.
Re: (Score:3)
> Next belt was a $100 solid-one-layer full-grain...... indestructible.
I don't wear a belt.
So that's $100 saved.
Re: (Score:2)
Re: (Score:2)
Re:Why should they? (Score:4, Informative)
When you're right, you're right. (Score:5, Interesting)
Nobody has a clue anymore whether they're building on a poured concrete foundation or a bag of cats.
Re:When you're right, you're right. (Score:5, Interesting)
Moore's law (Score:5, Interesting)
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.
Re:Moore's law (Score:5, Interesting)
I think this will largely be the case.
Think of it in terms of money: if every year you made twice as much money as you did the year before, you'd get to the point where you spent it incredibly recklessly. I'm gonna buy a boat. Is the salesman cheating me? Who cares. I've got the money and I'm getting twice as much next year. Until the flow of money is restricted the spending of it will not be limited.
The same happens with computing resources. We've been getting faster computers with more storage capacity for so long that the people spending those resources (programmers) do so with reckless abandon. Ideally at a minimum the things that everything else relies on - the OS and core libraries - should be EXTENSIVELY optimized to prevent tolerance stacking.
Re:Moore's law (Score:4, Insightful)
The big problem however, is that the software industry isn't even spending it's own money. It's the users resources that they pissing away, and it's the user who gets told that "RAM is cheap", (though it isn't), or "buy a new device".
The problem isn't that capacity grows, it's that the developers doesn't really have to pay for their sloppiness.
Re: (Score:3)
The same happens with computing resources. We've been getting faster computers with more storage capacity for so long that the people spending those resources (programmers) do so with reckless abandon.
It's also somewhat tragedy of the commons. A programmer doesn't really care that their program is 300megs on the iphone because there is 16G available. The problems only start happening when there are 20 programs that are all 300-500 megs. Programmers and Companies need to realize though that people with smaller capacity phones will many times start deleting the "larger" apps on their phones so it does hurt companies to have huge bloatware whether they realize it or not.
Re: (Score:3)
There's a big pushback from some many people against optimization. They say don't prematurely optimize but in practice they mean never optimize. For instance, when it's patently obvious that some code is bloated and you suggest re-doing it, you're told that it's not yet time to optimize. It's like a mantra at times. If you only optimize once the product is done, and no products are ever "done", then there's no optimization.
Time to market seems to dominate. Thus the dev team wants to do rapid prototypin
Comment removed (Score:4, Insightful)
Welcome to the world of perpetual growth (Score:5, Interesting)
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...
Re: (Score:3)
Perpetual growth also means selling more than last time, and the only way to do that is to make people want your new stuff. .
I heard this a long time ago with regards to resource usage, but it rings true for everything:
Perpetual growth is the creed of cancer
Re:Welcome to the world of perpetual growth (Score:5, Insightful)
Perpetual exponential growth is also know as "technology". And TFA is right on the nose here: technology does not mean "more bling", it means "more efficiency". That's how we sustain perpetual exponential growth. New technologies let us make the same stuff for less labor or energy, a few percent every year.
When the focus changes to all bling, no efficiency, it's a non-sustainable path.
Re: (Score:2)
At some point, and we have arrived at this point, there is no potential for increased efficiency anymore. We're hitting physical limits. If you want to increase your own profits, you now have to reduce those of someone else.
We're no longer increasing general production, we're shuffling around what's available.
Re: (Score:3)
More and more buying startups is done defensively than offensively, i.e. eliminating competition rather than trying to establish some new technology.
Growth for whom? (Score:2)
Re: (Score:2)
Or, in short, the difference in quality no longer warrants the expense for a new item.
Apple is trying to reverse the trend (Score:4, Informative)
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.
Re: (Score:3)
Re: (Score:3)
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.
The fight gets harder every year. New grads know how to cobble libraries together, but don't know how to write things from scratch. If they don't get set on the right path early, they become mid-career devs who have "knowing a lot of third-party libraries" as their core skill set.
My only hope for the field is the rise of the Pi and maker projects and IoT devices and the like - there's a new awakening of how fun it can be when you get close to the metal. I blame the current bloat on the decades between th
Re: (Score:3)
> but don't know how to write things from scratch.
The problem is, when developers write things like code to do asynchronous http requests "from scratch", they ALMOST NEVER do it "well", let alone "in a way that isn't brittle or completely dysfunctional". Libraries like Volley are like a gift from god to developers AND end users, compared to the clusterfuck mess that we USED to have before Volley'. Async HTTP involves SO MUCH tedious boilerplate code for EVERYTHING, there's ALWAYS going to be the temptati
Re: (Score:3)
C++ and C are exactly as close to the metal, unless you use runtime polymorphism. But that's not really the point: they're not Java, nor Javascript. You have ideas like "this memory address is really the readout from a sensor".
Yes, the Pi is way higher level than the Commodore 64, but relative to the decade it's fine. It as least gives people the feeling that resources aren't infinite, and that optimization is a thing.
Re:Apple is trying to reverse the trend (Score:5, Interesting)
Every now and then Apple does take a step back and work towards making things smaller and faster instead of just newer.
Apple said something during their keynote last week that stuck with me afterwards, mostly because it was so unexpected.
Towards the end of the keynote, they had their VP for environmental and social issues up on stage to talk about how things were going (i.e. the part of the keynote I usually tune out of, since it's rare they ever say anything new). After reiterating that they've now completed the transition to running all of their facilities on 100% renewable energy (i.e. no energy credits), they turned to the topic of what their next initiative will be. Here's the relevant quote (emphasis mine) from that part of the keynote [youtu.be]:
We hope to one day eliminate our need to mine new materials from the earth. Now, as you can imagine, this is a massive effort. So, to reach that goal, we have to do three things.
First, we have to find new ways to make our products with recycled or renewable materials that are sourced responsibly. Then we'll have to ensure that our products last as long as possible. And then finally, after a long life of use, we have to ensure that they're recycled properly.
And then about a minute later [youtu.be] she expands on that second point:
Second, we also make sure to design and build durable products that last as long as possible. That means long-lasting hardware coupled with our amazing software. All of these devices [images of iPhone 5s through iPhone X displayed on screen], including the iPhone 5s, run iOS 12, and iOS 12 is designed to make your iPhone and iPad experience even better, even more responsive, faster...just better! And because they last longer, you can keep using them, and keeping using them is the best thing for the planet.
To say the least, hearing an executive of a major consumer products company say something that was so blatantly anti-consumerism on a stage caught me by surprise. Here's a major company saying that they want people to NOT buy their products because their customers are using their products for longer instead of buying new ones. And then they backed that statement up by releasing a software update a few days later that improved speeds on all of their oldest still-supported devices. I was skeptical of their claims about iOS 12's improvements, but I've actually become a beneficiary of it, since my iPhone 5s from 2013 is markedly faster with the just-released iOS 12, enough so that I ditched my plans to upgrade this year and instead decided to stick with the 5s for yet another year.
Re: (Score:3)
Second, we also make sure to design and build durable products that last as long as possible.
Then ask them why they don't support the right to repair [huffingtonpost.com]. Why they make their products so difficult to repair. Why they make it a costly purchase to replace a battery.
Talk is cheap.
Who fail to learn, re-implement Unix badly. (Score:5, Interesting)
Re: (Score:3)
If I had mod points I would mod you up! It is so true.
Boss: We are moving the desktops into the cloud and everyone will get "Smart Terms" for their desk!
Me: We tried that, it was called a mainframe. The high cost of doing it that way is one of the reasons we moved to distributed systems and desk top computers.
Boss: No this is different, mainframes used green dumb terminals, these are smart terminals!
Re: (Score:3)
Re:Who fail to learn, re-implement Unix badly. (Score:5, Interesting)
Re: (Score:3)
I love those paper-based read-a-ma-jigs. They fold up nicely, store nicely, and never need to be charged.
Re: (Score:2)
Re: (Score:3)
I do! (Score:5, Informative)
Re: (Score:3)
Twice as bad in manufacturing and hard goods. (Score:5, Insightful)
completely wrong (Score:2)
while yes there is a point that bigger doesn't imply better
however the example about the iPhone 4s is completely wrong... iOS 5 had a long list of things that where wrong with it compared to iOS 9 for example the browser was not anywhere near as good as iOS 9 and comparing sizes on Android 8.1 is not really a very good metric just look at the media assets that are combined in the binary.
But that would take a understanding of actually how things work... not writing a snazzy headline...
the fact that you cant
Can't do it with "Agile" (Score:5, Insightful)
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.)
Word Processor (Score:5, Informative)
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 [atarimania.com]
Documentation (100 page PDF): http://www.atarimania.com/8bit/files/letter_perfect.pdf [atarimania.com]
Re: (Score:3)
But, the best version of Word was in 1995. It has gotten slower and slower since then, without any useful new features.
Vague nostalgia (Score:4, Insightful)
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.
Re:Vague nostalgia (Score:4, Informative)
You don't recall the QNX demo floppy? It fit a multitasking networked OS that even included a Doom demo. Shit today is just bloated.
This sounds like my grandpa. (Score:2)
Yes, I am old enough to remember the floppy disk days - when wanting to play Doom, with its billboarded sprites and single-floor rooms, meant loading 18 zillion floppies into your drive. When wanting to draw a freakin' Mandelbrot set meant waiting 3 minutes, and god help you if you wanted to dabble in 3D graphics - I guess you could look up quaternions in the encyclopedia and try to go from there?
Doesn't anyone hear themselves making the "back in the good old days" argument? I hear it again and again, and n
Re:This sounds like my grandpa. (Score:5, Insightful)
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.
Agreed (Score:2)
We're now several abstraction layers deep for the most mundane of programs.
Re: (Score:3)
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 sys
The 90's called and they want their argument back. (Score:2)
Back in the DOS days, there was a word processor battle between Word Perfect and Microsoft Word.
The developers behind Word Perfect wanted a small size app that was fast -- it was mostly programmed in assembler.
Meanwhile, Microsoft was programming theirs in C and cranking out the updates and features at the expense of size and speed.
Who won? Microsoft. Why? Because hardware continues to get faster and faster every year. Optimization becomes less necessary.
That t
Re: (Score:3)
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.
Why would they (Score:2)
One man's bloat ... (Score:2)
Is another man's critical feature. I thought I'd say that here since you wouldn't get the message in animated poo form on your iOS 5 device.
Comparing the floppy based apps to what we get now is absolutely daft. Especially daft considering that modern office loads faster now than anything on floppy ever did, and there's a big difference in capability between apps.
You want a text editor, can I recommend nano or notepad.exe. Personally I prefer something more capable, compatible, and something that I can drive
Software is hard (Score:2)
It may be the hardest thing the human mind has ever done
What we need are clever, powerful, rigorously proven correct tools to manage complexity and improve quality
What we have instead is layer after layer of bloated, buggy, inefficient crap, designed to allow inexperienced, inexpensive, barely competent worker bees to rapidly churn out vast quantities of bloated, buggy, inefficient crap to serve the fashion industry
There are some good reasons, some bad (Score:2)
Some apps (and not that many) have added code to increase security. This is honestly a good thing. Also, like most good things, this is not the majority of apps.
On the flip side, they have absolutely added functionality - for the developers: Data collection, as much as they think they can even remotely talk you into. This is a problem.
We don't perceive this as a feature, but they do. That additional code is definitely serving their purposes.
What a crumudgeon (Score:2)
Yes, and I also remember that the machine wasn't very useful beyond for playing Alley Cat and Leisure Suit Larry.
Yeah, yeah, javascript is slower than C, complex software is hard to optimize, etc... all true, but he entirely fails to recognize the gains that have been made in software as a consequence of accepting these faults. On IOS 5 vs 9, what about the encryption and other security features that have been extensively discussed here on /.
absolutely agree (Score:2)
So... what do we do about it?
As consumers, we can drive the market by confining our purchases to less bloat or no bloat. But how do we do that? If not IOS or Android, then what? I'm already running Mint on my laptop at home -- but I still need to run that bloated monstrosity called Windows for the single horribly bloated application that doesn't work correctly under Wine.
A few years ago I got a freebie Android tablet with a big purchase that was obsolete basically out of the box. Yes, it supported SD ca
The best potato peeler in the world: (Score:5, Informative)
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.
In short "expensive" (Score:3)
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.
Frameworks (Score:4, Interesting)
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.
Re: (Score:2)
There's probably some truth to that. And it's a sad commentary on the industry.