5 ms·
C'mon. I can't be the only one who is amazed at the things we've managed to build on top of a unnecessary complicated foundation. It's quite amazing that we've
by justin_oaks 3y ago
C'mon. I can't be the only one who is amazed at the things we've managed to build on top of a unnecessary complicated foundation.
It's quite amazing that we've put layer after layer of leaky abstractions on top of each other and managed to make systems that mostly work.
I don't hate all the software. I think it's awesome. It can be hell to develop, though.
- hejcloud 3y agoReading your comment I can't help but think about that we're now starting to feed our layer lasagne that "mostly works" with code generated by a stochastic parrot which also only "mostly works" and turn the resulting products into some kind of fabric of the society. Ten years from now must be a fun time.
- malikNF 3y ago"When I started, all I had was swamp! Other kings said I was daft to build a castle on a swamp, but I built it all the same, just to show 'em! It sank into the swamp, so I built a second one. That sank into the swamp. I built a third one. It burned down, fell over, and then it sank into the swamp. But the fourth one stayed up! And that's what you're going to get, lad--the strongest castle on these islands!"
- RangerScience 3y agoYep yep. Great way to solve a leak is shove enough stuff into it; it’ll stop leaking after enough!
- MonaroVXR 3y agoLaughed way to hard about this.
- bitwize 3y agoYou laugh, but... AI only got real traction when we stopped teaching computers clever efficient ways to solve logic puzzles and started throwing massive amounts of data, memory, and compute at the problem.
- Sunspark 3y agoIt's literally what transit providers do with a leaking tunnel. They just keep pumping grout or epoxy into the crack until it stops leaking.
- grepLeigh 3y agoI first encountered the term "programmer-archeologist" on an IRC server in the 2000s, since the server was named after a Vernor Vinge character. >>> The Programmer-Archaeologist churns through this maddening nest of ancient languages and hidden/forgotten tools to repair existing programs or to find odd things that can be turned to unanticipated uses. - lambda-the-ultimate.org At the time, I was a freshman in college studying "Classics" - dead languages and history, like Latin and Ancient Greek. I dropped out that same year, flabbergasted and excited that I could experience the same archeological thrill on a much shorter time scale. All I needed to learn was some system engineering... So I did that. Been here ever since, loving every day that I got to make some beautiful jank soup of software work for another epoch. P.S. I was on the IRC server trying to pirate some music and textbooks I couldn't afford to buy. Wound up gainfully employed throughout my 20s, able to retire in my 30s (programmer / data archeology pays well)
- deleted 3y ago[deleted]
- LegitShady 3y agome trying to make sense of an ancient application built on a version of oracle so old I should have put its extended end of life date in school years ago and oh my god is that cobol wtf I thought they said this was fortran...
- grepLeigh 3y agoYou'll either go insane staring into that abyss, or achieve enlightenment!
- scruple 3y agoI have two main tasks for this year. One was to dig through a system that was built a decade ago and modernize it. I just wrapped that up. The end result has eliminated multiple points of failure and unnecessary process, and has enabled my team to completely own the solution end to end. The other task is to dig into and modernize a system that was originally started over 2 decades ago. I've got some other, minor tasks to get through this month and next and am excited to get onto this next task around August. I'm ~20 years into this career and I am have more fun in the job today than I ever have before.
- ThrowawayTestr 3y agoThank the chip designers for endlessly making hardware more powerful so more layers of abstraction can be added. Electron, need I say more?
- jesstaa 3y ago> so more layers of abstraction can be added The problem is that they're not layers of abstraction, they're just layers. An actual layer of abstraction should allow you to replace or combine the lower layers. But we just have layers without abstractions.
- dreamoffire 3y agoI'm more amazed that the hardware industry has hoisted our shit software into usable state. Just bravo. I can only imagine the people working on the actual chips are screaming in silence somewhere at the complete waste of energy we've made.
- srgpqt 3y agoIt goes both ways. Shit hardware is papered over with firmware/driver hacks.
- picture 3y agoReading the silicon erratas from various companies.. it's a wonder that anything works https://www.st.com/resource/en/errata_sheet/es0182-stm32f405407xx-and-stm32f415417xx-device-errata-stmicroelectronics.pdf https://www.st.com/resource/en/errata_sheet/es0182-stm32f405... https://www.nxp.com/docs/en/errata/IMXRT1170CE.pdf https://www.nxp.com/docs/en/errata/IMXRT1170CE.pdf https://www.nxp.com/docs/en/errata/IMX8_1N94W.pdf https://www.nxp.com/docs/en/errata/IMX8_1N94W.pdf
- ThrowawayR2 3y agoThey are. Patterson & Hennessy at their Turing Award lecture back in 2017, when they started talking about where future opportunities for increased speed were going to come from, the very first thing they took a (polite) dump on was how software was written very inefficiently: https://www.youtube.com/watch?v=3LVeEjsn8Ts&t=2183s https://www.youtube.com/watch?v=3LVeEjsn8Ts&t=2183s The old canard that programmer time was worth more than processing time that bad coders quote is less and less true by the year; SWEs who are able to wring better performance out of less hardware resources are going to become more valuable in the future.
- oofnik 3y ago> SWEs who are able to wring better performance out of less hardware resources are going to become more valuable in the future. As much as I'd like for this prediction to come true, I think it's wishful thinking. Compute capacity continues to increase exponentially while (human) cognitive resources, for all practical purposes, do not, which means less efficient code will continue to be the more economically viable option as far as I can tell. Even with AI, where we're essentially trading compute (used for running code) for extended cognitive resources (used for writing code), what incentive exists to channel those resources into writing faster code rather than writing the same code faster?
- NotYourLawyer 3y agoIf mostly doesn’t work. There are constant bugs. It just barely hangs together enough to sort of function most of the time.
- vkou 3y agoWhat you're seeing is the result of survivorship bias. Software that doesn't mostly work doesn't get used. Software that fully works is too expensive to build.
- justin_oaks 3y agoI'm not saying there isn't crappy software. Sturgeon's Law [1] says "90% of everything is crap". That applies as much to software as anything else. I'm just saying the remaining 10% can be pretty impressive considering the complexity and cruft developers deal with to make it. [1] https://en.m.wikipedia.org/wiki/Sturgeon's_law https://en.m.wikipedia.org/wiki/Sturgeon's_law
- gnulinux 3y agoI find it impossible to relate to this stance because no software I use works. Period. I haven't encountered a single piece of software that's not frustrating in the last decade. Tell me all about the archeology and cool shit but this stuff boils my blood at this point.
- jstarfish 3y agoI mostly agree, but there are gems like SQLite...
- Gigachad 3y agoThis is why I use Apple products now. I don’t care that it’s expensive, I don’t care that it’s locked down. I’m just relieved and somewhat delighted that everything just works. I still have Linux for my gaming desktop and it’s a constant reminder of how good I have it when I have to do things like restart pipe wire to change audio outputs, or having new kernels break stuff. Some of the experiences are downright magical like being able to copy something from my MacBook and paste it on my phone.
- usefulcanoll 3y agoJust to rain on your parade, my mac stops working after resuming from sleep and having a monitor connected (audio plays, nothing is movable or actionable). It also randomly sticks the launchpad icons permanently on screen that won't go away without a reboot. The ctrl key randomly stops working, tested by pressing ctrl-C at random intervals. Sometimes it's perfect, sometimes not.
- raspyberr 3y agoHere's a site of one person's experiences of things that have gone wrong with Apple software: https://annoying.technology/ https://annoying.technology/ it's been goint for multiple years now. Software is just buggy in general. I mostly agree with the parent comment. The amount of software that I've never had a negative experience with is close to zero.
- gnulinux 3y ago
- winternett 3y agoThat reasoning is fine in a world of video games and music player software perhaps, but not when it comes to running mission critical systems like flight control on a 747 or 10,000 autonomous cars carrying passengers. I worry about complacency with overcomplexity and over-reliance on software, and our fast-growing trigger finger to automate everything.... Personal responsibility and training backed by a human touch will not be beat by code any time soon in my opinion. Citing that code is almost always deeply influenced if not forged and maintained by human hands, any credible singularity is far from our currently over-marketed Ai reality at the moment in my opinion as well... Google can't even get it's assistant and spell check to work properly, and they've been one of the largest companies on the block for decades now.
- marssaxman 3y ago> 10,000 autonomous cars carrying passengers I have seen too much software to ever trust software with an automobile.
- sam_lowry_ 3y agoThere is no easy way to release the hand brake in the new BMW 1 series without starting the engine. They had a pin to pull in the trunk and older cars had a tool for this, but mine does not, and I could not find the pin in the dark of the night either. Automobile is as broken as software and hardware. Things will start falling apart one day.
- smitty1e 3y ago> build on top of a unnecessary complicated foundation Is there a hidden assumption in "unnecessary"? None of the tech unfolded in a deliberate, methodical manner. It was random people doing various things over time and a plethora of details. To assume that the aggregate would have a tidy structure seems unrealistic.
- JohnFen 3y agoSo, in other words, software engineering is lacking a whole lot of engineering?
- smitty1e 3y agoI mean, there is copious engineering effort internal to, e.g. the Linux kernel. And much goes into RFCs. But is there much internet-wide engineering going on to squeeze out the entropy? Repackaged: the engineering that occurs is more bottom-up than top-down. Google, for example, has enough heft to say: "QUIC: here is a bit of top-down engineering." But that example bolsters my general point, in my opinion.
- kaba0 3y agoI don’t think all that many of it is unnecessarily complicated — we quite literally has no other ways of managing all that complexity. Mathematics is the same way — complexity is infinite, and abstraction is the only thing that can make it remotely tameable.
- graypegg 3y agoThe fact that I can pipe text into a network connection, and it just arrives at the other end, in perfect order, secured over the wire, and with nothing more than the network stack that’s implemented in every serious programmable environment imaginable, is still insane to me. I don’t even care that it’s mostly 40 year old technology technically.