Around the web
Now that the JS people and the non-JS people agree that JS needs to go, maybe we can do something about it. I actually like JS-the-language well enough, but like many 90s or earlier languages you have to keep a set of rules in your head like "don't use this keyword" (I personally am OK with using
this keyword but plenty of JS devs find that problematic too) and "this operation will yield nonsensical results".
npm, forget being able to understand your software bill of materials or to audit your project for security or license compliance.
In this thread, GeePaw Hill contextualises the introduction of TDD to explain why it didn’t have the impact it could have. This sort of analysis is crucial, and often lacking: ideas often succeed or fail not (only) because they are good or bad but (also) because something else was happening at the time.
Hill notes, among other factors, that personal computing was “done” at TDD o’clock and that SaaS was just getting started. This changed both the community’s receptiveness to TDD, and the extent to which it could make a difference.
Most of the promises of cryptocurrency turn out to be bogus: it doesn’t function well as a store of value, it doesn’t function well as a medium of exchange, and it doesn’t typically function well as an unregulated liberal market either. Finally the cryptanarchists’ stopped watches are correct: although maybe it’s a bit of a stretch to hear “you can make whatever trades you want free from state interference” and accept “a state can make whatever trades it wants free from your interference” as a valid implementation.
I’m going to take a rare step outside the authorial voice here and assert some credential authority. While I am indeed quite negative on cryptocurrency, it comes from a position of open-mindedness and research. I was in a bitcoin working group at a previous employer, and attended (without submitting the coursework) Stanford’s CS251 course. I’m in tech communities where people rag on things they don’t like from a self-professed position of ignorance, and I don’t think that this lends itself to quality discussion, so I just wanted to make the claim that I have actually engaged with this topic.
Consider hiring people who can read your existing code. As you’ll find out in this month’s De Programmatica Ipsum, I think this is a really important skill.
This looks like a really useful exercise to go through. There are many great resources online and many useful contributions one could make, as long as we are being intentional about it.
Everybody’s favourite language that is actually used by people gets a new version.
Any memory management approach—with the exception of full automatic garbage collection—leaks into the interfaces you provide (full automatic garbage collection merely leaks into the implementations). If you're lucky, this can be indicated by machine: what you're getting back here is a shared pointer, drop the reference when you're done and everything will be well.
If you're moderately lucky, then it will be indicated by convention: if you see the word
init in a method name, you're taking ownership of the return value. But of course in many cases you're unlucky and you just have to read the documentation to work out what to do.