[HN Gopher] "I hate almost all software" - Ryan Dahl (2011) ___________________________________________________________________ "I hate almost all software" - Ryan Dahl (2011) Author : avinassh Score : 62 points Date : 2021-08-14 15:54 UTC (7 hours ago) (HTM) web link (tinyclouds.org) (TXT) w3m dump (tinyclouds.org) | slmjkdbtl wrote: | My solution to this problem (for personal goals not collective) | is spend time and build tools, abstractions and interfaces that | make myself happy, to a point where when I'm building actual | content I only interface with interfaces designed by myself. | nine_zeros wrote: | This is me. I've gone all the way from low level C programming to | frontend. There is so much arcane information to keep in mind to | keep yourself productive. And today's companies require you to | handle politics as well, under the guise of ownership. | | Amazingly, software engineers just refuse to standardize and move | ahead. Instead, reinventing the wheel is far too common. | Reinvention is necessary but sometimes, good enough is good | enough. Most engineering disciplines work on the standardization | principle, which improves productivity and predictability. | | That said, companies and customers don't care about the | underlying software, so I'm not going to waste my time on arcane | knowledge either. | [deleted] | diskzero wrote: | Comments from a previous appearance here: | https://news.ycombinator.com/item?id=3055154 | brazzy wrote: | > The amount of complexity I'm willing to tolerate is | proportional to the size of the problem being solved. | | First, most of the time you don't even _understand_ the problem | well enough to know its size. | | And second, complexity quite naturally increases with (at least) | the square of the problem size because not only are there more | things, each of them can potentially interact with every single | other one. With great skill and effort you can reduce that | exponent below 2, but actually reaching 1 is pretty much | impossible. | | Thus software is going to remain intolerable to Ryan for the | foreseeable future. | djrobstep wrote: | This argument always strikes me as a cop out. Software is bad | due to historical accidents, cultural factors, and short term | economic incentives, not irreducible mathematical complexity. | bluepizza wrote: | Not quite sure. Nobody says that rocket science is | unnecessarily complex, and that it should be solved with | simple math. | | I am waiting for the application of the proposed solutions | for software complexity. I have been for a long time. Nobody | really came up with anything, even though many have | complained about it. | PaulHoule wrote: | There's a deep principle, I think, that required backwards | compatibility eliminates the possibility of needed reform. | | One could imagine a "bloat free" OS that eliminates the | overhead of the paging MMU and has rationalized APIs and does | everything differently. | | But you need a userspace and you're going to want to run | (say) vi as a text editor and you need a shell so you get zsh | to run, and you want "grep" and "awk", etc. | | So you have to emulate the old API and in the process of | doing that all the old bloat goes back in... | tenaciousDaniel wrote: | My interpretation of the above comment isn't that software | will always be "bad", more that software will never be | perfect. If software _were_ perfect, then it would scale 1:1 | with the complexity of the problem at hand (no matter how you | define it). No human is perfect; humans write software; | therefore software will be imperfect. | slmjkdbtl wrote: | This notion confuses me, what is the "size" of a problem, is it | not exactly the complexity? Or do they mean the importance of | the problem in the application context. | robertlagrant wrote: | > The only thing that matters in software is the experience of | the user. | | I'm sure the users of Horizon had a great experience with it | while they figured out who to fire. Those who were unjustly let | go may have also wanted to matter to the software creators! | PaulHoule wrote: | It's a mistake to have nostalgia for UNIX. There are many things | it didn't do right and has never done right. | | For instance signals don't make sense for many of the things | they're used for. | | I was highly satisfied with X Windows in 1993 compared to Windows | 3.1 but it seems Windows has gotten better over time but the | Linux desktop has gone in reverse and I can date it to the | introduction of KDE and the very idea that Linux has to have a | "Desktop Environment" as opposed to just "X Windows". (The very | idea that you should allocate enough space for what you're going | to draw in the space seems absolutely foreign to everybody | involved.) | salawat wrote: | Oh my God. I've become this guy. | | I simply do not give a shit about whatever the latest opinionated | framework/tech of the week is. All I've gotten to is the point | where what I really care about is "Can I fit all the necessary | bits and bobs in my head?" The rest is just branding, mind share, | and the cult of complexity. | | Example: Yarn I finally figured out why I hate it. It tries to | "help" you optimize your runtime namespace via hoisting. Causing | higher level builds to create a distinctly different runtime | footprint via hoisting than running each of the lower level | builds individually. | | What. The. Heck. Who wants to inflict that on a user? I don't use | a computer to do things in ways where I have to go through the | torment of cataloging every bad assumption at every level. I'll | take more pessimum, but easier track the reality of over more | optimum, yet opaque any day. | saurik wrote: | What we need to figure out how to do is to inoculate new | developers against ever caring about the latest "opinionated | framework/tech of the week" in the first place :(. | beckman466 wrote: | > What we need to figure out how to do is to inoculate new | developers against ever caring about the latest "opinionated | framework/tech of the week" | | Capital dictates what tech is popular, not actual popularity | or effectiveness. So abolishing Silicon Valley and the global | north IP regime is the only strategy that cuts at the root of | this problem. | sudosysgen wrote: | Ultimately, yes, but good luck ending IP imperialism. It | would force the global north to actually build what it's | consuming instead of extracting rents from intellectual | property. That won't happen. | danellis wrote: | Not making a thousand new "Top 10 Frameworks to Learn in | 2021" videos every week would be a good start. | andrekandre wrote: | probably there are two or three aspects | | 1. most of these things are the "new old thing", and more | experience/education/history would dampen enthusiasm for | these re-hashes of old ideas | | 2. alot of people/tech is on a revenue treadmill (especially | consultants and companies that want to market the new | hotness) so we get bombarded with reinventions of the "flat | tire"... its like junkfoods with new packaging NEW FLAVOUR! | we keep falling for it... | | 3. our jobs as coders can be boring and we look for new toys | for stimulation and make things interesting again... if only | for a little while... | WorldPeas wrote: | same here. if only someone would create a computer from the | bottom up rather than accept our current state of immense | hubris | ironmagma wrote: | The problem there is that reinventing decades-old technology | while believing one can simply shrug off uncounted millions | of hours of technical problems and troubleshooting by doing | so is in fact extreme hubris. Keeping the existing stack is | much more humble. | ironmagma wrote: | FWIW, the new (2+) Yarn does not use hoisting, and you can | disable it on Yarn v1 as well via nohoist: | https://classic.yarnpkg.com/blog/2018/02/15/nohoist/ | jimbob45 wrote: | I get where he's coming from. I'm guessing everyone here has had | a script they wrote for five people balloon into a multi-team | project. People wonder why you, the original author, were so lazy | with your architecture even though you thought it wasn't going to | survive more than a week. | | The problem is that people aren't willing to start over and | rewrite software so you end up trying to bolt on features to an | architecture that can't handle them and the complexity becomes | _necessary_ for the software to function. C++ is the poster child | for this, where the syntax for pure virtual functions is asinine | but necessary because there was no other good way to do it at the | time. If they had just rewritten C++ (and called it, I dunno, D | for example) then they would avoid the complexity entirely. | | I respect Ryan but he comes across as someone ignorant of the | realities of real-world SWE. | sseagull wrote: | > The problem is that people aren't willing to start over and | rewrite software | | If I had to continuously re-write projects in new languages, I | would never get anything done. There are a lot of projects that | we all depend on that are pretty much one-person projects, and | not everyone has time to learn a new language + ecosystem, then | re-write, introduce new bugs, fix those, etc. | | Then of course, the rewrite doesn't always have exactly the | same interface (API or user interface). So now you foist your | new preference on everyone else. Many of them will stay on the | old version, thus fragmenting everything even further. Look how | long python 2 to 3 took (and is still not 100% complete). | | I come from scientific computing, and I have a rant bubbling up | about how modern software development is being pushed into | science, and probably slowing it down as a result. | | I should make a blog post about it, but I guess I would need to | make a blog first :) | causality0 wrote: | Remember back when websites were organized according to a | hierarchy and if you wanted to find, say, all the reviews of MP3 | players you just clicked on the MP3 player section and saw them | all? Now you have to punch terms into a search box and sort | through a massive unorganized list of results, only some of which | are relevant. If you missed something you'll never know about it. | [deleted] | bern4444 wrote: | I had a fun conversation with my brother the other day. He was | working on an R script (given to him by his lab) to perform some | data collection. The script was no longer usable and he had to | rewrite some parts. He was annoyed. | | Most of the time, software is written until it works just well | enough to be just reliable enough to deliver value. And then | abandoned. Engineers move on to solving the next problem using | that previous bit. We only go back and edit that previous bit | once we get to a point that the new thing becomes limited by that | previous bit. That is to say, once we encounter a fundamental | issue of the old bit. | | We can't write 'perfect' code today to build on in the future. We | have no way of knowing what will be built on top until it's | built! At which point we discover the fatal flaws. And then go | back and rewrite. Or design a new language/framework/tool etc | that avoids those issues. So of course this is the pattern. | | Separately, engineer's have become end consumers for software. | And that software is produced by other engineers, who, are also | using software. | | End consumers may not care about how software is made (though | some certainly do, especially once they notice bugs, degraded | performance etc caused by technology decisions etc - see | 1Password's plan to switch to Electron). | | But what's the alternative? How could we otherwise avoid this and | all the other problems Ryan points out. What is the alternative? | Endless rewrites of existing layers with no progress made? | | Editor configurations, file structure, variable names etc don't | affect end users. But they help engineers who help end users. | | Lots of progress is made to 'simplify' processes. But of course, | those simplifications create their own new things that have to be | learned, along with their own issues. And those new things are | usually built on those old bits. | | It's easy to download a docker image today and with a single | command spin up a React project, running its own databases, and | express server and not have to worry about configuring paths, | installing dependencies (the right way), configuring ports etc. | | But now we have to know about Docker. And Docker itself is built | on those old bits. | | If there's a better solution (besides the pedantic write perfect | code) I don't see it. But I'm all ears. | 6510 wrote: | > We can't write 'perfect' code today to build on in the | future. We have no way of knowing what will be built on top | until it's built! | | We have a very good idea what will be built on top compared | with the idea we had 20, 40, 60 years ago. | | At some point we will just have to start from scratch.. | again... and again. The frequency will decline tho. | mathgladiator wrote: | There is one more level where you hate everything, but then | embrace loving the people that make shit. | | I bought a new truck, and after putting 100 miles on it the | transmission started acting strange. I take it in, and they don't | know what is wrong with it. So, they are going to replace the | entire transmission next week. | | Now, I could say "oh, why did I buy that brand" or be like "lolz, | these people are n00bs". Instead, I realize that they are making | something at a massive scale and bad things will happen, so I'll | accept the inconvenience and move on with my life. Shit happens, | and that's life. | | I've hated software for a long time because I value precision and | reliability, but these are exceptionally hard to scale | organizationally. Suppose you fix reliability today, well | tomorrow's feature could just fuck it up. | | Now, I still hate software, but I come at with a mindset that | software is an artifact of a culture which requires nurturing and | love. | runawaybottle wrote: | The melancholy is like that of living in a burgeoning third | world city. It's like, if we just focus on this and that, roads | and water, keep corruption down, we'd have one of the best | cities in the world - as good any other. Our people are good, | but sometimes they can't make sense of traffic laws and crime. | | It's the only city I know, and I often wonder if we just took | care of it, where we'd be. ___________________________________________________________________ (page generated 2021-08-14 23:00 UTC)