Email or username:

Password:

Forgot your password?
mhoye

People go to Stack Overflow because the docs and error messages are garbage. TLDR exists because the docs and error messages are garbage. People ask ChatGPT for help because the docs and error messages are garbage. We are going to lose a generation of competence and turn programming into call-and-response glyph-engine supplicancy because we let a personality cult that formed around the PDP-11 in the 1970s convince us that it was pure and good that docs and error messages are garbage.

270 comments
jelte

@mhoye Nobody pays for docs and error messages.

mhoye

@jelte oh, they sure as hell pay for not having them.

Liana :v_trans: :v_kirb:

@jelte exactly what I was about to answer when I came here.

I've seen entire massive years long enterprise projects with barely any docs.

It's the same thing as with tech debt, product people in charge only care about shipping features. And for open source, no one contributes to docs, and the few people making the thing are too busy making the thing

jbaggs

@mhoye How are we going to get docs and error messages right when people won't even put version numbers on their Stack Overflow posts?

Howard Chu @ Symas

@mhoye TLDR exists because people are illiterate and stupid. People ask chatGPT for help because they're illiterate and stupid.

The people building chatGPT used the same software tools as everyone else. If docs and error messages were all garbage then nobody would ever be succeeding at any software projects.

Ben Lindsay

@hyc @mhoye "Things happened therefore they couldn't have happened any better" is an interesting stance to take

jr conlin —〰—

@hyc @mhoye

OR maybe the docs are terrible.

Perhaps they're written for experts instead of users.
Maybe they focus on minor details instead of general function.
They might forget that folk have lives and that a library or app is just a tiny, annoying part of that instead of the central aspect.

Maybe present a few example commands at the top instead of at the bottom of 20 pages of man output.

It's like saying "To code, you need to know ancient Sumerian."

@hyc @mhoye

OR maybe the docs are terrible.

Perhaps they're written for experts instead of users.
Maybe they focus on minor details instead of general function.
They might forget that folk have lives and that a library or app is just a tiny, annoying part of that instead of the central aspect.

Maybe present a few example commands at the top instead of at the bottom of 20 pages of man output.

Howard Chu @ Symas

@jrconlin @mhoye fulltext search, regexp search are well established features. If all you want is an example it doesn't matter that it's at the end of a 20page document, all that matters is that it's present.

Howard Chu @ Symas

@jrconlin @mhoye there's definitely a difference between a technical reference manual and a user guide. General function belongs in the latter. But by its very nature, it's going to be lengthy, particularly if a lot of basic concepts need to be introduced. Complaining "tl;dr" is bogus if the necessary information is present and concisely delivered.

mhoye

@hyc @jrconlin

If you're telling people that the solution to navigating bad documentation is to learn regular expressions, then I don't even know what to say. That's like telling somebody who's struggling to climb a mountain that why don't you just learn how to fly?

Anyway, here's what you get when you use gcc to compile Hello World, with single quotes instead of double quotes. Not, please: those are warnings, not errors. The compile actually finishes and produces an executable.

Howard Chu @ Symas

@mhoye I'm not sure what you're trying to illustrate with that example. You seem to be suggesting that compilers should be friendly enough to be usable by people who don't know the programming language. A C programmer has to know the difference between a character constant and a string literal, and what a multicharacter constant is. It's not the tool's job to teach the language syntax.

jr conlin —〰—

@hyc @mhoye

Ancient Sumerian is the oldest form of written language, and there are numerous translation texts available. Surely, it's no challenge to the modern reader.

To presume that someone has skill or knowledge is to exclude a large number of people. Everyone has their own skill sets. Your skills are not as important to others.
Excluding people is not a great way to help them understand or use something.

Howard Chu @ Symas

@jrconlin @mhoye French is a widely used modern language, with many active speakers and plentiful learning resources. Why should I have to spend more than 30 seconds to learn to understand it?

"Tl;dr" is a copout.

jr conlin —〰—

@hyc @mhoye

True, but you're also far more likely to find someone translate from French than Sumerian. Thus why we now have TL;DR and Stack Overflow.

