Hacker News new | past | comments | ask | show | jobs | submit login

What is "better software" though?

On one hand you have guys like the OpenBSD team that work on Mostly Boring Things and making serious inroads at improving software quality of Mostly Boring Components that power the hidden bits of the Internet that go relatively unnoticed.

On the other hand, you have "improvements" from Apple and everyone else that involve an ever-changing shell game of moving around UI widgets perpetuated by UI designers on hallucinogens.

Are these browsers like Chrome that are elaborate ad dispensing machines really improvements from the browsers of yore? IE 4 may have sucked by modern standards but it also didn't forward every URL I visit to Google.

I've been around since the beginnings of the WWW and it's reached the point where I am struggling to understand how to navigate these software "improvements". For the first time I have felt like my elderly parents using technology. I haven't gotten stupider; the software has become more difficult to use. It has now become some sort of abstract art rather than a tool for technologists.




First paragraph: “better at supporting new features.”

Further down, he talks about changing the structure of the software in order to support planned features, etc.

So putting it all together, “better” == more featureful at lower cost with reduced marginal pain (to the developers) of further expansion.

I’d say “better” should mean enabling users to achieve their goals with minimal friction for the user (i.e., program p is designed to allow users do task (or set of tasks) t faster/better/more efficiently/whatever). But of course I would say that, I’m a user of software, not a developer of it.

Consider the notion of a Mac-assed apps. They make life as a Mac user much nicer because they integrate so well with the environment and other native apps. But lo! L unto man was revealed his Lord and Savior Electron. Much nicer for developers than having to port programs across several different native environments. So native goes the way of the dinosaur (with some exceptions, of course). That’s a massively canned just-so story, of course, so don’t take it too seriously as actual analysis.

But the moral of the story is that, as a user, it’s endlessly fascinating to me, watching developers talk about development and how much their focus tends towards making their lives as developers easier, even at the cost of sacrificing users’ experiences and expectations as guiding principles.

Love him or hate him, but it’s one of the things that I appreciate Linus Torvalds for emphasizing occasionally: computers are tools people use in order to get things done (for whatever purposes, including recreation).

(That said: There is an irreducibly human element of play involved here for developers too. And even non-developers can be fascinated by computers in/for themselves, not just as sheer tools you’d ideally not even notice (in the Heideggerian sense of tools ready at hand versus present at hand). I’m one of those outsiders. No shame in it.)


Bad code is hard to read. Good code is easy to change.

That's it, I think. Then you recurse up into architecture.

Bad architecture is hard to follow. (spaghetti code) Good architecture is easy to change.

Yes, this means you can have code that's neither bad (it's easy to read) nor good (but still hard to change). In the past I've called this "lasagna code" - the layers are super clear, and it's easy to follow how each connects, but they're far too integrated to allow for any changes.

It's harder to phrase on the level of "software", but mabye something like:

Bad software is hard to use. Good software does its job and then gets out of the way.


> I've been around since the beginnings of the WWW

Ditto.

> I haven't gotten stupider; the software has become more difficult to use.

I can't speak for you, but I'm becoming less interested in new shiny in a lot of things beyond UI widgets. There's a reason why we olds have a reputation of falling behind, and it's not because engineers and inventors explicitly make things that only young people can learn.


it's not because engineers and inventors explicitly make things that only young people can learn

Are you sure? Replace "young" with "inexperienced" and that's exactly what I see in most new software: the focus is on the broadest userbase possible, which is entry-level products and UIs. Nobody's focusing on making expert tooling, everything is geared towards the lowest common denominator -- because supposedly that's where the money is.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: