“There are two methods in software design. One is to make the program so simple, there are obviously no errors. The other is to make it so complicated, there are no obvious errors.”
– Tony Hoare, quoted at https://spectrum.ieee.org/lean-software-development
Why Bloat Is Still Software’s Biggest Vulnerability

A 2024 plea for lean software

IEEE Spectrum
@mike the situation is obviously bad. But it’s so bad I don’t think it can be fixed by improving current software. Maybe some from-scratch devices that radically rethink software could find a niche and expand.
@john I am impressed by my relatively small (so far) experience with #GoLang. Everything about it feels neat and tight, including — crucially — the culture.

@mike yeah, I’ve been vaguely considering picking up Go. Two things stop me:

1. Curly braces.

2. Static typing. I mean, I’m not against that philosophically, I just haven’t got the experience to work quickly in statically type languages.

Oh, and of course the whole “programming isn’t your job, get back to painting, idiot” voice in my head.

@john 1. It's silly to be put off by curly brackets. You're not silly, so stop this :-)

2. Static typing: Go is the least bondage-and-discipline language I know for this. In Java you're always typing things like

static const public SomeType mySongType = new SubType();

whereas in Go it would be

s := makeSubType()

and the compiler will figure out the rest. All the static typing does it prevent you making silly mistakes like accidentally assigning an HTTPSession to a WebSession.

@mike 1. May I be struck down for this, but I care what programming languages look like, and I like minimal syntactic noise. Python is nice*, Go is not.

Go is not as bad as Javascript or Rust, so I will consider.

*I think this is why Python has “won” among non-professional programmers.

@john Python looks nice, yes.That ain't nothing. But it's also not, you know, A LOT.

@mike I sway between having to concede this point, and thinking that for my purposes, readability is by far the most important thing.

Python has some. problems in this area though, because it hasn’t been disciplined enough in constraining syntax. Seems like Go might have a lid on that.

@john Yes, Go has a very well-defined The Right Way to format code.

The opposite, of course, is Perl, whose cookbook contains this sentence:

Never write $$a[$i] when you mean ${$a[$i]} or @$a[$i] when you mean @{$a[$i]}. Those won't work at all.

@mike heh, yeah, Perl!

Go seems pretty Grug, which my be the best thing.

@john @mike Python is nice only on the first glance. It becomes uglier and uglier the more you do with it.
@ronix @john For one reason and another, it's the one mainsteam language I've never used at all, so I have no experience to base this on ... but I have always had a suspicion that the surface pleasantness of the syntax might quickly become much less pleasant when writing non-toy programs.