If I found out more people read someone else's summary of a tool or library that I wrote, I'd do my best to work that summary in as my documentation. Maybe even take a few pointers about how to present information better as well.

Howard Chu @ Symas

@jrconlin @mhoye that latter makes sense, but there's copyright issues to consider. Will the author of that summary grant you permission to incorporate their text into your docs? If so, why didn't they just contribute it to your project in the first place?

jr conlin —〰—

@hyc @mhoye

Uhm, maybe they wrote it because they don't understand how to submit a PR? (Again, different skill sets and not wanting to learn Sumerian. That's why requiring knowledge from someone can make your life harder.)

Maybe just reaching out to them would be enough, and a courteous thing to do anyway so that they get proper credit? Heck, even if they say "No", there are still lessons to be learned.

Howard Chu @ Symas

@jrconlin @mhoye not everything revolves around github PRs. A simple email "hey I wrote this summary for you" is all it would take to get the ball rolling.

Putting the onus on the developer to reach out to the user for this is unsustainable and unrealistic. It would require constantly sifting the web to find these useful snippets.

Whoever wrote the summary just has to hit Send on one email.

jr conlin —〰—

@hyc @mhoye

Heh, and all the original doc writer had to do was get one editor. Which is pretty common and not difficult at all for any professional writer. Asking the audience to do that for him is unsustainable and unrealistic.

The author wrote that up because they don't believe that the original source sufficiently solved their problem, nor would the be able to.

Kinda damning, if you think about it.

Howard Chu @ Symas replied to jr conlin —〰—

@jrconlin @mhoye so now you seem to be demanding that developers be professional writers.

I suppose it's fair to expect professional writers to be employed by commercial software providers. Not fair to demand anything of open source; if no one steps up and volunteers then the audience has no one to blame but themselves.

Peter Kraus

@hyc @jrconlin @mhoye oh I strongly disagree. Just like The Wall is not the same on shuffle, order of things matters. It's not the readers fault that the writer is incoherent. Fix your docs.

Howard Chu @ Symas

@pkraus @jrconlin @mhoye that's a red herring. A document might be structured to present information in a logical order, but that's not relevant to the person who just wants to find a particular example.

Tom Walker

@jrconlin @hyc @mhoye Yes, open source documentation *loves* enumerating minor obscure details instead of telling me what the damn thing is or does

ClutchAbuse

@hyc no, people prefer TLDR and chatGPT because they need to get something done in a timely manner and don't have a free hour(s) to sort through poorly worded, often outdated documentation.

Ian Sudbery

@hyc @mhoye Even if we accept your premise ("people are illiterate and stupid"), in a world where more and more people are going to need to code to keep the world going, we are going to need to create systems that work for these "illiterate and stupid" people. We can't just fix the world by declaring that from now on all people shall be geniuses.

Jess👾

"Illiterate and stupid" seems like a bold take of victim blaming for the various engineers that are trying to learn how to build and use tools, but have not been provided with sufficiently clear and accessible documentation that meets their needs...

@hyc @mhoye

AN/CRM-114

@mhoye however bad they are, they exist. People are now used to stack traces and unhandled exceptions as part of a project they consider released, and that’s unforgivable

Deborah

@mhoye It would be nice if both open source and corporate valued the skill that good tech writing entails, and understood that it's a job that requires action with every code change, and understood that it's a different and equally important skill from development. Good docs are gold.

(Also automatically generated docstrings and module docs are good but not a replacement for real docs, and auto-synced OpenAPI docs were mostly a pipedream.)

Donald Ball

@mhoye Writing and organizing information for discovery and retrieval are both technical (and teachable!) skills that are significantly undervalued by software engineering.

In practice, I've find that either companies expect software engineers to do this work incidentally (and, by definition, amateurishly), or if they have a team of writers, they're overworked, disrespected, saddled with terrible tools, and have little access to domain experts.

catte_salad clone (da_667)

@mhoye I see where you're coming from, and I'm all-in on having better documentation and less cryptic error messages, but I'm not 100% all-in on blaming all of life's problems on shitty docs. The amount of willful ignorance and number of average people who absolutely refuse to read error messages or maintain their systems is fucking astonishing.

