Should Be Simple

Living with software

JavaScript to Matchmaking

JavaScript

If you look at JavaScript, the core language it’s easy to argue that many of the changes from 2015 on were poorly designed. Excluding apis, have the core language changes to JavaScript been net positive over the last ten or fifteen years?

Destructured assignment, asynchronous/await, strict mode, import, Set, WeakSet, Proxy, Symbol, private class properties… yeah I’d say the changes have been net positive.

I haven’t wrapped my head around generators. The numeric array types seem unnecessarily painful to work with.

I’d like to see an equals operator that isn’t pathological (=== and == both fail for new Boolean(false)).

I’d like to see runtime type checking that mirrors Typescript where possible and either generates warnings or provides an opt in strict mode throws errors.

TL

The Boolean example is a good one to motivate the original question, as it adds complexity for little, if any, gain:

new Boolean(true) == true  // true, that makes sense :)
new Boolean(true) === true  // false, ok, that's a bit weird, but I can see the logic
new Boolean(true) == new Boolean(true)  // false!?

Ironically, the virtue most extolled by The Good Parts is removal of complicated low-value features; Crockford’s crusade turned around to assault its homeland.

Darkplace

“I’m one of the few people you’ll meet who’ve written more books than they’ve read.”

—Marenghi’s Darkplace, episode 1

When applied to natural language, it’s a joke, but if a programmer said, “I’ve written more programs than I’ve read,” would you bat an eye?


This is one of my favorites programming programming quotes; I wish the post had gotten more attention.

Ouroboros

Instead of setting up your servers with code (Shell Scripts), set up your servers with a gui (Cloud dashboard). Then set up your cloud by writing a pile of code (Infrastructure As Code). Too much? There’s a gui to configure your iac tool. Is the cycle of replacing code with gui and back again eternal?

I think the problem with all dev tools is that the command line is always the backup for things where a ui hasn’t been built. And then you get to a critical mass of tweaks that need to be done with the command line and that gets bundled up as a magic config script and the cycle starts over.

So yeah it seems like an endless cycle which will probably get accelerated by AI.

TL

More generally, the ui doesn’t have to be missing, just harder to find in the moment. Setup for every nontrivial project I’ve worked on includes a mix. Still, I often use command lines whether there’s an equivalent gui or no. Reasons for picking one or the other should make an interesting followup thread.

Matchmaking

Is it just me who thinks the suggested jobs I get from every job search site mostly don’t fit? Why are these matching algorithms so bad?


← Last week


Comments? Write comments@josiahulfers.com

I record comments here when I think they're interesting, and I don't want to lose them in the noise of LinkedIn. If I've misrepresented your comment, tell me.