Live data from Hacker News

Why software sucks?

scottberkun.com

51–60 of 82 posts

Re: Why software sucks?

#51
post #46

A little while ago I overhead a conversation between some friends of mine, one of whom is an interior designer who does residential remodeling: a: "We always tear out everything, down to the rafters." b: "That sounds expensive." a: "It can be, especially if you find out the wiring or something isn't up to code." b: "What if someone wants only---" a: "No, there's no 'only'." In my experience, if programmers always had…

In my experience, if programmers always had a complete design specification before starting, and if we always "tore up" the old mess (down to something unquestionably stable) before making any improvements, our software would be much, much better. It'd probably also cost more. And by the time the software was done, it'd be useless. A house doesn't get obsolete in ten years, but software - which is much more complex t…

I often hear that but it is no true in my experience. Maybe your run-of-the-mill flavour-of-the-month hipster web 2.0 app has a limited shelf life but most enterprise apps stay deployed for years.

Re: Why software sucks?

#52
post #36

Software sucks because too often developers fail to learn what the software is supposed to do. Developers trivialize things and interpret them in far "superior" ways that lead to huge gaps of "they never told us". Development has to move from just coding, to learning to first understand what details are being managed, and how those details interact in a system in all the stages the details/data exist. If we believe e…

So in summary: When you have a great idea, translate your intended statement of "we can improve things by doing X instead of Y" to the question "why are you doing Y?".

And again: Paper prototyping. Sticking an interactive bit of paper in front of a user is an effective and inexpensive way to get him to explain the holes in your great idea, and you can adapt it there and then and maybe come up with something that fixes the problem that you were hoping to solve, without creating a ton of other issues.

Re: Why software sucks?

#53
post #11
post #10

Earlier quoted context omitted.

On automatic website refreshing: See guidelines 97 and 98 from Jakob Nielsen and Marie Tahir's book 50 Websites Deconstructed [1] for the primary reason why there has been little interest in removing the "refresh" button from browsers. Technical limitations don't really exist (and if they do exist it'd be fairly easy to solve). Server-sent events[2] and WebSocket[3] are already implemented in the latest versions of p…

Yes but none of these things existed in 1993. You can call it "lazy" I suppose that TBL didn't implement all the features you take for granted 20 years later before releasing the first browser(!)

It's lazy when your platform still has mandatory polling decades after interrupt driven programming was invented.

Re: Why software sucks?

#54

Earlier quoted context omitted.

In my experience, if programmers always had a complete design specification before starting, and if we always "tore up" the old mess (down to something unquestionably stable) before making any improvements, our software would be much, much better. It'd probably also cost more. And by the time the software was done, it'd be useless. A house doesn't get obsolete in ten years, but software - which is much more complex t…

I often hear that but it is no true in my experience. Maybe your run-of-the-mill flavour-of-the-month hipster web 2.0 app has a limited shelf life but most enterprise apps stay deployed for years.

But is it because the needs haven't changed a bit, or because it's good enough and it'd cost too much to replace it? Because if software was always tored out, that would only accentuate the latter problem.

Re: Why software sucks?

#55
post #11

Earlier quoted context omitted.

Yes but none of these things existed in 1993. You can call it "lazy" I suppose that TBL didn't implement all the features you take for granted 20 years later before releasing the first browser(!)

It's lazy when your platform still has mandatory polling decades after interrupt driven programming was invented.

Interrupts are not without drawbacks. There are valid reasons to not implement them, particularly on the web.

Re: Why software sucks?

#56
post #43

Earlier quoted context omitted.

Dev time, you say. Well let me tell you a story. I am quite into 8-bit, I like buying micros from the 80s as junk and fixing them up. Recently, my old lady and I wanted a spreadsheet to track days off, vacations and so on. I could have done it on the quad-core, 8G Mac in Excel or online with Google Docs... But I actually did it in ViewSheet on a BBC Micro. So dev time, well the last THIRTY YEARS of dev time haven't g…

And today I walked a mile from my grandmother's to my house. The last HUNDRED YEARS of car manufacturing haven't gotten me any anything I didn't have already.

A car could get you there faster, or dryer in the rain, or carrying more stuff. But there's not much Excel can do for the vast majority of users who just want a table with a few dozen records, that ViewSheet (or the granddaddy of them all VisiCalc) can't. Same with wordprocessing.

Re: Why software sucks?

#57

Earlier quoted context omitted.

It's lazy when your platform still has mandatory polling decades after interrupt driven programming was invented.

Interrupts are not without drawbacks. There are valid reasons to not implement them, particularly on the web.

So, WebSockets are a mistake then?

Re: Why software sucks?

#58
post #45

Here are some thoughts I'd put into the mix. 1. Software that is built to deadline will decay, even if the developers are good. That doesn't mean that an occasional deadline is the end, but if a long-term "deadline culture" sets in, get out. A long-standing deadline-oriented culture means you should be looking to jump to another project or company before the maintenance phase starts, because (1) the maintainers will…

I'd be curious to hear why you're so anti-IDE: do you have extensive experience working in Java with a good IDE like IntelliJ? I've heard this "IDE's are to help mediocre programmers be mediocre" argument before, but it's so alien to my experience with IntelliJ (which I've used every day for about 10 years now) that there's nearly no way to reconcile that argument with my personal experience. When I'm writing C or Ja…

Regarding IDEs: I completely agree with you. And I say this as someone who's used Emacs and REPL for 10 years.

I find that I am generally faster in development (at least with new libraries) in Java, than I used to be in Ruby and Python. This is all thanks to the "discovery" ability of IDEs. (I admittedly never tried a Python or Ruby IDE.)

And I have the same feeling regarding refactoring. It is not merely limited to renaming a method. I find myself very often making major structural changes to my code. Moving packages around, introducing interfaces, changing type signatures. In this regard working with an IDE makes me feel like a "software architect", I get a big-picture of the project in a much faster and better way than I used to with purely a text editor.

I also feel I waste no time on boiler-plate code (which admittedly Java has a lot of). In Netbeans (I am sure it's the same in Eclipse and IDEA) the code generation abilities are terrific. For instance, I can just write "class C implements Interface", press Alt+Enter+Enter and see all interface methods written out and ready for me to fill in the implementation.

Regarding the REPL: I've found that with strict typing, I just end up knocking out the code that _I think_ should work, and then I test if it works. I can sometimes type for 200-300 lines without running the code, then test it and see that it actually works. Of course, sometimes it fails too: luckily Java debugging is easy and incredibly capable.

However, if you really want a Java REPL, you can have something a little bit similar with BeanShell (you can even embed it into NetBeans).

Re: Why software sucks?

#59

Earlier quoted context omitted.

Interrupts are not without drawbacks. There are valid reasons to not implement them, particularly on the web.

So, WebSockets are a mistake then?

Websockets are like airplanes: useful, but not for daily commuting.

Re: Why software sucks?

#60
post #56

Earlier quoted context omitted.

And today I walked a mile from my grandmother's to my house. The last HUNDRED YEARS of car manufacturing haven't gotten me any anything I didn't have already.

A car could get you there faster, or dryer in the rain, or carrying more stuff. But there's not much Excel can do for the vast majority of users who just want a table with a few dozen records, that ViewSheet (or the granddaddy of them all VisiCalc) can't. Same with wordprocessing.

Except many of those users don't want just a table with a few dozen records - they want that plus a couple of small features. And the real problem is that they don't want the same couple of features. Hence, you end up with huge beasts to support each combination.

For example, what if you want to use your spreadsheet when you're not home? Never happened to you? Well, it happened to others.

Post reply on HN