– Tony Hoare, quoted at https://spectrum.ieee.org/lean-software-development
@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.
@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.