[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)