4 ms·
This is good and detailed, but misses a broader trend: how "worse is better" started to win - first Java over C++, then python and javascript over Java, and her
by w10-1 10mo ago
This is good and detailed, but misses a broader trend: how "worse is better" started to win - first Java over C++, then python and javascript over Java, and here markdown over Word and docbook.
When markdown emerged, docbook was getting even more elaborate, and vendors everywhere had for decades been locking people into frameworks and languages with fantastic features that were hard to use -- and then the internet bubble had popped. Then people realized they'd thrown away years building complex system, and had little tolerance for promises.
Markdown is something you can use in its native form. It's both source and destination, with a touch of future-proofing: if the opportunity arrives, you can polish it into anything, and mostly parse it yourself.
(What's surprising to me is that pandoc barely registers when compared with markdown on google trends since 2004; pandoc is the reason I switched completely to markdown in ~2010)
- atoav 10mo agoThe thing this oversees is that the interface is important, simpler is not worse, it can in fact often mean better. For example while docbook may have some technical, the user experience for someone who just wants to write some basic stuff is absolutely horrible. If I imagine beginner-coding me, the first thing I would ask for example is why the hell not just use html by that point. Markdown is a thing I could peesent my non-technical parents unrendered and they still would be able to read the content, just fine for the most part. Try that with docbook. Now nerds like to pretend the more powerful format is automatically superior. It isn't. Markdown is sucessful because it is so barebones and opinionated and because it forces a focus on the content over formatting. If that is what you need markdown is perfect. If it isn't, go for Latex, HTML+CSS, Typst or use InDesign or whatnot.
- latexr 10mo ago> opinionated Markdown is the opposite of opinionated; nearly everything in the original spec can be done in more than one way. There’s two separate syntaxes to do headers, links, italics, bold, and three ways to do unordered lists.
- atoav 10mo agoLet me explain what I meant with opinionated: Markdown decided for the users what the needed formatting options are, instead of giving them a bunch of tools that they could then combine in many different ways. The latter would be unopinionated as it doesn't force the opinions of the devs onto the users. For example, why doesn't markdown have columns? Why do tables have to have headers? Etc. The reason is someone decided to do it that way on purpose.
- latexr 10mo agoMarkdown is limited because it covers what its creator (single), needed for his blog. That’s it. Markdown was birthed as a single Perl script (with bugs that are still present). Tables don’t have to have headers in Markdown. It doesn’t even have tables to begin with! Not in the original specification which still exists. But there are certain flavours of Markdown which add support for tables, and those may or may not require headers. Each flavour implements features of Markdown as it see fit, and those may or not exist in other flavours or be implemented differently.
- thangalin 10mo ago> For example while docbook may have some technical https://keenwrite.com/blog/2025/09/08/feature-matrix/ https://keenwrite.com/blog/2025/09/08/feature-matrix/ I wrote the feature matrix to objectively compare plain text-based documentation formats. How do DocBook's features compare against Markdown?
- pests 10mo agoMarkdown allows HTML to be mixed freely. Not all implementations allow it. But the whole point was allowing a fallback to HTML if Markdown couldn't do what you needed. So its not even an option of switching from MD to HTML/CSS, its just an addition when needed.
- atoav 10mo agoI know. And this was a good idea.
- drob518 10mo agoSimple is frequently superior.
- Apocryphon 10mo agoComparing Markdown to Microsoft Word?
- w10-1 10mo agoOMG I'm so happy you never had to write documentation in the 1990's!
- BeetleB 10mo agoWhat are you talking about? Word is the standard for docs in many large engineering companies.
- esafak 10mo agoThat does not make it good.
- BeetleB 10mo agoOh, it totally sucks. I'm pointing out that the pain didn't end in the 90's, and continues 30 years later :-(
- pluralmonad 10mo agoI used to work with a guy that used docx files for all his note taking. Basically did all text writing (other than code) in Word. We had Notepad++ at the time as well, so he just preferred Word for some reason.
- braincat31415 10mo agoI used *roff back then. Now I have to put it into confluence. What a downgrade.
- VerifiedReports 10mo agoI did, and Word version 2 was an excellent product. WordBasic was incredible. There was even a graphical dialog-builder, so you could invoke dialogs from your macros. I wrote a macro that parsed and re-wrote SQL queries for a Big-6 consulting firm, saving them man-weeks if not months. Word today is a ghastly, incompetent shitshow.
- kleiba 10mo agoLet's not forget org-mode.
- d-us-vb 10mo agoI think about this often as an org mode user who uses it exclusively for journaling with none of the GTD features. Org mode was released before markdown by over a year, but never saw the uptake like markdown did, despite being a more featureful syntax. I think that's because org mode was originally a GTD framework for emacs, and the syntax of org files was incidental to doing GTD in plaintext. It didn't get popularized as an alternative to other markup languages until long after markdown became popular. I don't really know. I wasn't around back then to watch it unfold. But I still much prefer org mode due to better emacs support and (IMO) more intuitive syntax for things.
- chipotle_coyote 10mo agoWhen you say "better Emacs support," you're kind of understating things: Org Mode was -- and to a large degree, still is -- tied intimately to Emacs. It was only available in Emacs for years, and if you didn't use Emacs, you probably didn't hear about it for years. As someone who now uses both, I think the syntax between the two is really kind of a wash. I know Org Mode folks who insist that its syntax for links is more intuitive than Markdown's, for instance, whereas I used to insist that Markdown's was. Now I think neither is really intuitive -- the one that feels more natural to you is, very likely, the first one you learned and got comfortable with. Beyond that, most of the differences in syntax are kind of academic. (I would genuinely argue that Markdown's block quote formatting, which is the way that plain text email tended to quote messages, is more intuitive, at least to anyone who remembers writing email in plain text.) Org Mode partisans also correctly point out that you never have to worry about differences in syntax parsing the way you technically do with different flavors of Markdown, but I'd argue that's because there's effectively only one Org Mode parser out there, e.g., Org Mode in Emacs. There is no formal syntax specification for Org Mode any more than there is for Markdown, and if Org Mode had become as popular and had as many different implementations in as many different programming languages, it would absolutely have the same issue. (In fact, the few non-Emacs Org Mode parsers that I've seen are, to a one, at significant variance with Original Flavor Org Mode once you get past the basics.) Org Mode's real strength isn't the syntax, it's everything else. I don't use it for GTD, either, but I use it as a task manager and an agenda system for work, and as a personal journal and fiction outliner. None of the power it gets for any of those things comes from using asterisks instead of hash marks for headlines, or slashes instead of underlines for italics. :)
- szundi 10mo ago[dead]
- kazinator 10mo agoJava isn't worse than C++; it has a much more capable run-time, something which is left as an implementation-defined footnote in C++. Java had a leg-up over C++ by several decades in having a concurrency story (at all) in the language. I wouldn't use std:: anything for threads even in a greenfield C++ project today. Garbage collection is more advanced than the primitive management tools available in C++, like smart pointers to reference counted or exclusively owned objects: those approaches are strictly worse than the correct, gold-standard solution to the object lifetime problem.
- ajross 10mo ago> Java had a leg-up over C++ by several decades in having a concurrency story (at all) in the language. While sort of technically true, concurrent code expressed in high level language was almost invented in C in the 1980's as the first Unix SMP devices took off (early multiprocessing work at the OS level was at the assembly level, Unix was almost alone in having a portable kernel and the need for SMP). Java, coming along about a decade later from the same incubation environment, very much reflects that learning. But no, they did it right in Java because they had already done it in C.
- da_chicken 10mo agoIt's hard to look at Java and not see it as a transitional language now. Electron, Node, and even .Net have fundamentally been more successful implementing ideas that first saw widespread adoption in Java. JSON is basically XML, which is what Java pushed so hard for for data exchange instead of really gross binary serialization formats. Although, Java wasn't really trying to compete with C++ everywhere. It's just that, at the time, C++ was used at all levels. I mean, this was a time when it was C++, Visual Basic, or Turbo Pascal/Delphi for application programming. You couldn't easily get more abstract than that. That's wildly unlike today's landscape.
- zahlman 10mo ago> JSON is basically XML, which is what Java pushed so hard for for data exchange instead of really gross binary serialization formats. JSON over XML is more of a "better is better" case, though.
- renewiltord 10mo agoI'm sorry, what? Markdown over Word is "Worse is Better". You are shitting me. Markdown over Word is "Better is Better". Haha, dear god. MS Word? It must be some other word surely. MS Word is awful today.
- scubbo 10mo agoYou are misinterpreting the phrase. "Worse", here, means "having less functionality"[0]. Whatever your belief about the usability, speed, consistency, etc. of Microsoft Word (and we probably agree there!), Markdown is certainly "worse" in terms of features. [0] https://en.wikipedia.org/wiki/Worse_is_better https://en.wikipedia.org/wiki/Worse_is_better
- wiseowise 10mo ago> how "worse is better" started to win > first Java over C++ ...really? Java was literally created to fix C++ issues. > then python and javascript over Java That's just different, not worse.
- astrange 10mo agoJava is based on Objective-C/Smalltalk, not on C++. It's strictly worse than its original too. There's a lot to be said for the rule of least power, but it's not nearly powerful enough.
- anildash 10mo agoI actually had a digression into "worse is better", but the piece was already pushing 5,000 words, so I figured I probably was better of leaving out such a big topic. But you're right that's a larger trend that mattered. I think of it more as a triumph of Postelism in the Internet at large as more people came online, too.
- keybored 10mo ago(I did not read TFA) Or maybe underdeveloped is better? No, that’s not a loaded word hear me out: the syntax is very unobtrusive and minimal if you ignore the whole HTML superset thing. So people can just start using it. Everyone wants to write bullet lists and some emphasis, a code block if they program. Only later do you want maybe a little more, some footnotes, maybe even admonitions. But that’s just a little extra. The syntax is already pretty minimal; there’s room for a little extra like using `^` (`[^1]`) for footnotes. So one extension uses that. Oh and maybe another extension uses something else. But whatever, it’s a trivial difference. Okay now some book-publishing Markdown has become quite different from some static website builder Markdown and it’s kind of annoying to have to keep the differences in mind because you have a blog but you are also writing a book. And it turns out that implementing Markdown in a way that doesn’t have dozens of weird corner cases is annoying because the whole inline markup thing wasn’t specified that well. It’s like a microcosm of the burden of code. You publish some Perl script that happens to catch on. It’s good enough; any immediate problems are really trivial. Ten years later though they are annoying. But a new lightweight markup variant? Yeah, we should make it close to compatible with “Markdown” because everyone knows Markdown. Maybe specifically GitHub Markdown. Because if it doesn’t render on GitHub it isn’t real.[1] And so it perpetuates through microgenerations. [1]: https://news.ycombinator.com/item?id=33873593 https://news.ycombinator.com/item?id=33873593
- calmbonsai 10mo agoAs someone who was immersed in C++ from the original Stroustrup book (I do not recommend it), then transitioned to Java, then (largely) to Python I disagree on the language comparison. - Java is not worse than C++, it's actually better for most large-scale programming - A (subset) of C++ is still far better for performance-intensive applications (games, low-level systems software, avionics, etc.). - Related to previous, if you're using ALL of C++ in your projects you're "doing it wrong". It is not a well-designed language. - I agree that Javascript is a win for "worse is better". Anyone remember Netscape Livewire? I try to avoid that language like the plague, but its runtime support is ubiquitous so it gets the most performance-tuning love. - Python was, initially, just a better Perl, but its dominance in Scientific computing spilled over into data science. Also, Jupyter notebooks provide a unique value proposition for a FOSS-Mathematica.
- morshu9001 10mo agoIMO JS and its spinoffs made mostly the best choices for an interpreted language. The bad parts are pretty inconsequential, and the good parts are important things other langs didn't do well. Even Rust took after how it does async and package management. Better than Python which also recently started copying over JS decisions, except that Py was easier to use with C libs from the start which made it capture math/data/science usage earlier.
- xigoi 10mo agoI would certainly not consider package management to be a good part of JavaScript (or Rust, for that matter).
- jonwinstanley 10mo agoXML and (previously SOAP) vs JSON was around the same kind of time too. Using JSON for API calls was such a breath of fresh air!
- morshu9001 10mo agoMy "worse is better" is using plain text instead of markdown. I still have no idea how newlines work in markdown.
- happyopossum 10mo agoNewlines work in markdown the same way they do in plain text, because markdown is plain text. If you have something that’s converting markdown into a rich view and it’s not doing that, the problem isn’t with markdown, it’s with your markdown parser.
- morshu9001 10mo agoThey don't though. Newline in the input doesn't create a newline in the output.
- jkrejcha 10mo agoTwo spaces before the newline for a new line, two lines for a paragraph break
- antod 10mo agoIsn't Markdown more a competitor to Restructured Text rather than Docbook or Word?