So long as I can read the pop-up notifications, troubleshoot, and seek guidance in the docs, user community, and/or via search engines, I will never be without work. Your average person will not use critical thinking to solve their system problems. They'd just as soon throw that shit away and buy a new [phone/computer]. Or, failing that uninstall/reinstall.

Many will tell you that the average person shouldn't have to maintain their systems/software, that it should all be intuitive and just work™. Again, I disagree and I'll use a somewhat related example. In non-metropolitan cities in the US, there is a lack of reliable public transportation. Cars are kind of a necessity for getting around. If you have one, more than likely, you either know, or have been taught that regular maintenance and inspections are extremely important to keep the thing running.

Tire rotations, Oil Changes, Washer fluid, regularly washing the car to prevent mud/salt buildup from rusting the body, inspection to measure tread depth, checking tire pressure, and so on and so forth. Its fine if you don't know how to rotate tires and change the oil on your car, but you still know that routine maintenance and inspections for bigger problems is necessary to maintain such a complex machine.

Even if you disagree about cars being a necessity, you can take this logic and apply to motorcycles, scooters, bicycles, e-bikes. All of that shit requires routine maintenance and inspection. Check the bike chain and/or oil it, check the brakes on the bike, check the tire pressure, and so on, and so forth.

I feel like its mostly the same for software and system troubleshooting. People should know what a ping is. People should know how to clear their cache, temp files, and browser history. Be able to nslookup google.com. Read error messages and either comprehend them, or put them into a search engine to understand what they mean.

If modern computing is foundational in today's society then I feel like computer/technology comprehension should be a baseline skill. Its downright shitty to just respond to a lack of critical thinking with "Well, I'm just computer illiterate."

@mhoye I see where you're coming from, and I'm all-in on having better documentation and less cryptic error messages, but I'm not 100% all-in on blaming all of life's problems on shitty docs. The amount of willful ignorance and number of average people who absolutely refuse to read error messages or maintain their systems is fucking astonishing.

DasMammut

@da_667 @mhoye #Oracle gives precise error codes which help in solving the problem.

#Microsoft just gives stupid messages like 'It doesn't work right now. We don't know why (maybe they know but they won't tell you). Try again tomorrow or ask your administrator' - Fuck: I'm the administrator - so whom can I ask !?! 🤯

Unfortunately, many people copy the Microsoft style of error messages 😞

catte_salad clone (da_667)

@rkbw @mhoye Yeah, see, thats a place where its an unintuitive mess because Microsoft is fucking awful.

But generally speaking, bluescreens have error codes that will at least point you in a general direction for search engine troubleshooting. Additionally the event viewer has become a fallback of mine. Look for Critical failures, Errors, followed by warnings.

Again, I fully acknowledge that it sucks and is unintuitive and fully agree that improvements would be effin' great.

DasMammut

@da_667 @mhoye When e.g. Windows updates failed I *never* have been able to learn something useful from the error code - if one was given at all 🤯

catte_salad clone (da_667)

@rkbw l Well, I've been there before and I have found results from failed windows updates that lead to solutions. But just as well I've had labyrinthine, serial problems with some Linux-based software stacks/applications/software updates where, you have no indication that anything is wrong, right up until you get random crashdumps while the program is running. I'm not arguing against better error messages and documentation.

But anecdotal experiences are anecdotal experiences. What if I told you that I haven't had a blue screen of death in over 7 years across two major Windows operating systems?

@rkbw l Well, I've been there before and I have found results from failed windows updates that lead to solutions. But just as well I've had labyrinthine, serial problems with some Linux-based software stacks/applications/software updates where, you have no indication that anything is wrong, right up until you get random crashdumps while the program is running. I'm not arguing against better error messages and documentation.

davenicolette

@da_667 @mhoye Agreed, but I don't see that as a substitute for usable docs. Why not both?

Ian Sudbery

@da_667 @mhoye Whether people "should" know able to do these things is immaterial. They don't, and no amount of believing it should be otherwise will change that. If we want to build a world that works, we need to accept that.

catte_salad clone (da_667)

