256 karma · joined August 28, 2023
I suspect it’s a couple of things. A new generation of programmers are hitting the scene, wanting to do things in new ways. Not inherently good or bad, but the new tools sure usually are at least very _pretty_, and have a lot of affordances and usability improvements over the ancient tools that can never be changed for the sake of compatibility. Rust and Go make this nicer, and are the languages de jour with good cli ecosystems and performance characteristics around them.
I genuinely do like most of my replacements. ripgrep for grep, eza for ls, zoxide for cd, fd for find, podman for docker, and a few more. Developer tooling is a rich and interesting space to be in, but there’s plenty of bandwagons I’m not getting on, like this or zellij for tmux, or jj for git.
More specifically, with the (also ironically gummed up in tc39) type syntax [1], and importantly node introducing the --strip-types option [2], TS is only ever going to look more and more like standards compliant JS.
Beautiful charts, shame it looks defunct now.
Attempts to control the toads have been going on for decades, yet their advance has accelerated. In the tropics, they now travel up to 70km westward every wet season, compared with 10km when they first arrived. They are thus poised to enter some of Western Australia’s most treasured ecological areas.
Toad biologists call this acceleration the Olympic Village effect. It is a superb example of evolution in action. Only the most athletic toads make it to the invasion front, where they breed. Over the generations, toads on the front have thus developed larger size, longer legs and even an urge to travel in a single direction.
[1] https://economist.com/science-and-technology/2025/01/22/gene...
I was pretty surprised and impressed to see a modern example lately. There’s Record data types, stronger type inference with `var`, pretty great structural pattern matching, switch expressions (that return a value), stream apis for map, filter, and reduce etc. All of these move it further away from strictly OOP.
And separate but still cool is a pretty neat virtual thread system too. Java has definitely had a bit of a glow up since I learned it in uni.
For one of the best work projects I’ve done, I used Redux-Saga. It was so elegant for a heavily live-updating ui app. Using coroutines for making API requests, watching sockets, sending and receiving updates, and reacting to data conflicts felt so natural and all just came together so beautifully.
The term he uses for “turning functions inside out” is spot on for how they feel. In particular, the way a good coroutine only focuses on the pure state, while being independent of side effects and even time itself really expanded my view of code. It made testing and reasoning about logic so much easier too. It’s a model I really wish was more widespread in languages and the industry.
And I totally agree, space-set en dashes are vastly superior to em. I dislike the way it connects the word more closely to the word in the next clause than the phrase itself.
E.g. He left—no explanation. Vs. He left – no explanation.
To me, left—no feels like a weird gluing together than a separator for a different section.
Webpages being rendered framebuffers would be terrible for consistency and accessibility. All the logic for layout computation, responsive design, font rendering, and literally thousands of other things browser have developed over the decades would go out the window.
But on the topic of multi-architecture, that’s really what web assembly is. I’d be surprised if it didn’t continue too become more important, it looks like it’s escaping the browser and into backend apps and server code too.
However… CSS features are a W3C specification and are an early stage [1]. It’s a process that vendors draft and agree on and can terminate.
On top of that I wouldn’t characterise improving css with functions isn’t a _churnful trendchasing_. If anything this will improve accessibility because it’ll be easier to manage size, colour, and motion preferences with better abstractions than media queries everywhere.
Of particular note is that the JS arrow function becomes a real arrow ⇒, which is nicer than the operator-ish rendering of equals and a greater than sign. Other quality of life improvements are reshaping ripples of characters to be clearer, such as a reshape to www and **. Triple bar equals is nice too given the differences in JS.
> It’s Mitch, your PM. He’s asking the url for a doc he wrote
Boy that’s too real. Really reminds me of the comic from a decade ago about programmer focus [1].
But welcome to the world of Note taking, I agree it’s like a superpower once you develop the habit. Obsidian is fantastic, but even daily markdown notes are great. The whole “second brain” idea hasn’t panned out for me, but a hotkey to jump to today’s note, and another insert the current time has been a mainstay of my workflow for years now.
I don’t know if they get what the seven means there.
A lot of the suggestions here are things VS Code has been incrementally adding as visual guides over time though. For example the way VS Code highlights other instances of the same symbol (variable/function name) under the cursor goes a long way to address the specific Import, Argument, Type, and Exception cases listed in the article.
Combined with heat maps for test coverage and git commit recency in the gutter, I am skeptical that switching out syntax highlighting on demand (I.e keyboard shortcuts I’m assuming) would be ergonomic and viable.
That said, I love that there’s thinking in this space on how to improve the visual comprehension of code. There still are plenty of crutches I use, such as expanding the selection along the syntax tree (⌃⇧⌘→ on Mac) just to trace all the parenthesis and braces in JS/TS – I don’t find the rainbow braces very useful at all.
> WGS 84 is a global standard tied to no one plate. In essence, it is fixed to Earth’s deep interior.
Those drift vectors are based on GPS, which the article also says relies on WGS 84z
I’m curious if there’s a tl;dr on how this is better or different to Fuse, which is a very popular established client side fuzzy searching library.
Granted the `@function` and `var(--variable)` syntax is as clunky as ever, but it’s still distinctly not JS in any way.
The zero flag stores a status from the last instruction the cpu ran, which the jump cpu instructions then reference to affect what happens to code execution. This logic is the most basic form of conditionals, and underpins the implementations of higher level flow control like if statements and loops.
I’d guess that this relationship between Z and jumping is where it comes from. As for Baulders Gate I have no idea, but lean to that being a coincidence.