Incentives
Incentives rule the world.
Incentives rule the world.
I hate to criticize an organization as wonderful as Mozilla, but I must say, Proton is the company I wish Mozilla had become. We need an alternative to Google, a suite of competing web applications that put users first and protect privacy. Proton is accomplishing exactly that.
You get what you measure.
If cost is fixed and you measure speed, you'll get speed, but not quality. If cost is fixed and you measure quality, you'll get quality, but not speed. If you measure page views or ad impressions, your company may become a clickbait factory. If you measure messages sent within your app, your app might begin boosting outrageous content that makes people argue all the time. (Yes, I'm talking about social media.) If you're a bank and you measure account openings, your employees just might commit fraud to “get those numbers up.”
Incentives rule the world. If you decide to incentivize something by making a measurement a goal, be sure you understand the unintended consequences. Better yet, don't make a measurement a goal at all. As they say, “when a measure becomes a target, it ceases to be a good measure.” In other words, when a metric becomes a goal, people will inevitably game the system, and you might be surprised by what they do to “win.”
“Why are there different programing languages?”
An acquaintance once asked me this shortly after taking an online programming course. I said something about how any given language can be better or worse at solving a particular problem. French is great for poetry, and Haskell is great at representing algorithms and mathematical functions.
Nonsense!
Well, no, not completely. It's true. It's just not the whole story. Consider Python and Ruby. Why do we need both? Yes, yes, sure, there are important differences, but in the grand scheme of things, are they really that different? Hardly. They're both dynamic scripting languages which work well for web development. We could save a lot of time and energy by deprecating one and only using the other.
For that matter, why do we need Billy Joel and Elton John? They're not that different. They both play piano, they both write pop songs, and they both tour internationally. Talk about a waste of recourses! We could really save a lot of time and effort by having them join forces.
Does anyone think that would work? Of course not. Elton John doesn't want to sing “Scenes from an Italian Restaurant” and Billy Joel doesn't want to sing “Tiny Dancer.” Billy Joel doesn't care about fashion and Elton John doesn't care about Long Island. They don't want to work together!
In the same way, Guido van Rossum thought it would be fun to create Python, and Yukihiro Matsumoto thought it would be fun to create Ruby. Millions of programmers like using blocks and millions of others love **kwargs. Who are we to disagree with them? Do we really think they would be equally productive doing something they don't enjoy?
Music is not a utilitarian matter, and neither is computer programming. Software development is an art as much as it is a science. When we forget that, we miss some of our most important opportunities.
A bottle of red, a bottle of white It all depends on your appetite
People are package deals; you take the good with the confused. In most cases, strengths and weaknesses are two sides of the same coin.
—Steve Jobs
I just read John Gruber's blog post recommending Kagi as a replacement for Google Search when it occurred to me, for the hundredth time in the last year… what the hell happened to anti-spam efforts at Google Search?
I met Matt Cutts once in 2011. He was very kind, and he explained to me that he worked to combat search engine spam at Google. At the time, I didn't really understand what he was talking about, but boy do I understand now. Perhaps that's the best compliment I could have given him; few notice anti-spam efforts when things are going well.
Matt Cutts has since left Google, and now, I get lots of results which provide very little value. What a shame. Apparently, Google needed him more than he needed Google.
I'm an AI maximalist. Over time, I expect AI to become much, much more capable than most people imagine. In time, I expect AI will be able to do anything a human being can do, and much faster. AI will not be able to directly manipulate the physical world, of course, but with some initial support from human beings, it will be able to build robots that can.
That's not to say I'm an accelerationist or optimist. That's another issue entirely, and I don't know exactly how I feel about it. I tend to believe AI will probably do immense harm to humanity in the long run, however, either intentionally or unintentionally. I'm not confident enough in that view to change my behavior in any way, and even if I were, I wouldn't know what to do about it. Superintelligent AI is coming, and there doesn't seem to be any way to stop it.
In any case, I do expect that AI will soon replace almost all human knowledge workers. How soon is “soon”? It's hard to say. We may need a revolution in AI technology, not an evolution, to get there. LLMs may not be enough. Still, if the AI takeover of knowledge work takes 100 years, I would be very surprised. If it takes 5 years or less, I'd be only modestly surprised. I'd guess there's about a 50% chance of it happening before 2050.
My reasoning is straightforward. I don't believe intelligence requires a human brain, computers are much faster than human beings, and the first company to develop a superintelligent AI is going to make a tremendous amount of money. The race is on.
I've heard the argument that AI will only complement human beings, forging partnerships that are greater than the sum of their parts. I consider that wishful thinking. Consider chess.com, which provides an analysis of each game after it's completed, identifying mistakes and suggesting better moves. It's a huge asset to the platform, and it's one reason people pay for premium memberships. Is chess.com tempted to hire human beings to do this work? Of course not. Computers are vastly better at chess, they are incredibly fast, and they are much more cost effective, not needing sleep, health insurance, bathroom breaks, or team-building exercises. Yes, there are some human commentators at highly-publicized matches, but for the millions of other games played on the platform each day? Hell no. The machines do it, and why shouldn't they? It's a “no brainer.”
Get ready for the same thing to happen to software engineering, media production, accounting, and just about everything else that largely involves transforming information.
What happens after that? Only time will tell.
There should be an app, browser, browser add-on, or some other tool called Deshittify which does everything accomplished by uBlock Origin, Pi-hole, Unhook, DeArrow, SponsorBlock, Fakespot (which is now discontinued), ClearURLs, and more, with reasonable defaults and in one convenient package. God, that's a long list. For those who aren't familiar with those tools, they block ads, trackers, addictive designs on YouTube, fake reviews, and more. The web is a mess.
If anyone wants to steal this idea—not that the idea is all that original—please, go right ahead. Mozilla, Brave, someone: do this!
I enjoy the craft of computer programming, the endless desire to solve problems better than I did last time. I may enjoy it more than any other aspect of my job, and it’s served me well in my career. I’ve become a good programmer. I may even be a very good programmer. I don't know. I’m not sure I can make that distinction myself.
Is that enough? I don’t know. In all commercial art, the artist needs to sacrifice some amount of beauty and perfection to pay the bills. (I don't mean for that to sound too pretentious, but I do think of software development as art, or at least much more like art than most people imagine.) Too many sacrifices, though, and the work becomes painful. Where's the line? How much should one allow it to move? I don’t know.
I've been rewriting my Neovim configuration in Lua to take advantage of the built-in LSP client, leverage mini.nvim as much as possible, and use more modern plugins in general. I honestly struggle to understand why the process is so much fun. Maybe it's that perfect balance of challenge and relaxation, novel and familiar. It feels like playing a good video game.
In any case, as enjoyable as it's been, it has only cemented my view that Helix is the future of terminal-based code editing, at least for those who like modal editors. Setting up Neovim for feature parity with Helix is a monumental effort, requiring many, many hours of work. I can't imagine most people being crazy enough to do it, unless of course they find it intrinsically enjoyable. That said, given what I know about the Vim and Neovim communities, a surprising number of people besides me do find it intrinsically enjoyable.