@IanSudbery @mhoye I refuse to live in a world where willful ignorance of a core function that affects so many peoples' daily lives is accepted. I'm doing what I can to push back.

Ian Sudbery

@da_667 @mhoye

Hows that going for you? Making much headway?

I wouldn't have a clue about car maintinance. I chose to learn how to code, rather than how to maintain a car. I can manage to check the tire pressure and if the windcreen washer stops working to fill it up. I'm aware a car must be serviced on a regular basis, and if a warning light comes on, to take it to the mechanic. Who spend their time learning how cars work, rather than how computers work.

Adriano

@IanSudbery @da_667 @mhoye
You are conflating different things. Programmers dealing with documentation and error codes are not common drivers, they're the mechanics in your analogy. They are supposed to be able to understand. If the cars are actively hostile to fixing, it's a problem.

Adriano

@IanSudbery @da_667 @mhoye Having read essays by ESR, I do remember how the self-described Unix tribal elder states that documentation that only says things once and expects readers to figure out stuff on their own is good.

And this is absolute bullshit.

catte_salad clone (da_667)

@IanSudbery @mhoye that is exactly what I'm getting at. I'm not telling you that you need to know how to wrench on a car, it is enough to know basic maintenance tasks, and how to communicate to a profressional that there are problems beyond routine maintenance tasks.

Why should anyone be willing to make exceptions for computing?

If you consider the invention of the Unix operating system to be the "beginning" of the modern computing revolution, then that means modern computing has been around for the better part of 50 years. Hell, I'll walk that back and we can say that 1995 can be considered the beginning of the modern home computing revolution -- smack in the middle of the explosive growth of the internet and windows 95. That's still 30 fucking years.

The model T was first created in 1906.

Claiming computer illiteracy would be akin to someone alive during world war II claiming that they have no notion of how to maintain or operate a car. At all.

Why do we accept computer illiteracy as an excuse? All I want is when someone comes across a computer problem for them to be a little more competent than saying "this piece of shit is broke". and when inquiring further 'what, exactly is broke?' not get a response akin to "I DONT KNOW. ARENT YOU SUPPOSED TO FIX IT?" It'd be really neat for them to be able to say:

"I've cleared my browser cache already. I use Microsoft Edge"

"I've made sure that I am connected to the internet."

"Oh, I wrote down the error message. It said..."

It's fucking embarassing.

@IanSudbery @mhoye that is exactly what I'm getting at. I'm not telling you that you need to know how to wrench on a car, it is enough to know basic maintenance tasks, and how to communicate to a profressional that there are problems beyond routine maintenance tasks.

Why should anyone be willing to make exceptions for computing?

Aaron Turner

@mhoye @0xabad1dea what kills me is when you do find software with good docs is how few people will read them.

Or will see an error and not actually read it and then ask what does it mean? Like what part of “insufficient disk space” was too hard for you to understand?

Bálint Szilakszi

@mhoye @tante

One of the strong points of paying for Red Hat subscriptions is that there are not that garbage docs

Jim Flanagan

@mhoye Even if the docs and error messages were lovely, they would so rapidly diverge from the fact of the code as to be wrong as a running clock (not even right twice a day, like a stopped clock).

Donald Ball

@jimfl @mhoye This doesn’t have to be true. If the (reference) documentation strings are part of the source code, and are actively maintained therein by both software engineers and technical writers in collaboration whenever changes are made — and more generally, if providing good, accurate documentation and errors is a considered and intentional aspect of your software architecture — this is eminently possible.

Jim Flanagan

@donaldball @mhoye I once had a conversation with a colleague about whether we could enforce this with an automated mechanism. Commits or PRs where code was changed but lacking changes to associated comments would fail. It came down to being able to detect, in any given programming language, which comments were about what code, which seemed like a hard problem.

Donald Ball

@jimfl @mhoye I have had good success when given the appropriate resources by various combinations of having technical writers flagged via codeowners for e.g. the api contract declarations, having technical writers skim review all changes on a formal release, and providing a clear and actionable grammar style guide so software engineers have a fighting chance to get it right when they write their own.

Donald Ball

