Yeah, except for the facts that the leaky bolts that were the primary source of consternation last year (?) weren't part of the Chinese-built part of the bridge.
For someone who laments the failure of modern programmers to learn from the work of the past, the author seems to completely ignore the contributions of ML, ML-style type systems, and related languages to the profession of software engineering. Perhaps this explains the snide (and, frankly, uninformed) dismissal of Swift as a hype-ridden "subset of Lisp".
Aside from that, I agree with the author's points.
I think an interesting life is important. I also think, though, that many people lead far more interesting lives than they realize. Some people are better than others at noticing and extracting the interesting parts of what would otherwise be humdrum everyday tedium.
I don't remember any ad hominem attack, you appear to be inventing something. I was being flippant granted, but that's after the most frustrating year of my career, which is 90% Swift annoyances.
True, but perhaps not practically relevant. The pattern matching in Swift isn't much better than what you would get with a tagged C union, which is why no one really uses it very heavily. The Optional type in Swift gets a lot of special compiler support, which is indicative of the fact that the broader language isn't very friendly towards using ADTs to structure data.
But you're right, I should have clarified in my comment that Swift does have a basic degree of support for ADTs.
I don't know what kind of Swift code you're writing, but you're very, very wrong when you say "no one really uses it heavily". Pattern matching is in fact quite powerful and is used heavily in any codebase that isn't simply a straight porting of Obj-C idioms.
> The Optional type in Swift gets a lot of special compiler support
Only the ?. optional chaining operator (and technically the ! postfix operator too, though that could have been implemented in the standard library instead of being special syntax and in fact I'm not really sure why it isn't just a stdlib operator). And probably some logic in the switch exhaustiveness checker so it knows nil is the same as Optional.none. Everything else (including the actual pattern matching against the "nil" keyword) is done in a way that can be used by any type, not just Optionals (nil for pattern matching specifically evaluates to a stdlib type called _OptionalNilComparisonType which implements the ~= operator so it can be compared against any Optional in a switch, and you could do the same for other ADTs too, assuming they have a reasonable definition for nil).
What a great summary of the utter baseness of this type of advertising: a stomach-turning body horror image I never wanted to see, some article calling strangers "morons" based on some stupid superficiality, and gossip about the private lives of strangers that is, quite frankly, none of my business.
That being said, if these companies vanished tomorrow it wouldn't be a complete positive either, since the fine sociopaths of the advertising industry would simply use the resultant vacuum to come up with something even more contemptible. Fuck that industry.
"Advanced manufacturing requires management and communication skills and the ability to operate complex information-based factories" is meaningless consultant jargon. It would have been better to explain exactly what about advanced manufacturing makes it so special that it requires 'management' and 'communication' skills that the managers and workers in non-advanced factories apparently lack. Meanwhile, "ability to operate complex information-based factories" is almost a tautology. Maybe talk about industrial IOT, or what specialized skills are necessary to efficiently operate a factory full of robots, or _something_?
I'm not particularly enthused with how the code was presented. Here's a marginally more readable version of the first large snippet that still doesn't exceed 77 (or 79) characters in width: