Files
davideisinger.com/static/archive/nolanlawson-com-8xt5ob.txt
David Eisinger 6d514985be links
2025-05-10 23:35:57 -04:00

1135 lines
52 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[1]Read the Tea Leaves Software and other dark arts, by Nolan Lawson
[2][Search this Blog ] Search
• [4]Home
• [5]Apps
• [6]Code
• [7]Talks
• [8]About
« [9]Goodbye Salesforce, hello Socket
2 Apr
AI ambivalence
Posted April 2, 2025 by Nolan Lawson in [10]Machine Learning, [11]NLP. [12]24
Comments
Ive avoided writing this post for a long time, partly because I try to avoid
controversial topics these days, and partly because I was waiting to make my
mind up about the current, all-consuming, conversation-dominating topic of
generative AI. But Steve Yegges [13]“Revenge of the junior developer” awakened
something in me, so lets go for it.
I dont come to AI from nowhere. Longtime readers may be surprised to learn
that I have a masters in [14]computational linguistics, i.e. I studied this
kind of stuff 20-odd years ago. In fact, two of the authors of the famous [15]
“stochastic parrot” paper were folks I knew at the time Emily Bender was one
of my professors, and Margaret Mitchell was my lab partner in one of our
toughest classes (sorry my Python sucked at the time, Meg).
That said, I got bored of working in AI after grad school, and quickly switched
to general coding. I just found that “feature engineering” (which is what we
called training models at the time) was not really my jam. I much preferred to
put on [16]some good coding tunes, crank up the IDE, and bust out code all day.
Plus, I had developed a dim view of natural-language processing technologies
largely informed by my background in (non-computational) linguistics as an
undergrad.
In linguistics, we were taught that the human mind is a wondrous thing, and
that Chomsky had conclusively shown that humans have a natural language
instinct. The job of the linguist is to uncover the hidden rules in the human
mind that govern things like syntax, semantics, and phonology (i.e. why the “s”
in “beds” is pronounced like a “z” unlike in “bets,” due to the voicing of the
final consonant).
Then when I switched to computational linguistics, suddenly the overriding
sensation I got was that everything was actually about number-crunching, and in
fact you could throw all your linguistics textbooks in the trash and just let
gobs of training data and statistics do the job for you. “Every time I fire a
linguist, the performance goes up,” as [17]a famous computational linguist
said.
I found this perspective belittling and insulting to the human mind, and more
importantly, it didnt really seem to work. Natural-language processing
technology seemed stuck at the level of [18]support vector machines and [19]
conditional random fields, hardly better than the Markov models in your iPhone
2s autocomplete. So I got bored and disillusioned and left the field of AI.
Boy, that AI thing sure came back with a vengeance, didnt it?
Still skeptical
That said, while everybody else was either reacting with horror or delight at
the tidal wave of gen-AI hype, I maintained my skepticism. At the end of the
day, all of this technology was still just number-crunching brute force
trying to approximate the hidden logic that Chomsky had discovered. I
acknowledged that there was some room for statistics Peter Norvigs essay
mentioning [20]the story of an Englishman ordering an “ale” and getting served
an “eel” due to [21]the Great Vowel Shift still sticks in my brain but
overall I doubted that mere stats could ever approach anything close to human
intelligence.
Today, though, philosophical questions of what AI says about human cognition
seem beside the point these things can get stuff done. Especially in the
field of coding (my cherished refuge from computational linguistics), AIs now
dominate: every IDE assumes I want AI autocomplete by default, and I actively
have to hunt around in the settings to turn it off.
And for several years, thats what Ive been doing: studiously avoiding
generative AI. Not just because I doubted how close to [22]“AGI” these things
actually were, but also because I just found them annoying. Im a fast typist,
and I know JavaScript like the back of my hand, so the last thing I want is
some overeager junior coder grabbing my keyboard to mess with the flow of my
typing. Every inline-coding AI assistant Ive tried made me want to gnash my
teeth together suddenly instead of writing code, Im being asked to
constantly read code (which as everyone knows, is less fun). And plus, the
suggestions were rarely good enough to justify the aggravation. So I abstained.
Later I read Baldur Bjarnasons excellent book [23]The Intelligence Illusion,
and this further hardened me against generative AI. Why use a technology that
1) dumbs down the human using it, 2) generates hard-to-spot bugs, and 3)
doesnt really make you much more productive anyway, when you consider the
extra time reading, reviewing, and correcting its output? So I put in my
earbuds and kept coding.
Meanwhile, as I was blissfully coding away like it was ~2020, I looked outside
my window and suddenly realized that the tidal wave was approaching. It was
2025, and I was (seemingly) the last developer on the planet not using gen-AI
in their regular workflow.
Opening up
I try to keep an open mind about things. If youve read this blog for a while,
you know that Ive sometimes espoused opinions that I later completely
backtracked on my post from 10 years ago about [24]progressive enhancement is
a good example, because Ive almost completely swung over to the progressive
enhancement side of things since then. My more recent [25]“Why Im skeptical of
rewriting JavaScript tools in faster languages” also seems destined to age
like fine milk. Maybe Im relieved I didnt write a big bombastic takedown of
generative AI a few years ago, because hoo boy.
I started using Claude and Claude Code a bit in my regular workflow. Ill skip
the suspense and just say that the tool is way more capable than I would ever
have expected. The way I can use it to interrogate a large codebase, or
generate unit tests, or even “refactor every callsite to use such-and-such
pattern” is utterly gobsmacking. It also nearly replaces StackOverflow, in the
sense of “it can give me answers that Im highly skeptical of,” i.e. its not
that different from StackOverflow, but boy is it faster.
Heres the main problem Ive found with generative AI, and with “vibe coding”
in general: it completely sucks out the joy of software development for me.
Imagine youre a Studio Ghibli artist. Youve spent years perfecting your
craft, you love the feeling of the brush/pencil in your hand, and your lifes
joy is to make beautiful artwork to share with the world. And then someone
tells you gen-AI can [26]just spit out My Neighbor Totoro for you. Would you
feel grateful? Would you rush to drop your art supplies and jump head-first
into the role of AI babysitter?
This is how I feel using gen-AI: like a babysitter. It spits out reams of code,
I read through it and try to spot the bugs, and then we repeat. Although of
course, as [27]Cory Doctorow points out, the temptation is to not even try to
spot the bugs, and instead just let your eyes glaze over and let the machine do
the thinking for you the [28]full dream of vibe coding.
I do believe that this is the end state of this kind of development: “giving
into the vibes,” not even trying to use your feeble primate brain to understand
the code that the AI is barfing out, and instead to let other barf-generating
“agents” evaluate its output for you. Ill accept that maybe, maybe, if you
have the right orchestra of agents that youre conducting, then maybe you can
cut down on the bugs, hallucinations, and repetitive boilerplate that gen-AI
seems prone to. But whatever youre doing at that point, its not software
development, at least not the kind that Ive known for the past ~20 years.
Conclusion
I dont have a conclusion. Really, thats my current state: ambivalence. I
acknowledge that these tools are incredibly powerful, Ive even started
incorporating them into my work in certain limited ways (low-stakes code like
POCs and unit tests seem like an ideal use case), but I absolutely hate them. I
hate the way theyve taken over the software industry, I hate how they make me
feel while Im using them, and I hate the human-intelligence-insulting
postulation that a glorified Excel spreadsheet can do what I can but better.
In one of his podcasts, Ezra Klein said that he thinks the “message” of
generative AI (in [29]the McLuhan sense) is this: “You are derivative.” In
other words: all your creativity, all your “craft,” all of that intense
emotional spark inside of you that drives you to dance, to sing, to paint, to
write, or to code, can be replicated by the robot equivalent of [30]1,000
monkeys typing at 1,000 typewriters. Even if its true, its a pretty dim view
of humanity and a miserable message to keep pounding into your brain during 8
hours of daily software development.
So this is where Ive landed: Im using generative AI, probably just “dipping
my toes in” compared to what maximalists like Steve Yegge promote, but even
that little bit has made me feel less excited than defeated. I am defeated in
the sense that I cant argue strongly against using these tools (they bust out
unit tests way faster than I can, and can I really say that I was ever
lovingly-crafting my unit tests?), and Im defeated in the sense that I can no
longer confidently assert that brute-force statistics can never approach the
ineffable beauty of the human mind that Chomsky described. (If they cant,
theyre sure doing a good imitation of it.)
Im also defeated in the sense that this very blog post is just more food for
the AI god. Everything Ive ever written on the internet (including here and on
GitHub) has been eagerly gobbled up into the giant AI [31]katamari and is being
used to happily undermine me and my fellow bloggers and programmers. (If you
ask Claude to generate a “blog post title in the style of Nolan Lawson,” it can
actually do a pretty decent job of mimicking my shtick.) The fact that I wrote
this entire post without the aid of generative AI is cold comfort nobody
cares, and likely few have gotten to the end of this diatribe anyway other than
the robots.
So theres my overwhelming feeling at the end of this post: ambivalence. I feel
besieged and horrified by what gen-AI has wrought on my industry, but I can no
longer keep my ears plugged while the tsunami roars outside. Maybe, like a lot
of other middle-aged professionals suddenly finding their careers upended at
the peak of their creative power, I will have to adapt or face replacement. Or
maybe my best bet is to continue to zig while others are zagging, and to try to
keep my coding skills sharp while everyone else is “vibe coding” a monstrosity
that I will have to debug when it crashes in production someday.
I honestly dont know, and I find that terrifying. But there is some comfort in
the fact that I dont think anyone else knows whats going to happen either.
Related
24 responses to this post.
1. ●
Posted by [32]Miguelito on [33]April 2, 2025 at 10:49 AM
This is a profound essay just as an essay, but it makes a very important
point about the future. Everyone is asking “what now”. You have answered “I
am defeated”. That is one step on the path to an answer. The first response
would seem to be to limit the usage of AI… That wont work. Someone else
will use it. Then limit it from creating art, reserve that for humans.
Thats better but doesnt say much about what humans should do. All through
Western history, the society has been oriented around a civilization driven
by caste based occupations. Our identity has come from our work. Before
that, we identified as a hunter, or fisher or stone lapper,… What now?
Ahhh, I think I may have the answer. You see, Ive been studying this
question for over 50 years… how humanity can adapt genetically and
strategically to a post tribal ecology. Im best at biology, but when
studying survival I realized that a lot of the answer exists in philosophy,
something crowded out by STEM. (Science is great for creating wealth and
power, but not so good for providing understanding.) I have long looked for
the answer and may have found a key … meme: In terms of biology, the
purpose of an individual is to survive. That means many things including
the survival of civilization, which human survival depends on.
Now that may not seem like the solution, but it is another step on the way.
That is biology converted to philosophy, a survival strategy. It is a step
on the path to answering. That leaves the path open for finding answers in
the future.
[34]Reply
2. ●
Posted by classyswiftly1d8dff3178 on [35]April 2, 2025 at 11:23 AM
can I really say that I was ever lovingly-crafting my unit tests?
More so than most, at least!
[36]Reply
3. ●
Posted by Theodore Brown on [37]April 2, 2025 at 11:54 AM
Thank you for writing this! Its pretty close to my own thinking and
experience.
The fact that I wrote this entire post without the aid of generative AI
is cold comfort nobody cares
Maybe Im in the minority, but I actually care a lot about this. Whenever I
see people posting things that were spit out by an LLM, thats when I dont
care. I dont have the slightest interest in reading the “thoughts” of
generative AI, since there isnt really any creative thinking in it. Its
just a derivative of the prompt, training data, and model weights. I am
very interested in reading original content that comes from the reasoning
of a human mind. Thats what has the potential for novel ideas and
innovations.
[38]Reply
4. ●
Posted by Manuel Jasso on [39]April 2, 2025 at 12:11 PM
Great post, Nolan, I felt very connected and I am sure youre representing
a large number of developers. I also see myself as a skeptic, and I have
another dimension to offer to your dissertation: I think “intelligence” is
an overloaded term and we need to always use a qualifier. With this, there
is evidence that “artificial intelligence” resembles “human intelligence”,
but I think only time will tell how close they are or if they can be
considered “the same”. As a skeptic, I dont think we understand “human
intelligence” really, and we get excited that “artificial intelligence” is
sooooo close! And I will add that, from my perspective, “human
intelligence” is only possible in “biological beings”, and in this area we
really have no idea how to “make” one…
[40]Reply
□ ●
Posted by [41]Nolan Lawson on [42]April 2, 2025 at 2:26 PM
Thanks, Manuel! I agree that the “intelligence illusion” is one of the
things that muddies the debate. I do not think these tools approach
human intelligence, but Im also not sure it matters. A plane doesnt
flap its wings like a bird, but it still flies. But I do think there is
an [43]“Eliza effect” here that is multiplying the hype and
expectations.
[44]Reply
5. ●
Posted by adamtreineke on [45]April 2, 2025 at 1:48 PM
Im also defeated in the sense that this very blog post is just more
food for the AI god.
Patrick Mackenzies (patio11) take on this, paraphrased somewwhat because I
dont remember quite where he said it: “Writing today lets you modify the
weights of all AI models going forward.”
I love the implication that my 17 years of Reddit and Twitter posts are
making the AI gods a little funnier, a little more sarcastic, and a bit
more respectful, patient and thoughtful. (And bestow a tendency to write
140 character sentences and misuse commas.)
I do appreciate the lack of generative AI while authoring this. I think you
either said once (or I saw it on a blog post) that writing was a way of
really working through ideas. That really stuck with me and there is a
respect and confidence that I have as a reader when I see that someone has
wrestled with an idea versus just copy/pasted whatever their prompt decided
was appropriate.
Thanks Nolan!
[46]Reply
6. ●
Posted by Keen on [47]April 2, 2025 at 1:50 PM
This well echoes my own background and experience and feelings about “AI”.
Ambivalence is the right word. Ive once tried a vibe coding tool and just
felt overwhelmed with the idea of *maintaining* the monstrosity it spat out
(presumably were going to see VibeOps and VibeSec and VibePhishing on
their way). I do find llms useful in small portions, used sparingly and
with only the context I explicitly allow it to see. But I shudder at the
idea of just telling the computer to make a site that should handle logins
and personal data and navigate the GDPR landscape and be maintainable
across 10 years of javascript framework updates.
[48]Reply
7.
Posted by [49]Kerricks Wager: on the Future of Manual Programming -
Kerrick Long's Blog on [50]April 2, 2025 at 5:57 PM
[…] cannot know whether Steve Yegge is right or wrong, and I do not know
enough to make a prediction. If the future of productivity is agentic
software […]
[51]Reply
8. ●
Posted by [52]Kerrick Long on [53]April 2, 2025 at 5:57 PM
Maybe, like a lot of other middle-aged professionals suddenly finding
their careers upended at the peak of their creative power, I will have
to adapt or face replacement. Or maybe my best bet is to continue to
zig while others are zagging, and to try to keep my coding skills sharp
while everyone else is “vibe coding” a monstrosity that I will have to
debug when it crashes in production someday.
I honestly dont know, and I find that terrifying. But there is some
comfort in the fact that I dont think anyone else knows whats going
to happen either.
I dont know either, but [54]Im taking a “Pascals Wager” approach to it.
Im going to learn to use these tools so that if Yegge is right Ill still
have a job in software. But learning these new skills wont dull my
existing software repertoire, so if Yegge is wrong all Ive lost are a few
nights and weekends, and some cash fed into the token-generating machines.
[55]Reply
9. ●
Posted by [56]nevf on [57]April 2, 2025 at 11:08 PM
I love writing software and have been doing it for a very long time. There
is joy and immense satisfaction seeing what you type on the keyboard come
to life on the big or small screen.
In fact the older I get the more I enjoy the entire process. Im also into
Gym, Golf, Swimming etc. and these activities keep my body active and
strong. It is however the practice of writing software and developing
applications that keeps my brain incredibly healthy and provides a good
balance to my physical pursuits.
Id be very surprised if AI wouldnt help be be more productive and likely
produce better code. However I dont have the interest or wherewithal to
get on board. Let me make my own mistakes, continue my journey learning new
things, instead of wasting brain cells trying to work out what is wrong
with AI generated code or how it does what it is supposed to do.
I hark back to the days of Visual Basic, which opened a whole new world to
people to write code and apps. We got so much crapware that finding the
quality apps was a challenge.
Look at the AI written articles, most of which are regurgitated random
content with often contradictory information. A complete waste of time and
ink. Here we go again!
I have no doubt that the plethora of AI apps that apparently took only two
days to write and are selling like hotcakes, fall into the same Visual
Basic category of days gone by. Eventually these folks will learn that the
life of software developer doesnt come that easily. Or then again maybe
Im just too old and stuck in my ways to be able to drink the latest and
greatest kool aid.
BTW Nolan, great post.
[58]Reply
10. ●
Posted by bebraw on [59]April 3, 2025 at 12:50 AM
Ive been thinking about the same thing. Its definitely a different field
with the advent of the new AI based tools and it must be quite different to
arrive to the field now than just a few years ago. I hope the development
doesnt erode deep thinking skills as youll need those to solve hard
problems. All of the work cannot be outsourced to the current solutions.
[60]Reply
11. ●
Posted by [61]Stolzenhain on [62]April 3, 2025 at 7:21 AM
Great article and great job at describing the actual vibes at hand. Your
arguments shed light on other aspects like playful education.
Programming feels less engaging, and is less likely to attract new talent
with the latter not being welcomed by:
“Look, Y is happening because of X, you can do it yourself, you have the
tools at hand.”
but rather
“As an experienced programmer I have little insight myself as to why Y
happens when prompted for X.”
[63]Reply
□ ●
Posted by [64]Nolan Lawson on [65]April 3, 2025 at 9:50 AM
Thats a good point I hadnt considered! Yes, its like the difference
between Bob Ross empowering people to draw “happy little clouds” and
having an AI just draw the art for you. The latter is likely to attract
people for whom the art is just a stepping stone to something else
(maybe more art! but probably not brushstrokes).
[66]Reply
12. ●
Posted by [67]Jakub Fiala on [68]April 3, 2025 at 2:48 PM
THANK YOU for writing this article, you have pretty much summed up how Ive
been feeling throughout this strange period.
One thought that helped me cope was about cooking. I know people who have
more or less stopped cooking, because they live in a big city where a
delivery service will take 20 min to bring you delicious fresh food that
you couldnt possibly have cooked yourself, and it will only cost about
2-3x what the ingredients would. Yes, we have the technology as Steve
Yegge would say, the future is now. Plus, this way, youve saved lots of
time you can now spend…
… at this point a LLM would probably go on to say “being productive” or
“relaxing” or “making art”. Those are all things Id love to do! I can
definitely afford to eat takeaway almost every day, or at least have the
groceries delivered, so I asked myself why do I still make 3 meals a day
almost every day of the week?
I think the answer is simply that I like it. Maybe Im sticking to the “old
ways”, maybe Im wasting time, Im definitely being very inefficient if you
look at it mathematically. I just cant help doing things I like, which
include cooking, JavaScript, solving problems, reading and understanding,
thinking… I like thinking! Its the last thing Im going to outsource.
Affordable food delivery has existed for years, but even wealthy people
still choose to cook at home. I think something similar might happen with
this alleged “tsunami” of agents.
[69]Reply
13. ●
Posted by [70]dan on [71]April 4, 2025 at 5:48 AM
Maybe this will bring some solace: [72]https://serce.me/posts/
2025-31-03-there-is-no-vibe-engineering
[73]Reply
14. ●
Posted by 4zmite on [74]April 5, 2025 at 12:52 AM
I recognized the feeling from a moment in my youth. Back then, I loved
playing the game “UFO: Enemy Unknown.” The game involved building a global
defense network to ward off an alien invasion. Building bases, researching
new technologies, and buying weapons were all part of the strategy
mechanics. At the same time, I was beginning to explore how software was
built. Using a hex editor and a disassembler, I would pick apart things to
see how they worked. This was another kind of game that I thoroughly
enjoyed. One day, it hit me: the amount of money I had in the game must
somehow be stored in the save files! I could use my hex editor to change
it.
Sure enough, my plan worked. I awarded myself a generous donation, and for
a few hours, I was thrilled. I could buy all the cool stuff I couldnt
afford before and I had no problem fending off the pesky alien invasion.
Aliens were no match for my hex editor.
The next day, I stopped playing the game. It wasnt fun anymore. It left me
unsatisfied. Sure, I would win every time, but I didnt enjoy it. Not only
that, even playing without cheating lost its shine. Why bother playing when
I knew there was an easier way to win?
Excerpt from [75]https://4zm.org/2025/04/05/bitter-prediction.html
[76]Reply
15. ●
Posted by [77]Marc on [78]April 5, 2025 at 2:47 AM
I was also very skeptical of AI and similarly surprised at how it can
predict the code I want to write. True the code is often wrong but I can
pick that up quickly. The real benefit is that it saves me hours of
googling and trawling stack overflow (whose search, by the way, sucks
badly). Tyoe your stack overflow question into chatgpt first and bam!
[79]Reply
16. ●
Posted by Mark S on [80]April 5, 2025 at 10:53 PM
Please dont give in. “You must use it or get left behind” is not real,
its marketing. Its like Nathan Fielders doink-it. You dont need to buy
a toy to prove youre not a baby. And you dont need to get locked into
tools your boss will have to pay $200 a month for, because the company who
made them is losing billions a year.
Theyve ruined search results, theyre ruining the environment, they have
no respect for human creativity, nor creators themselves. They dont care
about your license. They dont care about your infra costs and will DoS you
in a heartbeat, no matter what you put in robots.txt. GenAI companies want
to extract value from us, repackage it and sell it. Its disgusting.
Its not true that nobody cares that you didnt use AI for this post. I
care, and many other people care in the comments. Another human made an
effort to create something? How wonderful! Its very different from
excretions of LLMs. And what if the models get so good we wont be able to
tell the difference? What if they get better than humans at this? Well,
humans still play and watch chess. In fact, its more popular than ever.
Keep being human. Please. Cheers
[81]Reply
□ ●
Posted by [82]Nolan Lawson on [83]April 6, 2025 at 8:07 AM
Thanks for the kind words. Ive never found the environmental argument
against gen-AI very strong, mostly because I havent seen strong
evidence that its worse for emissions than anything else in computing,
or heck, [84]anything else in general (having a child seems to be the
worst thing you can do by far).
The idea that a small group of advocates can abstain from gen-AI and
stop the momentum of the current boom also seems pretty unlikely to me
at this point this is the metaphor I gave of plugging my ears while a
tidal wave threatens to hit my house. GitHub says [85]92% of developers
are using AI coding tools; the effect on the industry seems pretty
guaranteed at this point.
That said, I respect your decision not to use a technology if you find
it distasteful. Im a vegetarian partly for ethical and environmental
reasons, although I have no illusion that what Im doing is anything
but a drop in the bucket compared to the worlds soaring demand for
meat. Same with why I prefer to ride my bike or bus rather than drive
whenever possible. Sometimes you have to do things because you know
theyre right, not because theyll make a big difference. Gen-AI just
hasnt reached that level of urgency for me.
[86]Reply
17.
Posted by [87]March 2025 month notes | Echo One on [88]April 13, 2025 at
3:08 PM
[…] AI Ambivalence a more sober assessment of the impact and utility of the
current state of AI-assisted coding and a piece that resonated with me for
asking the question about whether this iteration of coding retains the same
appeal […]
[89]Reply
18. ●
Posted by [90]AI에 대한 양가적 감정: 열광과 회의 사이에서 균형 찾기 - AI
Sparkup on [91]April 13, 2025 at 7:30 PM
[…] AI ambivalence | Read the Tea Leaves Nolan Lawson […]
[92]Reply
19. ●
Posted by joshuapinter on [93]April 29, 2025 at 11:31 AM
try to keep my coding skills sharp while everyone else is “vibe coding”
a monstrosity that I will have to debug when it crashes in production
someday.
Thats honestly my hope and intention too. I have about 10 years left in my
programming career and I hope theres still value in what we bring to the
table during this time and for the next decades to come after that.
It cant all just boil down to derivative work. Unless AI starts creating
new libraries, languages and concepts, theres always going to be a need
for trend setters and trail blazers.
Good luck. To all of us.
[94]Reply
20. ●
Posted by jhnnns on [95]May 2, 2025 at 3:08 AM
Great read! It perfectly summarizes my feelings about coding and AI :)
However, I recently changed my mind about AI when I discovered the joy of
using agents for doing tedious refactoring work. For me, the fun of coding
is not typing. What motivates me most is seeing when functions and data
mesh perfectly like a cogwheel. And AI can help me a lot with that, as long
as certain coding standards are met.
In the end, it also boils down to the question if you just care about the
output of the software or also about the code behind it. The former works
for short-term, low-stakes projects, but I doubt that itll work for
mission-critical code. AI can generate mission-critical code, but you need
to read and understand it. And it often also requires fixing and improving.
[96]Reply
21. ●
Posted by ohay on [97]May 2, 2025 at 1:31 PM
well said
can sympathize
ambivalences a perfectly appropriate response to a tidal waves
inevitability (why this is manufactured inevitability is another
question~)
some thoughts triggered by your post:
reminds me of the web and how it felt like there was such an artificially
produced need, and also a sense of inevitability and a sea change (i
mean: who really needed to email someone across the country a picture?). it
was a huge solution that created its own demand after the fact. the ai
(the commercially available aspect) has that feel
the other thing that came to mind for some reason: ai developments
probably quite…hampered by whatever philosophical criteria and conscious or
unconscious decisions by the early planners underly all this. so whatevers
involved that anthropomorphicizes the goals and mechanisms will also,
inevitably, cause some of these dynamics you describe. we (collectively)
didnt need to make such a close competitor
probably not describing the thought too well but good post, and thanks
for sharing!
[98]Reply
Leave a comment [99]Cancel reply
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
Δ[ ]
This site uses Akismet to reduce spam. [107]Learn how your comment data is
processed.
Recent Posts
• [108]AI ambivalence
• [109]Goodbye Salesforce, hello Socket
• [110]2024 book review
• [111]Avoiding unnecessary cleanup work in disconnectedCallback
• [112]Why Im skeptical of rewriting JavaScript tools in “faster” languages
About Me
Photo of Nolan Lawson, headshot
I'm Nolan, a programmer from Seattle working at Socket. All opinions are my
own. Photo by Cătălin Mariş.
Archives
• [113]April 2025 (1)
• [114]January 2025 (1)
• [115]December 2024 (2)
• [116]October 2024 (2)
• [117]September 2024 (3)
• [118]August 2024 (1)
• [119]July 2024 (1)
• [120]March 2024 (1)
• [121]January 2024 (1)
• [122]December 2023 (4)
• [123]August 2023 (2)
• [124]January 2023 (2)
• [125]December 2022 (1)
• [126]November 2022 (2)
• [127]October 2022 (2)
• [128]June 2022 (4)
• [129]May 2022 (3)
• [130]April 2022 (1)
• [131]February 2022 (1)
• [132]January 2022 (1)
• [133]December 2021 (3)
• [134]September 2021 (1)
• [135]August 2021 (6)
• [136]February 2021 (2)
• [137]January 2021 (2)
• [138]December 2020 (1)
• [139]July 2020 (1)
• [140]June 2020 (1)
• [141]May 2020 (2)
• [142]February 2020 (1)
• [143]December 2019 (1)
• [144]November 2019 (1)
• [145]September 2019 (1)
• [146]August 2019 (2)
• [147]June 2019 (4)
• [148]May 2019 (3)
• [149]February 2019 (2)
• [150]January 2019 (1)
• [151]November 2018 (1)
• [152]September 2018 (5)
• [153]August 2018 (1)
• [154]May 2018 (1)
• [155]April 2018 (1)
• [156]March 2018 (1)
• [157]January 2018 (1)
• [158]December 2017 (1)
• [159]November 2017 (2)
• [160]October 2017 (1)
• [161]August 2017 (1)
• [162]May 2017 (1)
• [163]March 2017 (1)
• [164]January 2017 (1)
• [165]October 2016 (1)
• [166]August 2016 (1)
• [167]June 2016 (1)
• [168]April 2016 (1)
• [169]February 2016 (2)
• [170]December 2015 (1)
• [171]October 2015 (1)
• [172]September 2015 (1)
• [173]July 2015 (1)
• [174]June 2015 (2)
• [175]October 2014 (1)
• [176]September 2014 (1)
• [177]April 2014 (1)
• [178]March 2014 (1)
• [179]December 2013 (2)
• [180]November 2013 (3)
• [181]August 2013 (1)
• [182]May 2013 (3)
• [183]January 2013 (1)
• [184]December 2012 (1)
• [185]November 2012 (1)
• [186]October 2012 (1)
• [187]September 2012 (3)
• [188]June 2012 (2)
• [189]March 2012 (3)
• [190]February 2012 (1)
• [191]January 2012 (1)
• [192]November 2011 (1)
• [193]August 2011 (1)
• [194]July 2011 (1)
• [195]June 2011 (3)
• [196]May 2011 (2)
• [197]April 2011 (4)
• [198]March 2011 (1)
Tags
[199]accessibility [200]alogcat [201]android [202]android market [203]apple
[204]app tracker [205]benchmarking [206]blobs [207]boost [208]bootstrap [209]
browsers [210]bug reports [211]catlog [212]chord reader [213]code [214]contacts
[215]continuous integration [216]copyright [217]couch apps [218]couchdb [219]
couchdroid [220]developers [221]development [222]emoji [223]grails [224]html5
[225]indexeddb [226]information retrieval [227]japanese name converter [228]
javascript [229]jenkins [230]keepscore [231]listview [232]logcat [233]logviewer
[234]lucene [235]nginx [236]nlp [237]node [238]nodejs [239]npm [240]
offline-first [241]open source [242]passwords [243]performance [244]pinafore
[245]pokedroid [246]pouchdb [247]pouchdroid [248]query expansion [249]
relatedness calculator [250]relatedness coefficient [251]s3 [252]safari [253]
satire [254]sectioned listview [255]security [256]semver [257]shadow dom [258]
social media [259]socket.io [260]software development [261]solr [262]spas [263]
supersaiyanscrollview [264]synonyms [265]twitter [266]ui design [267]ultimate
crossword [268]w3c [269]webapp [270]webapps [271]web platform [272]web sockets
[273]websql
Links
• [274]Mastodon
• [275]GitHub
• [276]npm
[277]Blog at WordPress.com.
• [278] Comment
• [279] Reblog
• [280] Subscribe [281] Subscribed
□ [282] [favic] Read the Tea Leaves
Join 1,280 other subscribers
[283][ ]
Sign me up
□ Already have a WordPress.com account? [290]Log in now.
□ [291] [favic] Read the Tea Leaves
□ [292] Subscribe [293] Subscribed
□ [294]Sign up
□ [295]Log in
□ [296] Copy shortlink
□ [297] Report this content
□ [298] View post in Reader
□ [299]Manage subscriptions
□ [300]Collapse this bar
[b]
References:
[1] https://nolanlawson.com/
[4] https://nolanlawson.com/
[5] https://nolanlawson.com/apps/
[6] https://nolanlawson.com/code/
[7] https://nolanlawson.com/talks/
[8] https://nolanlawson.com/about/
[9] https://nolanlawson.com/2025/01/18/goodbye-salesforce-hello-socket/
[10] https://nolanlawson.com/category/machine-learning/
[11] https://nolanlawson.com/category/nlp-2/
[12] https://nolanlawson.com/2025/04/02/ai-ambivalence/#comments
[13] https://sourcegraph.com/blog/revenge-of-the-junior-developer
[14] https://www.compling.uw.edu/
[15] https://dl.acm.org/doi/10.1145/3442188.3445922
[16] https://en.wikipedia.org/wiki/Endless_Fantasy
[17] https://en.wikiquote.org/wiki/Fred_Jelinek
[18] https://en.wikipedia.org/wiki/Support_vector_machine
[19] https://en.wikipedia.org/wiki/Conditional_random_field
[20] https://norvig.com/chomsky.html
[21] https://en.wikipedia.org/wiki/Great_Vowel_Shift
[22] https://en.wikipedia.org/wiki/Artificial_general_intelligence
[23] https://illusion.baldurbjarnason.com/
[24] https://nolanlawson.com/2016/10/13/progressive-enhancement-isnt-dead-but-it-smells-funny/
[25] https://nolanlawson.com/2024/10/20/why-im-skeptical-of-rewriting-javascript-tools-in-faster-languages/
[26] https://carly.substack.com/p/everything-is-ghibli
[27] https://pluralistic.net/2024/10/30/a-neck-in-a-noose/
[28] https://vibemanifesto.org/
[29] https://en.wikipedia.org/wiki/The_medium_is_the_message
[30] https://www.youtube.com/watch?v=loMEF18Ir4s
[31] https://en.wikipedia.org/wiki/Katamari_Damacy
[32] http://zagwap.com/Bio/index.html
[33] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237911
[34] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237911#respond
[35] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237912
[36] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237912#respond
[37] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237913
[38] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237913#respond
[39] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237914
[40] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237914#respond
[41] http://nolanlawson.com/
[42] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237917
[43] https://en.wikipedia.org/wiki/ELIZA_effect
[44] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237917#respond
[45] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237915
[46] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237915#respond
[47] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237916
[48] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237916#respond
[49] https://kerrick.blog/articles/2025/kerricks-wager/
[50] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237918
[51] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237918#respond
[52] http://kerrick.blog/
[53] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237919
[54] https://kerrick.blog/articles/2025/kerricks-wager/
[55] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237919#respond
[56] http://nevf.wordpress.com/
[57] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237920
[58] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237920#respond
[59] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237922
[60] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237922#respond
[61] https://studioagenturbuero.com/
[62] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237923
[63] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237923#respond
[64] http://nolanlawson.com/
[65] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237924
[66] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237924#respond
[67] https://fiala.space/
[68] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237925
[69] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237925#respond
[70] http://itswebtechtime.wordpress.com/
[71] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237926
[72] https://serce.me/posts/2025-31-03-there-is-no-vibe-engineering
[73] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237926#respond
[74] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237928
[75] https://4zm.org/2025/04/05/bitter-prediction.html
[76] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237928#respond
[77] http://cawoodm.wordpress.com/
[78] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237930
[79] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237930#respond
[80] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237931
[81] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237931#respond
[82] http://nolanlawson.com/
[83] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237932
[84] https://iopscience.iop.org/article/10.1088/1748-9326/aa7541
[85] https://github.blog/news-insights/research/survey-reveals-ais-impact-on-the-developer-experience/
[86] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237932#respond
[87] http://rrees.me/2025/04/13/march-2025-month-notes/
[88] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237935
[89] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237935#respond
[90] https://aisparkup.com/posts/1201
[91] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237936
[92] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237936#respond
[93] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237939
[94] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237939#respond
[95] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237942
[96] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237942#respond
[97] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#comment-237943
[98] https://nolanlawson.com/2025/04/02/ai-ambivalence/?replytocom=237943#respond
[99] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020#respond
[107] https://akismet.com/privacy/
[108] https://nolanlawson.com/2025/04/02/ai-ambivalence/
[109] https://nolanlawson.com/2025/01/18/goodbye-salesforce-hello-socket/
[110] https://nolanlawson.com/2024/12/30/2024-book-review/
[111] https://nolanlawson.com/2024/12/01/avoiding-unnecessary-cleanup-work-in-disconnectedcallback/
[112] https://nolanlawson.com/2024/10/20/why-im-skeptical-of-rewriting-javascript-tools-in-faster-languages/
[113] https://nolanlawson.com/2025/04/
[114] https://nolanlawson.com/2025/01/
[115] https://nolanlawson.com/2024/12/
[116] https://nolanlawson.com/2024/10/
[117] https://nolanlawson.com/2024/09/
[118] https://nolanlawson.com/2024/08/
[119] https://nolanlawson.com/2024/07/
[120] https://nolanlawson.com/2024/03/
[121] https://nolanlawson.com/2024/01/
[122] https://nolanlawson.com/2023/12/
[123] https://nolanlawson.com/2023/08/
[124] https://nolanlawson.com/2023/01/
[125] https://nolanlawson.com/2022/12/
[126] https://nolanlawson.com/2022/11/
[127] https://nolanlawson.com/2022/10/
[128] https://nolanlawson.com/2022/06/
[129] https://nolanlawson.com/2022/05/
[130] https://nolanlawson.com/2022/04/
[131] https://nolanlawson.com/2022/02/
[132] https://nolanlawson.com/2022/01/
[133] https://nolanlawson.com/2021/12/
[134] https://nolanlawson.com/2021/09/
[135] https://nolanlawson.com/2021/08/
[136] https://nolanlawson.com/2021/02/
[137] https://nolanlawson.com/2021/01/
[138] https://nolanlawson.com/2020/12/
[139] https://nolanlawson.com/2020/07/
[140] https://nolanlawson.com/2020/06/
[141] https://nolanlawson.com/2020/05/
[142] https://nolanlawson.com/2020/02/
[143] https://nolanlawson.com/2019/12/
[144] https://nolanlawson.com/2019/11/
[145] https://nolanlawson.com/2019/09/
[146] https://nolanlawson.com/2019/08/
[147] https://nolanlawson.com/2019/06/
[148] https://nolanlawson.com/2019/05/
[149] https://nolanlawson.com/2019/02/
[150] https://nolanlawson.com/2019/01/
[151] https://nolanlawson.com/2018/11/
[152] https://nolanlawson.com/2018/09/
[153] https://nolanlawson.com/2018/08/
[154] https://nolanlawson.com/2018/05/
[155] https://nolanlawson.com/2018/04/
[156] https://nolanlawson.com/2018/03/
[157] https://nolanlawson.com/2018/01/
[158] https://nolanlawson.com/2017/12/
[159] https://nolanlawson.com/2017/11/
[160] https://nolanlawson.com/2017/10/
[161] https://nolanlawson.com/2017/08/
[162] https://nolanlawson.com/2017/05/
[163] https://nolanlawson.com/2017/03/
[164] https://nolanlawson.com/2017/01/
[165] https://nolanlawson.com/2016/10/
[166] https://nolanlawson.com/2016/08/
[167] https://nolanlawson.com/2016/06/
[168] https://nolanlawson.com/2016/04/
[169] https://nolanlawson.com/2016/02/
[170] https://nolanlawson.com/2015/12/
[171] https://nolanlawson.com/2015/10/
[172] https://nolanlawson.com/2015/09/
[173] https://nolanlawson.com/2015/07/
[174] https://nolanlawson.com/2015/06/
[175] https://nolanlawson.com/2014/10/
[176] https://nolanlawson.com/2014/09/
[177] https://nolanlawson.com/2014/04/
[178] https://nolanlawson.com/2014/03/
[179] https://nolanlawson.com/2013/12/
[180] https://nolanlawson.com/2013/11/
[181] https://nolanlawson.com/2013/08/
[182] https://nolanlawson.com/2013/05/
[183] https://nolanlawson.com/2013/01/
[184] https://nolanlawson.com/2012/12/
[185] https://nolanlawson.com/2012/11/
[186] https://nolanlawson.com/2012/10/
[187] https://nolanlawson.com/2012/09/
[188] https://nolanlawson.com/2012/06/
[189] https://nolanlawson.com/2012/03/
[190] https://nolanlawson.com/2012/02/
[191] https://nolanlawson.com/2012/01/
[192] https://nolanlawson.com/2011/11/
[193] https://nolanlawson.com/2011/08/
[194] https://nolanlawson.com/2011/07/
[195] https://nolanlawson.com/2011/06/
[196] https://nolanlawson.com/2011/05/
[197] https://nolanlawson.com/2011/04/
[198] https://nolanlawson.com/2011/03/
[199] https://nolanlawson.com/tag/accessibility/
[200] https://nolanlawson.com/tag/alogcat/
[201] https://nolanlawson.com/tag/android-2/
[202] https://nolanlawson.com/tag/android-market/
[203] https://nolanlawson.com/tag/apple/
[204] https://nolanlawson.com/tag/app-tracker/
[205] https://nolanlawson.com/tag/benchmarking/
[206] https://nolanlawson.com/tag/blobs/
[207] https://nolanlawson.com/tag/boost/
[208] https://nolanlawson.com/tag/bootstrap/
[209] https://nolanlawson.com/tag/browsers/
[210] https://nolanlawson.com/tag/bug-reports/
[211] https://nolanlawson.com/tag/catlog/
[212] https://nolanlawson.com/tag/chord-reader/
[213] https://nolanlawson.com/tag/code/
[214] https://nolanlawson.com/tag/contacts/
[215] https://nolanlawson.com/tag/continuous-integration/
[216] https://nolanlawson.com/tag/copyright/
[217] https://nolanlawson.com/tag/couch-apps/
[218] https://nolanlawson.com/tag/couchdb/
[219] https://nolanlawson.com/tag/couchdroid/
[220] https://nolanlawson.com/tag/developers/
[221] https://nolanlawson.com/tag/development/
[222] https://nolanlawson.com/tag/emoji/
[223] https://nolanlawson.com/tag/grails/
[224] https://nolanlawson.com/tag/html5/
[225] https://nolanlawson.com/tag/indexeddb/
[226] https://nolanlawson.com/tag/information-retrieval/
[227] https://nolanlawson.com/tag/japanese-name-converter/
[228] https://nolanlawson.com/tag/javascript/
[229] https://nolanlawson.com/tag/jenkins/
[230] https://nolanlawson.com/tag/keepscore/
[231] https://nolanlawson.com/tag/listview/
[232] https://nolanlawson.com/tag/logcat/
[233] https://nolanlawson.com/tag/logviewer/
[234] https://nolanlawson.com/tag/lucene/
[235] https://nolanlawson.com/tag/nginx/
[236] https://nolanlawson.com/tag/nlp/
[237] https://nolanlawson.com/tag/node/
[238] https://nolanlawson.com/tag/nodejs/
[239] https://nolanlawson.com/tag/npm/
[240] https://nolanlawson.com/tag/offline-first/
[241] https://nolanlawson.com/tag/open-source/
[242] https://nolanlawson.com/tag/passwords/
[243] https://nolanlawson.com/tag/performance/
[244] https://nolanlawson.com/tag/pinafore/
[245] https://nolanlawson.com/tag/pokedroid/
[246] https://nolanlawson.com/tag/pouchdb/
[247] https://nolanlawson.com/tag/pouchdroid/
[248] https://nolanlawson.com/tag/query-expansion/
[249] https://nolanlawson.com/tag/relatedness-calculator/
[250] https://nolanlawson.com/tag/relatedness-coefficient/
[251] https://nolanlawson.com/tag/s3/
[252] https://nolanlawson.com/tag/safari/
[253] https://nolanlawson.com/tag/satire/
[254] https://nolanlawson.com/tag/sectioned-listview/
[255] https://nolanlawson.com/tag/security/
[256] https://nolanlawson.com/tag/semver/
[257] https://nolanlawson.com/tag/shadow-dom/
[258] https://nolanlawson.com/tag/social-media/
[259] https://nolanlawson.com/tag/socket-io/
[260] https://nolanlawson.com/tag/software-development/
[261] https://nolanlawson.com/tag/solr/
[262] https://nolanlawson.com/tag/spas/
[263] https://nolanlawson.com/tag/supersaiyanscrollview/
[264] https://nolanlawson.com/tag/synonyms/
[265] https://nolanlawson.com/tag/twitter/
[266] https://nolanlawson.com/tag/ui-design/
[267] https://nolanlawson.com/tag/ultimate-crossword/
[268] https://nolanlawson.com/tag/w3c/
[269] https://nolanlawson.com/tag/webapp/
[270] https://nolanlawson.com/tag/webapps-2/
[271] https://nolanlawson.com/tag/web-platform/
[272] https://nolanlawson.com/tag/web-sockets/
[273] https://nolanlawson.com/tag/websql/
[274] https://toot.cafe/@nolan
[275] https://github.com/nolanlawson
[276] https://npmjs.com/~nolanlawson
[277] https://wordpress.com/?ref=footer_blog
[278] https://nolanlawson.com/2025/04/02/ai-ambivalence/#comments
[279] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020
[280] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020
[281] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020
[282] https://nolanlawson.com/
[290] https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fnolanlawson.com%252F2025%252F04%252F02%252Fai-ambivalence%252F
[291] https://nolanlawson.com/
[292] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020
[293] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020
[294] https://wordpress.com/start/
[295] https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fnolanlawson.com%252F2025%252F04%252F02%252Fai-ambivalence%252F
[296] https://wp.me/p1t8Ca-3Ry
[297] https://wordpress.com/abuse/?report_url=https://nolanlawson.com/2025/04/02/ai-ambivalence/
[298] https://wordpress.com/reader/blogs/21720966/posts/14852
[299] https://subscribe.wordpress.com/
[300] https://nolanlawson.com/2025/04/02/ai-ambivalence/?ck_subscriber_id=1881659020