6 ms·
Markdown is "worse is better". AsciiDoc is more powerful, but has a steeper learning curve, therefore it lost. tale as old as tech. EDIT: i'm compiling a list
by swyx 4y ago
Markdown is "worse is better". AsciiDoc is more powerful, but has a steeper learning curve, therefore it lost.
tale as old as tech.
EDIT: i'm compiling a list of "Worse is Better" technology battles:
- Mixed paradigm languages vs Functional languages
- Typescript vs Flow
- React+Redux beat Angular and Elm
- VHS beat Betamax
- AC beat DC
- what else? please share more here https://hashnode.com/preview/636602dec7fec996b85c7165 https://hashnode.com/preview/636602dec7fec996b85c7165 (draft!)
- nerdponx 4y ago> has a steeper learning curve Does it? I think Markdown "won" for a variety of reasons (Github? Slack? Pandoc?). I don't think AsciiDoc is so much more complicated than Markdown that people can't learn it quickly. The reason Markdown is now standard is that people like standardized things. They want to use the same syntax in their chatroom, forum, ad-hoc readme filed, and doc comments in code. And if they're already using one markup language, why learn another? Why not use the same one everywhere? It's not that AsciiDoc is complicated in general, it's that it's ever so slightly too rigid for "ad-hoc" markup in places like Discord and Hacker News. Thus people end up learning Markdown because it really is the best fit for those platforms, and then people don't want to learn another markup language, and so you get a snowball effect of implementation support and popularity. And thus we are stuck with Markdown everywhere. This isn't necessarily a bad outcome. But that's how I see it. I still want AsciiDoc to gain more traction in technical writing!
- smashed 4y agoI think you are on the right track but may be over estimating the "average" internet user capabilities? I had to migrate a couple of projects from awful, big ridden, wysiwyg editors to markdown and it's a huge challenge. Many people expect everything to work just as Ms Office/word does. Anything behaving in any way different than their benchmark is wrong.. Now, going from such a mindset to Markdown is a huge endeavour. You need to re-educate your user. Many will never appreciate the raw, code-like nature of markdown and will dread it the entire time they have to endure it.
- andylynch 4y agoI really don’t get the push for markdown etc over WYSIWYG for everyday people. The _very first_ web browser was also an GUI editor, and then you already had proper rich text editors since at least the Macintosh. Why should users not expect something as basic as formatting text to follow UI conventions established through what’s now forty-odd years of use by billions or people? It is akin to asking them not to complain when swapping a steering wheel for something like the tiller on 1880s cars.
- rjsw 4y agoMarkdown works better in a VCS than WYSIWYG formats.
- samus 4y agoTechnical users are an important user segment as well, especially those used to advanced text editors and IDEs. They don't have the patience to conform to the changing and often poorly thought-through user interfaces of text processors and want the flexibility to use more powerful tools if required. Do it like JIRA: give them both. People used to GUIs can use the WYSIWYG interface, and power users can use Markdown.
- Marta_B 4y agoCKEditor also gives that option – where you can type in Markdown if you prefer that over the rich-text UI. So both sides can be happy.
- xigoi 4y ago> The reason Markdown is now standard is that people like standardized things. Can you think of anything less standardized than Markdown?
- nullfield 4y agoWithout answering the question, it was the wrong answer, unambiguously and definitively. No, I don’t have to have the correct, best answer to get this.
- rrwo 4y agoMarkdown is appealing because you can read a markdown document without knowing markdown. It's intended to make sense on it's own.
- whoibrar 4y agoI agree with this. Reddit and Discord both use markdown and I've been using it for ages without ever knowing it's called Markdown. I just thought it's a neat trick you can apply italics by underscore and make text stand out with back ticks around. Even least technical people using bold/italics/indent on WhatsApp are using markdown in a way.
- pantojax45 4y agoThe bold/italics/indent syntax predates markdown. Markdown is great but the “*” / “_” / “>” were all in use before it (see Usenet emails for example)
- rhaway84773 4y agoWell, that’s why Markdown was popular. It took existing conventions, codified them, and more importantly, crested a tool to convert them to HTML. At its core, Markdown was little more than a perl script that converted a human readable doc written using many online conventions into HTML. Others realized this was a brilliant idea and created their own supersets and/or alternatives of markdown. That’s why there’s so many flavors of markdown with little tweaks. And that’s why Markdown is popular. Because it took advantage of convention built out of years of trial and error.
- thayne 4y agoThe same is largely true of asciidoc. There are cases where you do kind of need to understand asciidoc, but mostly for features where in markdown you have to reach for the escape hatch of inline html.
- thayne 4y agoI think it has a higher learning curve if you include everything in the language, because asciidoc has so many more features than markdown. But if you limit asciidoc to the subset that is comparable to markdown, I don't think it has a higher learning curve.
- nvrspyx 4y agoIn fact, most of markdown is compatible with asciidoc. The markdown syntax for headings, monospace, quotes, lists, code blocks, and section breaks all work.
- gherkinnn 4y ago- Javascript vs * - English vs * Both awful languages in many ways. And yet, here we are. Also who the fuck wants to speak Esperanto? In some cases I don’t think it’s “worse is better”, much as “the flexible beats the over-designed ivory tower”. Another way of looking at it is “capabilities matter, vulnerabilities don’t”. Think of a river carving its way through a valley. It is terribly undesigned and messy but it flows exactly where it had to.
- tgv 4y agoEnglish isn't a bad language; its spelling is highly inconsistent, but for the rest it's simpler than most other languages. The only advantage Esperanto has is that it doesn't give (much of) an advantage to pre-existing native speakers. For the rest, it's perhaps even harder to learn than English, and --when hypothetically adopted on a large scale-- will develop into regional dialects.
- iopq 4y agoSpanish spelling is better, pronunciation is easier (no th, only 5 vowels, etc.), native speakers almost as numerable, allows you to understand Portuguese, Italian, etc. It wasn't chosen, America just won
- tgv 4y agoSpanish orthography is pretty regular, but then you have 42 inflections per verb for three different patterns, and the most important verbs are of course highly irregular. Not to mention the fact that the difference between ser and estar isn't easy to learn. And there are a few more things that are hard (limiting to pronunciation: the guttural j/g, and the rr; counting syllables is a recurring question in quizzes). > It wasn't chosen, America just won That doesn't make English a bad language. Perhaps America (I guess you're referring to the USA) won because of English is so easy. But cultural, financial and political influence obviously count.
- samus 4y ago
- nix23 4y ago>AC beat DC Well that's not true, especially not in a data-center. It's just better for general long-distance energy transfer.
- iamtedd 4y agoIn what way is DC better than AC? To my knowledge AC rightfully won - much easier to transport over long distances, whereas DC required a generator nearly on every city block (among other reasons).
- silvestrov 4y agoFrom Wikipedia: > High-voltage direct current (HVDC) is used to transmit large amounts of power over long distances or for interconnections between asynchronous grids. When electrical energy is to be transmitted over very long distances, the power lost in AC transmission becomes appreciable and it is less expensive to use direct current instead of alternating current. For a very long transmission line, these lower losses (and reduced construction cost of a DC line) can offset the additional cost of the required converter stations at each end. https://en.wikipedia.org/wiki/Electric_power_transmission#High-voltage_direct_current https://en.wikipedia.org/wiki/Electric_power_transmission#Hi...
- pletnes 4y agoAC voltage can be changed up/down cheaply by making a couple of (relatively) simple wire coils. Also AC engines are simple, compact and reliable. Recall that the choice of AC was also taken over 100 years ago, before any electronics were around.
- mananaysiempre 4y agoAC is easy to change the voltage of with 20th-century tech (even high-power 21st-century tech for DC amounts to “convert to AC, shift that, filter it back” with some—crucial—improvements), so it works reasonably well over moderate distances at moderate power if you shift down as late as possible, but it’s absolutely awful for transporting large quantities of energy over long distances, because of the skin effect. Essentially, thick round wires are useless for AC because the current gets expelled to a thin layer on the surface (determined by the frequency and the properties of the material, roughly independent of how much you were trying to cram in there), thus the resistance goes down as the radius rather than the cross-sectional area, and you end up using absolutely asinine amounts of (nowadays very expensive) copper or (kind of expensive) aluminium in high-voltage lines. (Using flat buses instead of wires does work, but then sharp edges mean you get a lot more current leaking into the air.) If you don’t have high-power semiconductor components you can use to convert to AC and back in order to shift voltages or to just convert to AC in order to power industrial motors, you will have to grit your teeth and bear it—it seems that mechanical motor-generators are simply too unreliable. But for the last twenty or so years we’ve had them, and I understand that people are once again looking seriously at high-voltage DC. Of course, grids are huge and expensive, so it may be some time until implementations become common. I don’t think any of this counts as an instance of worse is better, though,—it’s just that the ease of building alternators changed dramatically over the last few decades.
- xdfgh1112 4y agoPHP
- Lvl999Noob 4y agoIsn't typescript better than flow? In what ways is flow better?
- 0xfffafaCrash 4y agoYeah, TS isn’t just better than Flow. It’s vastly better in almost any way one can think of. One of the few cases where the answer isn’t even “it depends.” I have to imagine swyx is either trolling here or has some very special contrarian opinion to almost anyone who has used these two technologies.
- xwx 4y agoThe main advantage Flow has over Typescript is soundness. Neither language is sound, but Flow tries a bit harder, and so there are fewer cases where you write bugs that 'should' be caught by the type checker. Here are a few examples of unsoundness in TS: https://www.typescriptlang.org/play?strictFunctionTypes=false#example/soundness https://www.typescriptlang.org/play?strictFunctionTypes=fals... https://flow.org/en/docs/lang/types-and-expressions/#toc-soundness-and-completeness https://flow.org/en/docs/lang/types-and-expressions/#toc-sou...
- sequoia 4y agoFlow is not better than typescript. People who say it’s “better”, what they mean is it’s more strict, which really means more rigid. The rigidity is a complete pain in the ass that’s not well suited to web UI development and leads to all kinds of convolution. To take one example: I use a Graphql to flow type generator for query fragment. That tool generates inexact types. So I’ll end up with an array of values of this type from a Graphql query, data objects with 10 keys for example. Then I want to pass this to a charting library, but I need to add a “color” property to each data object for the charting library. This is not possible with flow. My options are: - create a new type with color property and spread the existing type: this is not possible because the existing type is inexact and I have no way to convince flow it doesn’t already have a color property - just add a color property: this won’t work because I get a flow error later when I try to read the property, plus I don’t get the type check I’d like - create a new type plucking every other field from the existing type 1x1, then create a mapping function moving every property to the new type 1x1 - use $FlowFixMe to disable type checking altogether The only options that work are the last two, and they either break typing altogether or require dozens of additional lines of code that serve no purpose but satisfying Flow. And or course you need a comment to explain why the hell you’re mapping properties over one by one. I don’t need a type system that’s this “correct.” I’m not writing mathematical proofs, I’m writing web UIs, and this level of rigidity just gets in the way and leads to weird, overly verbose code.
- juliendorra 4y agoLove the idea of the list, the intro sets the context very nicely! Some suggestions: - HTML is a worse hypertext system (no typed links, no transclusion, no native index or versioning) and beat all the previous professional but centralized hypertext systems in just 3 years. It’s worse than HyperCard on the symmetrical authoring and viewing side, too. - json, from an historical perspective is really a worse xml (xml can serialize a much wider range of data structures and relationships, including circular ones, can be validated by schemas, etc.). But simpler to read, write and reason about. It limits ended up biting devs and it was extended in various, non standards ways
- swyx 4y agothanks for the contributions!
- gryn 4y agoangular ? really ??? in what way is it better ? I've used vue, angular, and react in different projects and honestly I'd take react with hooks every single time If I had the choice.
- NoboruWataya 4y ago> AsciiDoc is more powerful, but has a steeper learning curve How does this make it better? Sounds like it makes it worse. Maybe a better summation is "less is more".
- remram 4y agoGP seems to be using a definition of "better" that doesn't include difficulty. I agree that it's a bad decision when evaluating a markup language used in so many contexts as Markdown.
- swyx 4y agoliterally just referencing richard gabriel’s use of the word thats all. each side has genuine champions but usually one side is more purist (however defined) than the other and they lose 80% of the time
- talkingtab 4y ago"Worse is better" is always true if you choose the criteria carefully. For example it is always worse to eat food because it might be poisonous. Markdown certainly has limitations, but it more people know it and people can and do use it. More "powerful" is a good criteria, unless you have to pay the price. I applaud the decision and the work by the authors. It worked.
- photochemsyn 4y agoAs far as MDN Web Docs, what about variable declaration, i.e. deprecating the JS var in favor of let and const, universally? var has some weird behavior (hoisting) and it seems (no expert here) that only using let and const in code has many benefits. Is it historical inertia, backwards compatibility, preference?
- wbamberg 4y agoI'm not sure exactly what you're asking about, but if it's our use of `var` in code examples, we had a big project this summer to eradicate `var` in favour of `const` and `let`. This started out as a project for the Writing Day at the Write the Docs Portland conference (https://openwebdocs.org/content/posts/writing-day-wtd-portland-2022/ https://openwebdocs.org/content/posts/writing-day-wtd-portla...). It then continued as a much bigger thing: https://openwebdocs.org/content/posts/2022-q3-report/#modernization-code-samples-on-mdn https://openwebdocs.org/content/posts/2022-q3-report/#modern.... Much of the work was done by volunteers, and it's a great example of the kind of project that I don't think would have been possible back when MDN content was in a Wiki. If you're asking about whether we should un-recommend `var` more strongly: looking at the page for `var` (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...) - well, maybe you are right...
- appleflaxen 4y agoI thought Linux vs BSD and C vs Lisp were traditional examples of this.
- mdaniel 4y ago> C vs Lisp I wish there was a statically typed functional language on the right hand side, because `(defun take-action (thing) (format "ohgawd what type is thing?!"))` is for sure less powerful than `int take_action(struct foo *thing);`
- sicp-enjoyer 4y agoAlso C vs pascal and ada.
- radarsat1 4y agowhat was the deal with Betamax though? was VHS actually easier or have any advantages, or did it just win due to marketing? (honest curiosity here, i don't know the technicalities)
- urban_alien 4y agoThe porn industry adopted VHS and managed to make it the standard, basically
- sli 4y agoThis is a myth. Porn was available on Beta and far more non-porn VHS tapes were being sold than porn. Porn only made up a small fraction of VHS sales. Even the idea that Beta was strictly better than VHS is mostly modern myth.
- Karunamon 4y agoOne benefit I heard called out was that early Betamax capped the tape capacity to one hour, which meant you couldn't record things like full sports games and quite a few movies. Sony didn't change this until VHS came along with its slower tape speeds and more recording time, and by then it was too late. Also, VHS was cheaper, and while Betamax was technically inferior, it wasn't inferior in a way that the average buyer would notice.
- radarsat1 4y agointeresting thanks!
- developerDan 4y agoHDMI beat DP, it’s one that will always bug me.
- swyx 4y agogood suggestion ! why does it bug you?
- bee_rider 4y ago- Markdown vs LaTeX - HTML vs LaTeX (ok maybe I'm being a bit silly)