LLMs have made this problem extremely worse. Imagine how'd you'd explain what an MCP is in a couple words and technically, then try to look it up. There's phone books worth of pages and text that never end up getting to the point.
Anti-patterns in software blogging (refactoringenglish.com)
phreack 5 hours ago
DonaldPShimoda 5 hours ago
Joker_vD 4 hours ago
DonaldPShimoda 4 hours ago
Terr_ 3 hours ago
Right, all good (human) communication boils down to both the author and the reader having a theory-of-mind for one-another. The writer must anticipate what a reader will be thinking, and a reader must imagine [0] what the writer wanted to convey.
That's part of what makes the modern epidemic of LLM slop so frustrating: The correctly-formed words make us waste effort trying to reconstruct a mind that was never really there. Like some animals encountering an extremely realistic plastic fake that we cannot eat/mate-with.
DonaldPShimoda 40 minutes ago
mrweasel 4 hours ago
0) https://users.ece.utexas.edu/~perry/education/SE-Intro/fakei...
mtlynch 5 hours ago
A lot of Paul Graham and Joel Spolsky posts don't get straight to the point and usually do not follow an intro -> body -> conclusion format. A lot of them start with a story that makes the direction of the post unclear[0] or include long digressions whose value isn't immediately obvious.[1]
For a while, I struggled with this contradiction because I think good writing should quickly demonstrate the value a reader can expect, but I think Graham and Spolsky are excellent writers that frequently take their time in getting to their point.
The easy answer is that Graham and Spolsky are famous, so they can do whatever they want, and people will still read. I've come to think it's actually that writers like Graham and Spolsky are so good that the quality of the writing itself is the thing of value that keeps you interested even if you don't know what point they're going to make.
[0] https://www.joelonsoftware.com/2000/04/06/things-you-should-...
pchristensen 5 hours ago
bluGill 4 hours ago
FlyingSnake 4 hours ago
braiamp 2 hours ago
mtlynch 2 hours ago
But to take Spolsky's "Things You Should Never Do" as an example, obviously nobody's Googling, "things to never do," clicking Joel's article, and then getting annoyed at Joel for not telling them immediately. They're finding the post on HN, RSS readers, forums, etc., where they didn't have a specific goal in mind beyond learning/entertainment, so the author has more room to take their time.
bitmasher9 4 hours ago
layer8 4 hours ago
dustfinger 3 hours ago
cyndunlop 33 minutes ago
onion2k 22 minutes ago
I don't know if it's still there, but Grammarly used to have an AI feature that specifically made text longer. It was literally a button that says "Make longer."
janalsncm 11 minutes ago
It’s ok to be selective about your target audience. Most of us are writing for free anyways so we’re not losing revenue by not explaining what a computer is in an article about optimizing LLM throughput. You might be writing to other engineers who are familiar with the topic but not the particulars of your project.
Put the most important thing above the fold. If you catch someone’s attention in the first 10 seconds, it buys you another 30.
Add visuals. Boxes and arrows, charts, videos where appropriate.
If you must write a meandering narrative, put it at the end, not the beginning.
jrochkind1 4 hours ago
Maybe someone can tell the LLM's about these anti-patterns, like, seriously, would it help?
I'd prefer of course if people just actually themselves wrote the text that they expect me to read my human self.
ram1500natrluvr 6 hours ago
This applies to almost everything in the software space. New tool? New design pattern? New library? Language idiom? Language? Or, for more modern takes, new model? New harness? New harness option? New use pattern? Give a brief summary of what a project looks like without it, to convey the problem that its existence alone is solving. Then go into the details of how it might compare to other solutions.
Maybe it's just a specific way of how my brain works that finds this sort of information intuitive, and the lack of it particularly annoying.
linsomniac 5 hours ago
jrochkind1 4 hours ago
I find that LLM-written software blog posts generally spend like 3x as many words as would be ideal, but of course take a lot more editing and care.
zrail 2 hours ago
If you're writing on your personal blog then take all of this with the size of salt crystal you feel it deserves. Personally, that's about the size of an Acme safe hanging over a cliff waiting for an unsuspecting listicle writer^h^hcoyote.
weinzierl 6 hours ago
Not only the intro. Many bloggers try to write as if they'd writing a story, building suspense and all. For technical writing, don't bury the lede.
pastel8739 6 hours ago
DonaldPShimoda 5 hours ago
But also in the case where the writing is actually not technical, then... obviously the parent comment's complaint wouldn't apply? C'mon.
IslandRebel 4 hours ago
It is a massive turn off for me and I just simply close the window if I find they don't get start getting to the point.
I am much more forgiving if the meandering intro is done by someone that is clearly just someone writing up their own work.
kkapelon 4 hours ago
I personally prefer articles that link to other(better) sources for definining concepts instead of trying to explain everything.
So several times I read articles like a stack, starging with A, then in the middle going to B and after finishing B going back to A. It doesn't bother me at all. It actually says to me that the author understands they cannot be experts on everything and recognize other articles.
I also enjoy articles with reveal their twist late if they are not super long.
On my personal blog I am actually writing both styles (just explain right away, or build up to something that will become clear later in the article)
SenHeng 2 hours ago
FlyingSnake 4 hours ago
I start with the conclusion in the first paragraph[1], and the user can decide if it’s worth their time or not. Unless you’re Gabriel Garcia Marquez, no one’s going to read your rambling.
GMoromisato 3 hours ago
Bezos has a sharp mind and often got impatient with the paper for not getting to the point quickly enough. He would deal with the boredom by highlighting all the mistaken assumptions and errors in the paper, which would often derail the meeting.
One VP came up with a way to deal with that. His advice was to write the paper as if the reader was an expert in the field--no definitions, no preamble, just assume the reader already knows.
Then remove every other paragraph.
The result was a paper that forced Bezos to focus and think about every sentence just to understand it. That made it easier to get his agreement at the end.
Groxx 2 hours ago
An effective strategy for lots of higher tier management. For both good and bad reasons - often they don't want the details, they want to know that you know the details. You're being paid to know those details, after all.
vhantz 11 minutes ago
mobilejdral 6 hours ago
esafak 6 hours ago
dewey 5 hours ago
People are not using it any more as any AI assistant will give you the answer in seconds, perfectly adapted to your use case and with an easy way to ask follow up questions.
bsuvc 5 hours ago
StackOverflow was always just an "answer machine".
They wanted it to be a community, but it never was.
raincole 5 hours ago
Today LLMs have completely replaced the original role of StackOverflow.
mrweasel 4 hours ago
glhaynes 4 hours ago
mrweasel 4 hours ago
If the LLMs could get the same results by just reading documentation and source code, then the content on programming forums would be worth nothing, yet AI companies scrape them constantly... why?
glhaynes 3 hours ago
Do we have reason to think that they scrape them more often than they scrape other stuff? (Honest question, I have no idea.)
Doesn't Stackoverflow exist because people can in fact not read the documentation or source code, at least not to the point where it helps them understand their problem.
Yes; not sure how this is relevant to LLMs. One of the most impressive things I've seen change in the last few months is that they don't think twice about cloning a repo of linked-to-my-app code to analyze it to determine a solution. Or even disassemble closed-source object code to find an answer!
With agentic speed/capability, the calculus of "eh let's experiment and explore from the outside a little first" vs. "let's just read the dependencies (whose codebases I'm not familiar with), potentially including the binary itself, and figure out exactly what's going wrong" changes. So I think what's valuable in terms of ancillary info for technical topics is changing.
raincole 2 hours ago
glhaynes 4 hours ago
Anyway, I'm learning so much more so much better than I ever have before. Turns out the ultimate slop tools are also the ultimate learning tools if you use 'em right.
ivanjermakov 2 hours ago
hashtag-til 3 hours ago
jjfoooo4 2 hours ago
zrail 2 hours ago
binarymax 2 hours ago
SenHeng 2 hours ago
archagon 2 hours ago
It does not matter how small this community is because, at least for me, it is the only engineering community that actually matters going forward.
cyndunlop 30 minutes ago
0x20cowboy 4 hours ago
Not everything is a product.
layer8 4 hours ago
chris_money202 4 hours ago
gaflo 2 hours ago
joshkel 5 hours ago
"The sole purpose of the first sentence is to get you to read the second sentence. The sole purpose of the second sentence is to get you to read the third sentence… and so on."
(quoted from https://thehustle.co/write-like-hustle-boring-stuff-writing-...; the original idea is apparently from Joseph Sugarman)
feoren 5 hours ago
Or write something that actually provides value to your reader, communicate that value effectively, and trust your reader to recognize that value. Which would you rather read: writing that was optimized for psychologically capturing your eyeballs, or writing that was optimized for providing you something of value?
joshkel 3 hours ago
I really didn't mean to encourage emotional manipulation, soulless optimization, listicles, etc., although I agree that a lot of writing online falls in that bucket, and it's even likely that the advice I uncritically quoted was aimed at that bucket.
I obviously should have thought more carefully and written more clearly.
But I don't think that "Write each sentence to give the reader a reason to keep reading" and "Actually provide value to the reader" have to be mutually exclusive. Instead, I think of it as (like you said) communicating the value effectively: dispense with the throat-clearing, meandering intros, irrelevant personal details, weak thesis statements, etc., and write tight, well-crafted prose that respects the time and honestly maintains the interest of those who'd benefit from the value you can provide. (I certainly don't claim to be an expert here! Appreciate the video link.)
arduanika 4 hours ago
layer8 4 hours ago
Otherwise you end up with an article whose sole purpose is getting you to read it to its end, without accomplishing anything other than wasting your time.
mattbrewsbytes 4 hours ago
mtlynch 5 hours ago
Happy to take any feedback or questions about this post or hear your favorite software blogging anti-pattern.
lapcat 5 hours ago
layer8 4 hours ago
mtlynch 3 hours ago
When bloggers say, "I don't want to write about topic X because person Y already wrote the definitive post about it," I say, "However good the existing article is, there will still be people that prefer yours." Even if the other person is smarter, more knowledgeable, whatever, you're going to explain it in your own way, and that's going to resonate with a distinct set of people than any other article out there.
chris_money202 4 hours ago
I think your anti-patterns apply very well to the stereotypical SWE or HN reader, and if that is who you are targeting, you should absolutely follow these. But the biggest anti-pattern of all is following these anti-patterns while hoping to appeal to the untypical SWE or HN reader.
mtlynch 3 hours ago
> I think your anti-patterns apply very well to the stereotypical SWE or HN reader, and if that is who you are targeting, you should absolutely follow these. But the biggest anti-pattern of all is following these anti-patterns while hoping to appeal to the untypical SWE or HN reader.
Can you share more about what you have in mind?
I feel like these recommendations apply outside of software/HN. Like if I had a way to reach knitting bloggers, I'd imagine most of the concepts would be the same with different specifics.
Do you have a software blogger in mind that writes well but doesn't match what I describe in the post?
chris_money202 2 hours ago
My thinking there is PhDs/researchers a lot of the time like to dig deeper and are also pretty skeptical of new information and want to see it backed up by someone else unless the claims are completely novel, then they want the raw evidence typically in line or near what was stated as novel.
xpct 5 hours ago
mtlynch 5 hours ago
If you click on a blog post, and the writing is poor or seems LLM-generated, you keep reading? Or do you mean that you're willing to forgive more superficial things like meandering or excessive formality if the post has other redeeming qualities?
As an example, I clicked a post a few weeks ago about orchestrating Claude Code sessions[1], as that's a topic I'm interested in, but I found the writing so poor that I felt like the post was either LLM-generated or written for someone who had different needs than I did. Would you read a post like that to completion if the topic interests you?
[0] https://lobste.rs/s/youq7y/how_write_blog_posts_developers_r...
xpct 4 hours ago
This! Well, kind of!
I definitely do some type of screening for pieces that I read: I may look up who the author is or what they've worked on; the piece may have been recommended by someone else I respect on social media; the topic itself may have little other writing on it online which signals that it may contain original thought, it may have been up-voted on HN and had interesting comments, etc.
That is to say, I try to evaluate whether it's worth my time reading the article in full, even as I start reading it. I do have a habit of saving URLs of things I read, and typically jot down a few personal notes in a local .md as I read along.
I do use LLM writing as a negative signal: it could be that the author hasn't spent that much time thinking about the issue, and I can spend that time reading something else from my reading list. But there's definitely been a few cases where I read pieces in full, even though they were clearly heavily LLM assisted, only because the material just seemed worth tanking through for.
Perhaps, rephrased: I seldom drop pieces because of the prose, more often I do so because it lacks substance. And, to add, it could entirely be my selective process that leads me to dropping articles less!
rglullis 6 hours ago
I'd rather read something that shows any semblance of personality than yet-another engagement/reach/marketability-optimized "article" that just follows all the established tropes and could be written by any drone or clanker.
adityaathalye 3 hours ago
And, allow me to add antipattern no. N, in full display in the posts below: A 1:1 ratio of main body to footnotes, because we want some place to put all the spicy asides and hot takes.
What to do, my brain struggles with brevity :)
Exhibit A:
Over ten thousand ~~words~~ tokens on bitemporal data modeling (in SQLite and Clojure), which has a preamble and a postamble: https://www.evalapply.org/posts/poor-mans-time-oriented-data... (Plus, this one breaks on mobile portrait view because I couldn't figure out the CSS-fu needed to stop one pesky table from overflowing, and I am not going to fix it because the post reads fine in landscape mode). Exhibit B:
More thousands of words, urg no, tokens... on Terraforming one's infra: It opens with a Harvey Specter meme. https://www.evalapply.org/posts/systems-approach-to-infrastr... Exhibit C:
Another giant post on web stacks from first principles, and this one has a whole parable as well as a preamble: https://www.evalapply.org/posts/clojure-web-app-from-scratch... Exhibit D:
A six part series, because this one got too long (re-making your dotemacs from scratch tends to go that way). Um, and each post gets progressively longer and preambly-er: https://www.evalapply.org/tags/emacs/index.html#main(edit: reorder + fix formatting for clarity)
sophacles 3 hours ago
adityaathalye 2 hours ago
Honestly, I think there is value in having lived in "idiot mode", because that is the feeling I walk around with most of my life. And thinking is hard, so I don't want to, most of the time, but then I have to, because who will pay my bills otherwise?
Some of those posts are, in fact, because I felt like an uncomprehending idiot, about the blog post's topic, for the longest time ever. And it turned out that I was holding it completely wrong, or had pop-cultured myself into a prejudiced (therefore uninformed) opinion. Then, once some clarity arrived, I wanted to spool it to disk before it evaporated again. And lo and behold, post emerges.
mtlynch 2 hours ago
I can understand the position that you do care about other people reading your post, but you weigh your own enjoyment of your posts more heavily than anything else, but I'm skeptical of the claim that you don't care who reads your posts.
adityaathalye 2 hours ago
Also, the posts are structured to the way I have come to arrive at some conclusion, or some understanding. So it is very much written for my own benefit, and incidentally shared because well why not. Surely I'm not the only one who was confused, or ignorant, or just curious about $Topic... Just don't expect that I will rewrite the thing for some abstract audience persona and how their brain works. If something is weird or unclear or plain wrong, search is at hand. And if something is annoying, well there are certainly lots of other places to go to instead. So, no, I don't really think about who reads my stuff. These days, it must be all bots anyway. So be it.
But I do like to also "learn generously", and I love to share and talk the about stuff I end up publishing from my drafts and notes (which far exceed the stuff up there in public view). So when I feel like it, I share links in various places. Usually its crickets. Sometimes there is conversation.
The "share to HN" etc. stuff is in service of prompting people to share if they feel so inclined. And honestly, I don't think people share via those links. No data, just gut feel, given how long the site has been up, and how uncommon it is for not-me people to post links to HN.
As for the prominence of said links. It has been an eyesore and a long-pending thing to delete. Sometimes I use the site as a playground. That time, I wanted to see if what "they" say is true about putting sharing links up top, prominently. So I slapped that section in, during one of the layout refactors.
And so, the top of the posts got way too busy with those "see me! pick me! choose me!" links, and stayed because I couldn't bring myself to refactor yet again. (Also because there's not much to lose because someone got annoyed at the eyesore click-share links. Yeah, friend, I'm annoyed too. Sucks to be us.)
(edit: expand comment to clarify some thoughts)
mtlynch 2 hours ago
adityaathalye 2 hours ago
It so happens the eyesore "pick me!" links are gone now, except they are in a draft layout refactor. But please don't ask I know when it's going to go live. Could be tomorrow (or rather today---it's 2am here---and in that delicious sleep-deprived fugue state say eff this, I'm done, send it).
Or it could be next year.
(:
adityaathalye an hour ago
Not uncommonly, people are salty in the comments. Mostly it's fun to ignore the salt, and let the community do its thing, while also trying to observe what's going on with my feelings. Sometimes it's fun, or necessary, to show up and respond to flip the thread from destructive to constructive. This is a skill I can get better at, and I feel my odds of being better are higher with topics I've thought about for a good long while, and so that balances out in favour of taking the risk to self-share.
_dwt 2 hours ago
In my own writing it's like, I'm mostly trying to put something out in the world that I, and sometimes my friends, enjoy. The rambling is not exactly the point, but not exactly not the point either. If other like-minded people find it, great. Once somebody tipped me a thousandth of a Bitcoin or so, and that was fun too.
adityaathalye 2 hours ago
For half a second I read the rest of it as "a thousand Bitcoin", and immediately thought "okay, so there's a story here about how it was way early and how you tipped someone else, and now, just look at them, wow".
(edit: also, cool blog yourself... subscribed!)
mexicocitinluez 3 hours ago
ramon156 4 hours ago
mcphage 6 hours ago
dewey 5 hours ago
antonyt 5 hours ago
dewey 5 hours ago
mcphage 5 hours ago
I understand what you're saying, but often well-written articles end up getting passed around and relied upon as if they were well supported documents. I don't know if it's as common now, but the Rails community went through waves of fads as someone wrote an article and then everyone read it, and started following what it said, when often it wasn't good advice in the first place.
It got the point where, if you looked at an old enough codebase, you could get a rough sense of how old some code was by looking at whatever fads it contained, and look back to see when that coding quirk was popular.
jrochkind1 4 hours ago
jrochkind1 4 hours ago
One way to make this even better is to include your questions about things you don't know. "I wonder if that means X or Y, perhaps one way to tell would be investigating it with method Z, whihc I haven't had time to do yet, I wonder if anyone else has or knows."
mtlynch 5 hours ago
This is something I see a lot too, and I almost covered it in the post. I think it goes hand in hand with excessive formality where people think that if you're writing a blog post about something, you have to be an authority on the topic, but that's not true.
It's valuable and useful to write about things when you're still a beginner as long as you present yourself as a beginner. Julia Evans does this extremely well. My favorite example is "Some notes on using nix,"[0] which got me to start using Nix when I'd seen lots of other posts from more experienced Nix users that were too in the weeds for me to understand. But the way Julia approaches it is that she's learned a little bit more than someone who's never touched it, so you can read her progress and get a slight head start from where you would have started without her notes.
[0] https://jvns.ca/blog/2023/02/28/some-notes-on-using-nix/
mcphage 5 hours ago
Yep, I agree with this.
abubnov75 6 hours ago
all2 6 hours ago
totallygeeky 4 hours ago