@jimfl @mhoye The important things are really to involve the technical writers as first-class collaborators and, whenever practical, use data structures instead of raw code constructs at the documented contract layer.

Jim Flanagan

@donaldball @mhoye

> @jimfl @mhoye whenever practical, use data structures instead of raw code constructs at the documented contract layer

Nouns (data structures), verbs (API actions and events), and admonitions (what can go wrong)

Kit

@mhoye This overlaps with accessibility. If we can't even get basic error messaging or commenting right for decades, I'm sadly not surprised that accessibility is seen as "extra" or "not worth the investment" - because things that are actually HELPFUL TO HUMANS get so easily dismissed. (Also ableism, but... it all compounds.)

lj·rk

@mhoye TBF, the man pages of some UNIX systems are downright awesome (SunOS), even the POSIX standard's man pages read okay. The GNU stuff is quite horrible though.

Maybe more of a personality cult around old school UNIX would've been better? :'-)

[That being said, stack overflow is quite often crap. And unfortunately there's much incentive to get something "running" without understanding "thing" because that would take a little longer in the short-term.]

DELETED

@mhoye when projects have good docs I shout it from the hills, and even then I have to say, "No, really, I promise, they're good"

mhoye

The number of people in this thread who are willing to tell me that the real problem is how stupid everyone is is incredibly embarrassing.

Look, here's what happens when you compile Hello World with single quotes instead of double quotes.

Note, please, that these are warnings, not errors. GCC finishes and produces an a.out executable.

aburka 🫣

@mhoye morbidly wondering what a.out does if you run it

mhoye

Geez, that doesn't look good, but they're just warnings, maybe not deal-breakers. So let's run it and see what happens! An... immediate segmentation fault.

Ok, well all those warnings are in printf so let's go look at the manual for printf.

man7.org/linux/man-pages/man3/

Oh, yeah, check this out. You can tell we're on the right track:

mhoye

It really gets rolling when we learn about the format of the format string. We wanted to print a string, not a constant character pointer to a "format string", but we can roll with that.

"The overall syntax of a conversion specification is: %[$][flags][width][.precision][length modifier]conversion"

We're getting warmer you know? You can really feel it. We're close to figuring this out.

mhoye

"The arguments must correspond properly (after type promotion) with the conversion specifier. By default, the arguments are used in the order given, where each '*' (see Field width and Precision below) and each conversion specifier asks for the next argument (and it is an error if insufficiently many arguments are given)."

Uh... ok... look maybe we're getting off track here, that first error message said "character constant too long for its type", let's look for that.

mhoye

Let's try something different, maybe gcc --help will do something.

And holy shit does it ever.

Greg Wilson

@mhoye I am currently working on a short tutorial about date-time manipulation in SQLite. I just reached the part where I explain what Julian days are.

Owen (spoopy aspect)

@mhoye It's always funny to reply to Mr. Chu with a link to the CVE list for openldap.

If he's going to argue the Tired Uncle Bob position of "just git gud, what's the problem," he should have his nose rubbed in his own results for it.

Justin Thomas 🛡

@mhoye I've been doing a lot in Rust lately. The error messages are ultimately helpful, but can be overwhelming, especially when you start dealing with lifetimes or lambda functions. And I do get that "just learn to read" vibe when I see folks asking for help deciphering them. It's unfortunate.

davenicolette

@mhoye All true, but there are some positive examples. On the corporate side, IBM has always been very good about producing complete, accurate, and up-to-date documentation tailored for different audiences - business, end users, technical. In the OSS world, I've found Arch Linux docs to be quite useful. But not everyone takes a professional approach to documentation, unfortunately.

davenicolette

@mhoye FWIW, on the Cobol Check project we've always treated documentation as a first-class citizen. github.com/openmainframeprojec

JimmyChezPants

@davenicolette @mhoye

I'm quite enjoying every post in this thread. Just popping in to second the motion that Arch Linux are the best at documentation of Gnu - I mostly run Debian and its derivatives, but I frequently go to Arch's docs first.

Simon π man ⚛️🇬🇧🇺🇸🇺🇦

@mhoye this is because engineers these days strongly resist writing documentation and insist the code documents itself so what's the point?

I expect another recent trend will be an engineer asked to write docs will just ask their favorite GPT plugin to do it. As we know that's a hit and miss activity depending on what hallucinations AI is on that day.

mxrn

@mhoye Part is the arrogance in tech towards docs as a valid domain on its own.
I just read a blog post stating that we had no theory of what makes good docs. Come again? There's Information Mapping, Minimalism, EPPO, Funktionsdesign, etc. There are standards, conferences, journals, all about that exact question.
I'm a tech writer myself, and I have never contributed to a FrOSS project mostly because I can't stand the thought of having the same tired discussions there that I already had at work.

Leigh Garland

@mhoye To the folks that say the real problem is people are illiterate and stupid, i say, no, the language is deliberately obscure because it was designed in a time of computational and user interface constraints. Now we have abundance, and I'm supposed to remember what the magic words mean? No thanks.
Give me visual programming paradigms; errors that tell you what the hell is wrong; docs with detail AND general information; examples;
Make it fun, not excruciating!

skze :nonbinary_flag:

@mhoye programming books and how-tos should always be simple enough that a middle-schooler can understand them. the complexity should be in the actual content, not in deciphering what on earth those terse explanations even mean. there’s absolutely no reason to make the easy parts intentionally harder than they are just to make the hard parts seem cooler

Captain Superfluous

@mhoye

Wheres the mega boost button? Can boost x 10?

phooky

@mhoye I don't think that's quite where to place the blame. Old UNIX culture always demanded man pages for binaries _and_ library calls. It's the modern web that treats it with contempt, which is why there is, for instance, no manual for YouTube, or GMail, or or Android. Google is a big driver of the obnoxious no-documentation culture.

Quixoticgeek

@mhoye this. So very much this. The amount of programs with error messages like "an error occured" or just "error". And the amount of projects where you search for docs. And all you get is blogs on one very small use case (i.e. how to do NAT with nftables, good luck finding docs on anything else). Then some fucking numpty decides that they should name their tool with a dictionary word. Linux replaced brctl with bridge. Googling for help with bridge just gives brctl results.

arclight

@mhoye Preach, brother! BOFH damaged a generation of devs, convincing them that success meant churning out code and being an asshole with an opinion.

Sabella

@mhoye there's been a wholeass generation of neckbeards saying RTFM and TFM is SHIT.

finchie

@mhoye there seems to be a lot of room for more interactive documentation, where the user can build intuitive understanding through simple, visual explanations. For example, regex101.com

I've been prototyping a CLI app documentation explorer in this style that breaks down commands/arguments with visualisations and examples. It's very simple, but the improvement over a wall of text seems pretty clear to me. Just a shame this kind of thing doesn't already exist.

Safi

@mhoye and i can tell you ChatGPT steals the stuff from Stack Overflow I saw it from my own eyes exactly the same snippet of code in ChatGPT and Stack Overflow otherwise ChatGPT has zero ability to think for itself.. Its more or less a procedural generation algorithm it cannot do any type of logic.

Q.H. Stone

@mhoye Been struggling with Microsoft error messages today. So opaque.

Tom Boutell

@mhoye spicy take but you really have the history down. Yeah it is not a coincidence that I love nodeJS, despite somewhat high inherent complexity, because it has such ferocious API consistency and decent documentation.

Winwaed

@mhoye The only true computer worth considering was the EE DEUCE (production version of the ACE) everything else after that was garbage!

Ölbaum

@mhoye It’s true. Also, even assuming the docs are good, I need to do something I don’t know how to do, or I encounter an error. Do I go to the language or software web site, assuming I remember the domain or bookmarked it, search where they buried the link to the docs, use the web site’s shitty TOC or shitty search function to find the page that addresses my problem? >>

Antranig Vartanian :freebsd:

@mhoye can I just be a jerk and say that “it depends on the software” ?

I mean, people tell me that “if I google an issue about #OpenBSD, I can't find answers, why is that? is it a dead project and no one uses it?"

And I have to explain to them that “No, the docs are SO GOOD that people don't need to ask questions online and answer them. They just read the docs"

So I agree with you, error messages and docs are garbage, but not for everything. However, completely true of GNU :P

Steve Hersch :verified:

@mhoye this is a huge problem and turns onboarding into a nightmare. it's why a senior dev's productivity will likely go down for a while when a new hire is brought on. but i also see "documentation" repeatedly get glossed over in SDLC as "it's just part of writing the code". it isn't part of the code; it deserves and needs dedicated time. it should be mutually exclusive with writing code, but not lumped in as one.

Refurio Anachro

Hilarious rant, @mhoye! This is indeed the world we live in! Oh, and you should have grepped the compiler source for the warning messages you got XD

bazzargh

@mhoye I'm interested in learning what we can do better; here, for example, is a review of 2 papers about bad compiler error messages, with recommendations, from 2018 and 2019. neverworkintheory.org/2021/09/

While it's good to see effort into making errors better (they have more context than docs so ought to be able to give good advice) it bothers me that these took till 2019 to appear.

(to be fair; the 2019 paper is a review of a long history of bad messages)

@mhoye I'm interested in learning what we can do better; here, for example, is a review of 2 papers about bad compiler error messages, with recommendations, from 2018 and 2019. neverworkintheory.org/2021/09/

While it's good to see effort into making errors better (they have more context than docs so ought to be able to give good advice) it bothers me that these took till 2019 to appear.

Orca🌻 | 🏴🏳️‍⚧️

@mhoye@mastodon.social
man apt-get:
apt-get returns zero on normal operation, decimal 100 on error.

Me: (holding slippers) I will send you to Jesus.

Berkubernetus

@mhoye It's less folks being unwilling to document, and more people not being able to get paid to write good documentation and errors.

Writing high-quality documentation and error messages is hard. Very hard. But getting your boss to agree to let you spend time on them is harder.

feistel :cert:

@mhoye
> call-and-response glyph-engine supplicancy

I agree with you, but that sounds wicked.

takin' a break

@mhoye alternatively folks can give me money and i will give them docs (and error messages?) that are good

Dan Sugalski

@mhoye having used PDP-11s, though in the 80s, this was all utter bullshit then, too, and inexcusable. Some operating systems and languages had actual good docs and help, but Unix and C were not amongst them. And it was stupid.

(I remember the first time I tried to use C, on a PDP-11 even, and gave up because the docs were such crap)

LisPi

@mhoye I mostly got familiar with "tl;dr" as a summary for rants of message boards.

Or did some random service decide to confusingly name itself that?

rm -lininger

@mhoye I’m a cybersecurity analyst and not a tech writer because I could get paid to do it. Tech writing? Anyone can write and use Word, why would we pay well for that?

I went from making 45k to 95k with the same skill set. That was 15 years ago.

Orc

@mhoye I hope you know that Unix error messages were — modulo ed — a step up from what came before.

The whole fucking gnu subsystem did not come from that rootstock

YurkshireLad

@mhoye ah the old days of #VAX #Pascal, developing and maintaining systems with a large cupboard full of useful documentation.

Maxine Hayes

@mhoye to be fair this all comes from a primitive era of computing that has stuck around for legacy and historical reasons.

Does it suck? Yes without a doubt. Do we really need to use these very old and rusty tools that are about to give out? No, absolutely not.

I try my best to use new technologies and write documentation for my own designs. I think that is the solution to this problem. To just start over and use something better.

I've been keeping an eye on Linux distributions that throw out GNU entirely such as Chimera Linux. The toolchains used for them are incredibly simple and straightforward (compared to the standard GNU approach).

Ideally I believe we should throw out the old POSIX and *nix designs entirely and start from scratch back at Plan 9. Unfortunately that is incredibly difficult and will not be happening any time soon, so compromises need to be made in order to get the best and most useful approach that can be widely adopted.

@mhoye to be fair this all comes from a primitive era of computing that has stuck around for legacy and historical reasons.

Does it suck? Yes without a doubt. Do we really need to use these very old and rusty tools that are about to give out? No, absolutely not.

I try my best to use new technologies and write documentation for my own designs. I think that is the solution to this problem. To just start over and use something better.

Rodger

@mhoye I feel as though the PDP-11 is catching strays given that VMS had pretty good documentation.

But I acknowledge that’s egregious nit-picking

Mr Salteena is not quite a gentleman
@mhoye and the fact that SO helps them shows that it is possible to write down what people want and need to know in a way they can use. It is not a reading comprehension issue, it's a writing ability issue.
A myriad of Qyriad

documentation, folks. The best engineered software in the world is *nothing* if it isn't documented clearly and in-depth

Graham Spookyland🎃/Polynomial

@mhoye I wrote my own stack VM and compiler for a laugh recently and literally the first thing I did after getting it into a basic working state was give it really nice error messages with suggestions of how to fix the issue if you make a mistake, because I was gonna be hacking at this thing for weeks and knew I'd need decent feedback to catch my sleep-deprived keyboard snafus.

srsly, compiler devs, do it for your own sanity as much as anyone else's.

🟦🧙🏻simp

@mhoye seldomly have I felt something as much as „call-and-response glyph-engine supplicancy“ in relationship to real programming

cliffordheath

@mhoye I've been saying this for decades. The problem starts with:

#define EPERM 1 /* Operation not permitted */

What operation? On what object? Due to what context or user identity? Who do have to ask for permission?

Continues:

#define ENOENT 2 /* No such file or directory */

Is it a file or a directory? Which part of my pathname failed? Is it because a directory isn't searchable or just doesn't exist?

The operating system clearly knew all these facts, but returned only -1 and an errno

Kasiandra Richmond

@mhoye ACK. Saying similar for years.

I was sitting in front of a problem some time ago, was reading the docu and after hours didn't find out what the hell the dev was meaning. I asked in the IRC channel for help and then two devs started to point on different chapters in the docu and yelling on each other, until I found a stack overflow where a linux engineer said "the docu was shit, the solution is something else" and it worked.

Andy Smith

@mhoye It is the 41st millennium. 1,000 SREs per day are sacrificed to the golden throne of Kubernetes.

Luís Silva

@mhoye I only partially agree with you. I personally think that most of the time people are lazy. They don't like to RTFMs. Just this! They don't want to learn, they want answers, immediate answers and solutions to whatever question/problem they have. That's why LLMs are being so successful.

Christin Scarlett Milloy 🏳️‍⚧️🖖🏻

@mhoye Web development is not so bad now that Internet Explorer is dead

keith

@mhoye I'm curious if there's a correlation between what's considered good versus bad documentation and documentation that was funded and written by professional technical writers versus developers.

Colby Russell

@mhoye agreed generally, but Go has good error messages, so it can't be as simple as "personality cult that formed around the PDP-11 in the 1970s convince us that it was pure and good that docs and error messages are garbage", can it?

I remember seeing Russ Cox get raked over the coals once in a discussion when someone asked/complained about (a) knowing that something that worked in C wouldn't work in Go but (b) not knowing how to actually do that thing in Go.

1/2

gkrnours

@mhoye openbsd man page are so good, they put them all on the web. man.openbsd.org have like all their manpage ever wrote

zellyn

@mhoye Are the original man pages actually bad? One of the distinguishing characteristics I've noticed of everyone who worked at Bell Labs or sort of inherits that lineage (the Go team for example) is their unusually high standard of writing…

Central Illumination Agency

@mhoye This is a first-class rant, and I agree entirely.

While I´m not a developer, a large part of my job is translating between techies and everyone else (management, sales, customers, you name it). My experience is:

1. Developers will write the documentation they themselves need.
2. With reviews, coaching and prodding, developers can provide documentation that can be used by other developers.
3. Want better docs? Do it yourself.
4. Want really good docs? Hire a technical writer.

Nicolas Delsaux

@mhoye I completely agree with this position. And I think @melix , which wrote a very fluent and nice error management library (which tried to avoid as much as possible the garbage side) - github.com/melix/jdoctor

Paul Shryock

@mhoye very true.

I often find that reading a library's source code is way easier than trying to find information I'm looking for in their documentation or error messages.

Go Up