Stock Waterman wrote it.
Stock Aitken Waterman. No need to miss out Matt Aitken!
Being less verbose isn't necessarily a good thing.
Definitely agree - sometimes being explicit is better. But this is definitely an area where Java and Go take very different approaches.
More sophisticated concurrency model? Perhaps, I'd say it's more abstracted away so you may not have to worry about it, usually, but that must means it's going to be harder if your problem doesn't fit well in their concurrency model. (Need we discuss Open GL?)
Actually the OpenGL thing is solved fairly easily - but in general this is a valid observation; my point is that Java's approach (with explicit threads, synchronisation etc) is much closer to C's than Go's is.
But where "go" and "Java" differ, they are extremely similar looking when you compare them to "C".
And my point is that's clearly not true - apart from garbage collection, the two languages have relatively little in common; they may both do more abstraction than C, but what they choose to abstract, and how they implement it, is very different.
How does 'The Go Programming Language' compare to 'The C Programming Language'?
About as well as Java compares with "C" and in almost exactly the same ways.
That's doing Go a massive disservice; Go differs from Java in very significant ways. To name but a few:
In fact, apart from having garbage collection, Java and Go are really not that similar (within the realm of somewhat-compiled imperative languages).
Check with Oracle about the terms they use if you want to distribute their Java Virtual Machine in a commercial product. I can assure you it involves you providing them with cash before they will let you even distribute Java, unmodified, as part of your product. I know this from experience. I'll warn you, Java from Oracle does NOT come cheap if you wish to distribute it. Sure they will let you and your customer download it for free, but they want their cut if you download and distribute Java to a customer.
OK, I checked with Oracle, and they said this:
Can I distribute Java with my software?
Yes, you can provide Java with your software provided you abide by the terms and conditions of Java binary code license.
Go is great, and there are definitely advantages to Go's BSD licensing model, but this is not one of them
I wanted TCPv4 with a network prefix and the MAC as the node address. Clients could derive their address automatically from network traffic by picking up the network address from the wire and they already knew their MAC address.
You mean more or less exactly what IPv6 does (in many cases)?
I've written algorithms for machine learning, where I'm constantly doing things like multiplying 0 and infinity. And, depending on the situation it is totally clear what the correct result must be (either 0 or infinity).
But that is the key point - you're right that, in many situations, it makes sense to assign a particular value to 0/0 (and other pathological cases) - but the thing is that the value that needs to be chosen depends critically on the situation at hand. Sometimes 0/0 might need to be treated as 0, sometimes 1, sometimes 42, and sometimes it is indicative of an error. Only the person writing the program can know which value is appropriate for the circumstance, so they must express it explicitly in the program. If programming environments throw an exception in the case of 0/0, it indicates that the programmer has not considered this choice, and that there is therefore a bug; by contrast, choosing one particular value would make some small subset of implementations work, at the expense of making all the others (which needed different values, or an error) give the wrong answer without any indication of a problem.
The names of the notes are do, re, mi, fa, sol, la, si and (upper)do. Stop with your irrelevant, middle school for muricans, notation
Where I'm from (which is not America), the ABC note names are the standard, from beginners to professional musicians. What makes you say the other note names are the definitive ones?
I can understand two or three, but I'm at a loss for how someone could have 6 or more GPS devices. Will someone please explain how it's even possible for a normal person to have that many?
Cellphone (work+personal), tablet, fitness watch, in-car navigation system, (I'm struggling now), child/pet location device?
How does any of this address parent's question ? How can he "do something as simple as changing my DNS servers" ?
The same way as before systemd came on the scene (unless your distro has changed things at the same time - and network settings are something distros do seem to like to move around from release to release - but systemd doesn't, as far as I'm aware, touch the DNS settings at all!)
but for example the american A in words like "cat" and "path" is historic, unlike the British pronunciations which match the a in "father"
You make some interesting points, but you clearly have some very strange ideas about British pronunciation
"So being lazy and using improper English is impolite to the extreme."
Motes and beams, people! If you're going to moan about "improper" English, it's best not to make lots of errors yourself: - you started your sentence with "So". The word you ought to have used was "Thus". - you missed out the comma that should have followed the "So" - the expression is "in the extreme", not "to the extreme" - even had you used "in the extreme", it would still have made for an awkward and inelegant sentence, compared to the obvious alternate of "... is extremely impolite."
Do you have a credible source for any of these so-called rules? In particular:
This because it is Linux or the GNU toolchains that has issues with multiple lib versions (the major source of "dependency hell"), it is the package managers.
Actually the package managers can handle it just fine (well, I know RPM can, and I *think* dpkg/apt can too); usually the problem is that the libraries are packaged in a way that doesn't support this. If two versions of a package share no files (e.g. if you provide "libxyz.so.1.0.0" in one package, and "libxyz.so.1.1.0" in another version of the same package, RPM can handle having both versions of the package installed with no problems at all. This is used, for example, to support having multiple kernel versions installed on RedHat-type systems. What becomes a problem is if you have (say) binaries in the same package, with the same name in each version, but different contents: naturally RPM will report a conflict if you try to install both.
The perversity of nature is nowhere better demonstrated by the fact that, when exposed to the same atmosphere, bread becomes hard while crackers become soft.