34,219 karma · joined March 27, 2011
I don't speak for my employer, obviously. I barely speak for myself half the time.
I blog at https://honeypot.net/
Write me at kirk@strauser.com
1. SO question numbers dropped precipitously before AI came along.
2. AI clearly finished the job.
I took the graph from this very page and annotated it with the public launch of ChatGPT in November 2022.[0] Yes, the decline hastened after that, inarguably. But also, it was already nearly 50% down from its June 2020 local maxima. This is also inarguable.
SO had been flatlined since 2014 and declining since 2017. It dropped off a cliff when, 2.5 years after its 2020 bounce, ChatGPT came along with the death blow. Even then, it looks like 4 months of ChatGPT speed-ran about a year's worth of traffic decline, and then the slope went back to approximately the pre-AI angle.
I contend, and I'm backed by facts, that AI is not what started the avalanche. It killed any slim chance of a comeback, but that wasn't the beginning of the end. The end was already well begun by then.
While AI was probably the last straw, it only hastened the collapse that was already underway.
LLMs are most commonly blamed, but the drop started way before those became popular. I'm confident that its horrid moderation drove people away long before AI had a chance to. Nothing's quite as demoralizing as:
Q: Why does adding two Python objects fails although their classes are compatible?
A: [closed as a duplicate of "Why do people say JavaScript is weakly typed?"]
I'm a reasonably bright person, with scads of StackOverflow fake-karma-Internet-points, but even I gave up trying to ask a question. There just aren't enough hours in the day to fight with hermits seeking the Ultimate Question and downvoting everything else.
Is JOE still your own daily driver, or do you use something else now?
Edit: No we don't oh please god no.
CF was an interesting path. I used the Python equivalent, Zope, extensively back in the day. Both could glue together some really powerful components and allow you to write whole web apps more or less declaratively.
That said, we collectively tried that experiment ("we" includes you, my JBoss compatriots) and realized this is not The Way Forward. That doesn't mean they're valueless, not at all! And it's the sort of experiment you have to try or else it's always going to be nagging at the back of your mind: "what if we tried this... and it was amazing?" But we did try it, and it was not amazing.
If you have to maintain CF or Zope or JBoss today, godspeed. Just know that life is easier elsewhere. It doesn't have to be this way. It's not this way for everyone.
If it comes to pass that you have little ones of your own, please don't let that be something your kids only see in the movies. Make that your own new family tradition.
Well done, Fedora team.
The aftermarket CarPlay adapter I installed in our Toyota is in the latter group. When I climb into the car, the CarPlay UI pops up on the vehicle's screen, ready for me to ask it to do something. Until I do, it does nothing other than show the homescreen with icons on it. A Ford I rented would fire up Music the second I plugged my phone in.
Zero…
There, done. What treatment for ADHD has done for me in the real world is drastically cut my anxiety and stress. Turns out the most challenging parts of my life involved knowing I had to do a thing, or I’d get fired or evicted or sued or such, and being utterly incapable of getting myself to do it until it became a crisis. What a piece of crap I must be, right, for ignoring the things a responsible adult would be doing!
And then I started taking meds for it, and found out I could, just, decide to sit down and gather my tax paperwork, or write that report, or balance the checkbook, even though those things didn’t need to be done for several more weeks. At first, it was utterly liberating. And then it was kinda soul-crushing. I could’ve been living like this the whole time, minus all the stress and self esteem issues and anxiety? And then it was liberating again. Well, bummer life use to be like that, but it’s not anymore, so yay!
And it didn’t do a single thing to my emotions, other than removing about 90% of the anxiety from my life.
(I have to get this in before the inevitable jackass opines: no, life isn’t suddenly “easier because you’re taking meth”. I get no stimulant sensation whatsoever from my dose of Adderall. My morning coffee has a much stronger effect. It just allows me to decide what I should be working on at any given moment, even when no one’s angry at me. It is not an energy booster in any way.)
It feels like the difference between old-timey classical English vs street talk. "Greetings, dearest companion, how fare you this fine Autumnal day?" is a lot of syllables for someone you're familiar with. "Hey! Enjoying the day?" says the same thing, but conversational. There's a time and place for the former, mainly when writing dialog set in 1500 or something. I'd much rather say the latter when bumping into my neighbor at the cofee shop. Similarly, I could see why someone might want to write
Get-ChildItem -Filter *.txt -Force
in a script so that it's clear-ish what that means later, but if I'm spending my time in a terminal, I'd vastly rather learn what ls -la *.txt
means. It's terse to the point of inscrutability, and not beginner friendly at all, but once you type it a few thousand times it's second nature.All things considered, I'll stick to Fish, thanks.
Edit: Related, but once I learned how Unix shells typically expand globs, that feels like the right layer for handling that and similar other things. "ls" doesn't know what a glob is. When you type "ls -la .txt", the shell* expands that into a list of matching files, like "ls -la foo.txt bar.txt baz.txt", then "ls" operates on each one of those in turn. You don't have to teach every program how to interpret globs. The shell has to learn that, once, then every other program automatically benefits from it. Type "echo *.txt" and you'll see the list of matching names. Echo has no idea what that means. It only knows that it got a list of worlds to write out with no idea where it came from. I think Bash/zsh/fish/etc. do this the right way, and that implementing that in every tool is the wrong way. It just feels weird and inefficient and prone to have odd, subtle deifferences.