On the other hand - I'm impressed or even astounded by how people are able to fumble through life and still end up in good situations and circumstances.
Because if there is one thing we've learnt about programming languages, it is: throw enough features at a language and it gets transformed from bad to good.
> This isn't that different from most other languages.
Based on what people tend to complain about, some languages have more should-be-avoided parts than others. I guess no language is perfect... but that is so obvious that it doesn't need to be mentioned. Yeah, no language is perfect. But it's still interesting to see which ones are the least "perfect".
I don't get this tendency to want to muddy the waters with appeals to "nothing is perfect". Nothing is perfect, but some things sure seem to suck 5 times or more than other things.
(For that matter - it actually does seem like there are languages where you at least don't have to actively avoid parts of the language. Maybe they're not the best or currently the ones which are recommended, but it's not like people say that you should avoid them because they might trip you up in a weird way.)
But what features does JS have that no other language has, other than the ubiquity of the browser as a platform? JS has been mostly frozen ever since it was created in the mid 90s and you also don't have much to work with when it comes to the standard library.
Oh damn, I didn't know they were the same person. All I knew about him beforehand is from watching this video[1], but it's weird to read about a person and then find out that they also were the same person that you knew from somewhere else.
[1] (How Scala [Typesafe] is doing "everything wrong")
> Working memory has been likened to a mental scratch pad: you use it to keep relevant data in mind while you’re completing a task. (Imagine a cross-examination, in which a lawyer has to keep track of the answers a witness has given, and formulate new questions based on them.)
Isn't it weird that we have to use auxiliary,learned tools as an analogy to how an innate tool works, and not the other way around? It's not like we don't have a lot of experience with thinking and forgetting, ourselves.
> And makes your code 20% longer, which makes for a lot of extra fun not-really-so-cost-free-after-all maintenance.
Just 20%? Sounds like a good deal, considering those that brag that brag that "over half of our code base are just tests!". I don't know if that kind of thing is fashionable or widespread any more, though.
Some people - who do understand type systems - only think of static type systems as type systems. And in that regard they might look at "dynamically typed langauges" as having "weak type systems", since they are often just unityped (only have one type).
I agree to a degree, though some things are at least confined to a certain dimensions: like strong/weak typing. A continuum more than a binary distinction, but at least you can say things like "stronger" and "weaker" than something else.
(Note that I wrote "weak type system", not "weak typing". "Weak" here is a just a generic adjective, and not meant to be precise.)
> This is an argument for unit tests, not for a statically typed language.
> Type errors tend to be very few and far between compared to logic errors.
The divide between type errors and logic errors is entirely dependent on the language and the discipline/inclination of the developers. In some languages, what you might think of as "logic errors" can easily be moved to "type errors". And in that regard, the difference between what is unit testable and statically typeable is also entirely dependent on the language and the discipline/inclination of the developer. So what might have to be expressed as unit tests in one language, might be checked by the static type system in another language.
But I can understand how some people might think that static type systems are only for catching things like "error: expected addition of integers, but got attempt at adding an integer with a FireTruck". ;)
> As we've reported before, there is a lot of evidence to suggest that until the late 17th Century people did not sleep in one long uninterrupted stretch, but in two segments, separated by a period of one or two hours in which they prayed, read, chatted, had sex, smoked, went to the toilet or even visited neighbours.
> That may be more natural than the current tendency to sleep - or try to - in one stretch.
Just because people did it up until very recently doesn't necessarily say anything about whether it is healthy or not. Up until very recently we didn't have electricity, which meant that we were more limited when it comes to what we could do at certain hours of the day-night cycle.
The fact that people did it up until very recently says that people were able to survive reasonably well with that lifestyle, as a species. But "healthy" is more than that: you can live an unhealthy lifestyle, reproduce, maybe even help raise your grandchildren, and die at 60 of cancer or some heart-related disease.
The other side of the coin is that: just because we can, doesn't mean that we should! Just because we can stay up until 3 am and read books or stuff on the Web, doesn't mean that it is good for us. Maybe some restraint might be in order.