[HN Gopher] The software industry is going through the "disposab... ___________________________________________________________________ The software industry is going through the "disposable plastic" crisis Author : ColinWright Score : 63 points Date : 2020-08-20 21:38 UTC (1 hours ago) (HTM) web link (lwn.net) (TXT) w3m dump (lwn.net) | DangitBobby wrote: | As long as you vendored your dependencies it all actually still | should run fine. Bitrot is not a new phenomenon. But it is | incredibly frustrating. | reissbaker wrote: | I've found that the further back in time you go, the harder it is | to run programs without encountering odd bugs, until you hit a | certain inflection point where the systems are so old that | they're relatively simple to emulate, and for popular systems we | often have high-quality emulators that are capable of running the | software reasonably well. For example, try running Diablo 2 | (released in 2000!) on modern Windows, or modern macOS: it's not | straightforward or bug-free, in my experience. It's reasonably | good on Wine, ironically -- because the Wine developers have | built a really good emulation layer. | | I don't think it's (application) developer fads; how would that | even make sense? Either the OS broke userland, or it didn't; if | it didn't, then the same binary should run just as well today as | it did then. If it _did_ break userland, that 's not the fault of | application or framework developers. | melindajb wrote: | cleaning up unicorn poop has been an excellent business. Nice to | see it will continue for awhile. | celim307 wrote: | My buddy has built an entire career hopping to late stage start | up after late stage startup and refactoring rails into java | phkahler wrote: | >> and refactoring rails into java | | Oooh planning ahead for round 2. | ssivark wrote: | The rich irony is that the problem is probably due to our | reluctance to throw-away old code and rewrite better software | with improved domain understanding. But that requires thoughtful | and disciplined stewardship. Instead we recklessly patch leaky | abstractions on top of each other because we're too lazy to work | from scratch and are focused on "shipping" instead (cue: | Titanic). | | We are so afraid of reinventing the wheel and actually having to | understand something that we will happily refactor out a car | wheel and use it for a bicycle (hey, "code reuse"!) and play the | charade of "best practices". | | Software is one context where we don't have to worry about | "disposing off" waste; we ought to make much better use of that. | ricksharp wrote: | Perhaps the issue is that it is far cheaper and easier to start | from scratch and create a small app these days. | | As we innovate exponentially faster and have better tools and | languages, it is far easier to tear the building down and start | over. | | Also, I don't know of a single app I use regularly that is older | than a few years. | crazygringo wrote: | I'm very confused. What does it matter, for running old software, | whether a framework was a fad or not? And what does a "brittle" | dependency even mean in this context? | | If you're trying to preserve software, you've got two options. | | One, you can preserve the binary and run it with emulation. For | webapps, this means preserving a deployable image. Your | faddish/brittle dependencies are 100% irrelevant, because your | image includes them already, right? | | Or two, you can preserve the source code. Which for _any_ project | is going to involve a mess of complicated tooling that dates to | when the project used to be compiled. But if you 're intending to | preserve something for the long term, you should preserve the | dependencies too -- e.g. node modules or whatever. | | I don't really see what's different. | aninteger wrote: | I don't know... Can I run Netscape Navigator on Ubuntu 20.04? How | about Gtk 1.2 programs or old Qt3 programs? Can I run Opera 12.x? | agentdrtran wrote: | I really, really doubt I can run most 1980s software on a modern | machine without effort. | fortran77 wrote: | I can run 80s software on a modern PC very easily. | NegativeLatency wrote: | Depends on which software you're talking about, DOS box is | pretty easy to use. | phkahler wrote: | But it's probably not too hard. Try running something that | needs Flash player, or IE6. | the8472 wrote: | Microsoft offers virtual machine images for that. | jeffhuys wrote: | You can find them here: | | https://developer.microsoft.com/en-us/microsoft- | edge/tools/v... | rubber_duck wrote: | Setting up a XP VM shouldn't be that hard. | sudosysgen wrote: | I do it every day, it's quite easy actually. | jimmaswell wrote: | For that to be true, there would have to be no actual domestic | crisis, with poor countries with lax oversight responsible for | 99% of the damage, but with politicians passing laws making our | lives worse at home because it makes uninformed people feel good. | | I'm stocking up on plastic straws and bags while I can. | leafmeal wrote: | Why 2005? | HenryKissinger wrote: | Windows Vista. | pdw wrote: | That's about the start of the Ruby on Rails hype. | nirse wrote: | I had to get a Rails project from 2008 back up and running | not so long ago, wasn't much more trouble than compiling ruby | 1.8.7 (or was it 1.9.3?) and installing some gems. | Admittedly, there were only a few dependencies in the project | outside rails itself. | NegativeLatency wrote: | Don't forget the JS builder/bundler explosion | sjy wrote: | I wonder if the comment was intended to be mainly about the newer | mobile OSes. I don't think I'd have too much trouble finding a | way to run 10-year-old Windows or Linux desktop apps, and it | would be easier than running Mac apps from the 1990s, but I | didn't even get the opportunity to save copies of the iOS | binaries I used 10 years ago. Even if I did, I doubt I'd be able | to do anything with them. | mylons wrote: | they're talking about web apps and mostly javascript. | emodendroket wrote: | Doesn't make much sense then. Your browser will run those. | at_a_remove wrote: | I am reminded of the profession "programmer-archaeologist" in | Vinge's _A Deepness in the Sky_. In roughly 2010 I reminded my | grand-boss that a great deal of the important business process we | had consisted of largely uncommented C and various mismashes of | shell scripts. | | It's true, there's something about all of the frameworks and the | fads and such which causes so many projects to need, well, | continual attendance to the dependencies. One proposed platform | at a previous job bothered me for reasons I could not explain, so | I mapped out the major dependent technologies, pointed out that | we had nobody who had even a passing familiar with with them, and | also pointed out how quickly some of them were moving. | | There's something to be said for keeping your tower of | dependencies short. It's a tradeoff, to be sure. | contingencies wrote: | _There 's something to be said for keeping your tower of | dependencies short._ | | Absolutely, but you still need to present an interface. | Essentially, which interface you present (REST, command line, | language-specific library, VM/container, etc.) has in most | organizations become a political question, to which | implementation details are largely held hostage. | spamizbad wrote: | People blame developers but it's all driven by a product | mentality that favors rapid iterations and technical debt to run | business experiments on customers. Slow-and-steady, carefully | written software isn't tolerated within many product orgs these | days. | FridgeSeal wrote: | I very much agree. | | I get that "done is better than perfect" but it feels like | we've swung so hard in that direction that we seem to be | largely neglecting stepping back and building the rough roll | for the job in all but the largest places who have the luxury | of having enough resources to assign a big enough team in the | background to do it. | enraged_camel wrote: | >>Slow-and-steady, carefully written software isn't tolerated | within many product orgs these days. | | The problem is that this works only for large clients and | conservative problem domains (such as accounting) where things | work at a glacial pace. Back in the day, only such clients | could afford enterprise/custom software, so using a waterfall | methodology to develop that software worked well enough. | | Things have changed. Software has gotten much cheaper to | develop, which means it has become way more affordable, and the | types of businesses who need that kind of software are in heavy | competition with each other and their problems and needs change | at breakneck speed. So your best best is to have your own | software development practices to match that speed. ___________________________________________________________________ (page generated 2020-08-20 23:00 UTC)