Hacker News new | past | comments | ask | show | jobs | submit login
W3schools.dev Redirects to Mozilla Developer Network (w3schools.dev)
212 points by fka 22 days ago | hide | past | web | favorite | 114 comments

I know at one point w3schools.com was a bit out of date but they seemed to update it.

As someone who has changed careers and moved into web development I found w3schools.com did a nice job of complementing MDN as if I was unfamiliar with the concept (or just forgot entirely) w3 was a good "layman's terms" stop just to start. And if I needed a more technical / granular detail, MDN.

I really wouldn't want to use one without the other.

Many years ago I took some C programming classes in college. It was in the early days of the internet and it was very much a "here's the book, a bit of lecture, now sit alone at your computer and do it". MDN can feel that way at times where it's example is ultra specific and while nothing is technically wrong.... it's like learning a language with a dictionary. w3schools.com fills that gap nicely.

At the same time if I need the dictionary to figure out more precisely how something works and all my options, it's MDN all the way.

W3Schools also used to be quite bad and misleading; this is an old page with a huge list of problems with W3Schools:


Used to is the important word here. They improved a lot.

I like them. MDN is great, but w3schools is better in giving examples on how to use stuff.

It's a little like GoDaddy, or Facebook.

W3schools were so bad, essentially just a click farm promoting any old crap for the pageview, that it'll take a huge amount of correcting, improving, and newly found ethical standards to let me forgive them. Or forget there really was a need for w3fools. They always gave lots of examples, and they were often simply wrong.

Even when they apparently have the answer, until I can validate it on SO or some other place, I'll tend to not trusting...

I tried adding better examples for "alert"s for example, but my PR got not approved because it didn't fit the exact structure of how the wiki is structured. So they make it intentionally worse than w3schools :)


<h1>how to use alert()</h1>

<p>see the Console API</p>

<footer>don't use alert(), don't talk about alert(), don't teach alert(), it's not 1997 anymore</footer>

alert() is very handy to learn, as it gives the new commer something tangible and familiar to use for tests.

You just have to give proper context.

No, the console API is a handy thing to learn. Alert is not handy, it's an ancient function that (a) blocks your page thread, (b) can't show anything except `.valueOf`, (c) can't be selectively ignored, (d) it's an obsolete API from way back when javascript 1.5 was hot stuff.

If you're teaching, teach people to use console.log because that's where they're going to get REAL insight into what the code's doing (console.table you say? amazing!) and never look back. And if you're learning, demand people teach you modern practices. Not ridiculous things from 20 years ago.

> proper context.

That's not 'tests' — tests would be something like Mocha, or Jasmine — what you're actually talking about here is one of the many forms of ad hoc in-browser debugging.

Automatic tests are not the only way to test software, nor are they sufficient. Whether some software can actually be used is not something that's completely formalizable and so you can't test it automatically. You always need a human in the loop in the end, and alert is a legitimate tool to effortlessly display some additional information on internal state during an interactive user test.

> ad hoc in-browser debugging

Ah, if only there was a single word - a verb perhaps - that developers could use to colloquially refer to this process!

Not testing the code, fidling with the stuff they are learning.

EDIT: It seems that Python lists are in fact arrays. Cool, so Python does in fact support arrays. Seems a pretty important fact to point out on a page called "Python Arrays".

Original comment:

There is still some complete nonsense on w3schools. For example, I wanted to know recently whether Python supports arrays. The first result on Google is this page: https://www.w3schools.com/python/python_arrays.asp

There is a small disclaimer at the top stating: "Note: Python does not have built-in support for Arrays, but Python Lists can be used instead."

Why the fuck is your page called "Python Arrays" if you don't plan to talk about arrays?

Then the rest of the page talks about lists, while erroneously calling them arrays, in complete defiance of the disclaimer. I imagine what happened is that someone who doesn't know what an array is wrote the page originally, then someone else came by later and realized it was wrong, but instead of actually fixing it, slapped that half-assed disclaimer on top.

I still don't know whether stock Python actually supports arrays. I ended up just importing Numpy.

"Array" is a pretty loosely defined term that varies from language to language. Python lists are what you may know as "variable-length arrays" of python objects (in other words: not type constrained). If you want type-constrained arrays, you'll use the array module: https://docs.python.org/3/library/array.html

that w3schools page is indeed nonsense. They should probably stick to JS.

It depends on how strictly one defines "array." If you mean it generically as "an indexable contiguous memory buffer containing the actual data being indexed," pretty sure Python lists don't comply even at a mechanical level.

While the Python 3 docs for arrays certainly do lean on the type-constraint, I notice it also has the various operations that imply a contiguous buffer (cast to bytes, etc.), so I wonder if that's not the real distinction and the type constraint serves that.

Traditional Python lists are much closer to what I know as a vector: indexable like an array, but dynamically expandable and usually implemented as a list of references to data structures instead of containing the data itself so allows for heterogenous data.

Informally, I've certainly called both types of things arrays, right or wrong, and rarely call anything a vector other than container classes by that name, but I do suspect that's what your parent comment is drilling on.

* Then there's the JS Array class, which acts more like a vector than array by those definitions, so who knows.

Python lists may well be implemented as arrays. I don't know if they are or not, as I haven't read the Python interpreter source code.

If they are, then the article is even worse, as the disclaimer that Python doesn't have arrays is a lie!

Everything in Python is implemented as a dict behind the scenes, which is implemented in C with a few different types. Python does have arrays in the standard library's array module, so yes saying python doesn't have arrays would be a lie.

I'd be angry at python there. It's python that uses lists like arrays in the standard language, making beginners search for arrays when python would use a list.

That's a pattern of the language and why I don't like it: It's very often almost like the other C-like languages, only to be that much different that it gets confusing. To just ignore that and call a list an array is not correct, but it makes the beginner searching how to do array-like stuff in python succeed in his task.

I'd be more annoyed at that page if they didn't explain the situation, but they do.

> I'd be more annoyed at that page if they didn't explain the situation, but they do.

Actually, they don't. The article claims that arrays don't exist, but you can use lists instead.

Apparently the polar opposite is true: lists don't exist, but you can use arrays instead! (And they're called "lists" for whatever reason).

Python has something it calls lists. Those lists are basically like what other languages would call arrays.

But python also has an array module you can use after an import, it's not loaded by default. That data structure behaves even more like the thing C calls an array.

I don't see why a python list is not a list per se. Don't be confused by the others explaining it is not a linked list - something does not have to be a linked list to be a list. It's still a numbered collection of stuff that can be sorted, thus a list.

Though it is true that as a programmer you probably are first confronted with a data structure called list when you learn a LISP, and that data structure will be a linked list.

Confronting beginners with all this is not useful for them, w3schools just adding a note and calling the python default collection thing an array is thus not that unreasonable. Though I'd prefer it if they just called it a list in the explanation below the note, after explaining that this list structure is what you are probably searching, with a link "look there for what python calls an array". So in that way I agree with you, this is not optimal.

This is silly. Both "list" and "array" are so broadly defined that they largely overlap.

Then why doesn’t the article point out what definitions it’s using, rather than claiming arrays don’t exist and then talking about arrays?

Python lists do the job of an array probably for 99% of cases. Depends on your exact definition of an array and if that even matters

As always, as you say, it depends on your definition.

One of the useful definitions of an array is that it guarantees contiguous storage in memory. In Python, there is no way to guarantee that; even if a list is a C array of Python references under the hood, there's no way to store the information represented by those references contiguously in memory. From that perspective, pure Python doesn't have any arrays at all, which is precisely why the popular NumPy has to offer explicit support for numeric arrays.

From another perspective, arrays are a set of O() guarantees for various operations. From that perspective, Python lists will generally meet the specifications that you'd write for a resizable array, or perhaps what you might call "vector", depending. CPython comes with some awful constant factors but the O() of the lists will be what you'd expect.

Rather than arguing about whether Python has "arrays" interminably, it's better to carefully define array, then dispassionately examine Python lists to see if they match that definiton. You'll get a yes sometimes and no others. I say "dispassionately" because too many people seem to assign moral qualities to whether or not something conforms to a given definition, but that's not a path to understanding. No matter what definition you write down for "array", not a single characteristic of Python will change.

The subway does the job of a car in 99% of cases. Doesn't mean they're the same thing. I also wouldn't appreciate an article about subways with the title "Cars".

I have literally never seen or heard of a definition of array according to which lists are arrays -- can you cite one?

Can you cite a common definition of “array” other than a bare minimum of being randomly accessible? (Nothing else is pinned down. Fixed vs variable length, single vs mixed type, or even underlying data structure (cf NSArray)).

By the only universal definition I can think of, python lists are arrays.

Python lists most certainly meet the mathematical definition of array (ie name by index)

It seems you're right. Python lists are arrays -- I didn't know that.

That makes my point even stronger. The article about "Python Arrays" directly claims that Python Arrays don't exist, which is apparently wrong!

The whole point is that I came away from the article believing information that is false.

Arrays are commonly an implementation, while lists are the mathematical or logical structure.

Same as how a hashtable is used to implement a mapping.

Python lists are dynamic arrays, not linked lists.

Then why does the article incorrectly claim that Python doesn't support arrays?

The whole point of my comment is that I went away from the article still not knowing whether Python has arrays, or not. I can't understand how anyone would defend an article called "X" that doesn't even properly inform you whether X exists

The article is not even wrong. That first yellow highlight is … ugh.

If a programmer from another language asks for an array, I'm going to point them at the `list` class in Python.

As some other sub-comments under your original post note, some uses of an array want the actual data to be contiguous. But Python `list`'s values are references to other values, not the direct values themselves. If you're familiar w/ C, it's closer to an array of pointers to objects. That matters for some niche cases. But in basic tutorial? No. And Python has some built-in types to account for some of the niche cases. Sure, that pointer is not free, and the overhead of a Python object is not free, but Python is a high level scripting language, and generally, `list` provides a random-access ordered collection, which is what most people want when they say "array", and the overhead doesn't matter for many things.

Python's list type is implemented as a dynamic array in CPython. This is not required.

An optimizing Python doing escape analysis could see a list was going to be converted to a set and swap in a set and change the method calls. Or it could see a large number of concatenations and use a linked list as an intermediate form.

I would rather use a site which started with correct documentation and added examples over time, than use a site which started full of bad documentation and examples, and slowly got corrections over time.

I never use W3Schools but I have to say that I sort of feel bad about that because as a policy thing perhaps one should use something that has improved on bad behavior to become good in order to reward the improvement.

Of course improvement without expectation of reward shows a higher moral stature, but it is a stature that is perhaps not to be expected, whereas improvement based on reward seems more likely to exist in our world - given studies of the matter.

If you use the site after it got corrected the difference is nil :)

W3Fools has updated their stance:

"Today, W3Schools has largely resolved these issues and addressed the majority of the undersigned developers' concerns. For many beginners, W3Schools has structured tutorials and playgrounds that offer a decent learning experience. Do keep in mind: a more complete education will certainly include MDN and other reputable resources."


That webpage is why i stopped using w3schools back in college.v nostalgic

I find w3schools dumbs it down a bit too much in certain cases and sort of gets in the way of finding the info you want.

Compare https://www.w3schools.com/jsref/jsref_substring.asp with https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

The MDN doc allows you to run the code there and then - no jumping around to a "Try it yourself" page. Also, MDN gets to the syntax quickly - with w3schools, I have to search for the syntax in amongst a bunch of other junk that I really don't care about at that moment (like browser compatibility).

To a seasoned dev, MDN feels clear, w3s feels like a confusing mess. Maybe for early stage devs it's the other way round?

Both of them seem to be equally useful to me. Both show the one thing I search the most at the top: The example.

In w3schools, "Definition and Usage" starts referring to "start" and "end" parameters before even mentioning them. It's really quite annoying to read that first and then see the syntax...

As someone who is new to all of this, I like W3 schools as a complement as well. I like the MDN but a lot of it goes over my head. W3schools does a good job of breaking some stuff down and can be easier to read. But at the same time I find the MDN much more resourceful when I'm trying to get down to the nitty-gritty.

Yeah I certainly flow from one to the other a lot.

If I need the finer details and understand what i'm looking up, straight to MDN.

If I'm in over my head and want a bit more context, back up to w3.

And then sometimes back to MDN ;)

I feel the need to "me too" here. I use MDN almost exclusively now, but W3 schools helped me a TON before I could understand MDN.

I am of the opposite experience. I find the w3schools site to be so terribly out of date, with such terrible approach to learning and documentation I found it did me more harm than good.

If you actually read the docs on MDN, you can write stuff that actually work instead of copying random snippets of code until it does what you want to do.

Part of w3schools' bad reputation comes from intentionally failing to disavow itself from the W3C (w3.org) while providing commercial certifications. The W3C asked them to clarify this non-affiliation several times and it seems the only thing that ever came from it is one sentence on the About page.

Seeing that many developers (including experienced professionals) thought the two entities were related, it seems obvious that they directly benefited from that confusion. Luckily this seems less relevant now that WHAT WG exists separately from W3C and ECMA/TC39 is more prominent.

W3Schools has been turning-up in my web searches for probably as long as it has existed [1] and I can't remember it ever occurring to me that it was affiliated with the w3c. Maybe this really was a concern to w3c but I seriously doubt many other people were mislead.

[1] Just checked. Twenty years!

I never did because I had seen sketchy brands trying to mimic popular brands before, so I was primed to be skeptical.

But it is pretty natural in how language works for people to see similar names and assume an association. And you can't reconsider an unconscious association, since it's unconcious.

I've been doing web dev work for over a decade now and always thought there was an affiliation with their w3schools and W3C. Fortunately I've only used them as a quick reference and not for any kind certification as OP mentioned they also provide.


it had such good SEO precisely because it was mistakenly assumed to be run by w3c by a LOT of devs who proceeded to click those links enough as to inform google that this is a "important site"

I didn't know that thanks.

I wonder how many folks using w3schools.com really know who w3.org really is ;)

Part of w3fools bad reputation stems from the fact the site is (or at least was) full of errors - especially their SQL part.

I stayed away from W3schools for a long time because the bad reputation, but I started to use it again recently and noticed that it had imropeved greatly.

W3schools is better when it comes to HTML+CSS with JS sprinkled on top questions IMHO.

MDN for the specifics.

Lots of people are commenting to say that W3Schools is now fine. I disagree. On the rare occasion that I end up interacting with them in some way, I find errors.

My Stack Overflow post history contains three mentions of W3Schools, all of which involve W3Schools making an error:

* https://stackoverflow.com/q/20610930/1709587, about W3Schools stating falsely that it's necessary to explicitly add `type="submit"` to submit buttons in HTML to ensure cross-browser compatibility.

* https://stackoverflow.com/a/52355253/1709587, in which W3Schools makes false claims about the `colspan` attribute - both about what the specs say about it, and about how browsers implement it.

* https://stackoverflow.com/a/46866568/1709587, where W3Schools suggests a JavaScript function to shuffle an array which both technically invokes undefined behaviour under the ECMAScript standard and which does not fairly shuffle arrays in practice in real browsers.

None of these things are fixed. The fact that they tidied up the specific errors that the W3Fools team listed, in response to the biggest ever hostile PR campaign that W3Schools ever faced, does not mean that they are now a decent, error-free source. Far from it.

My impression is that people are not primarily arguing that W3Schools is great, but rather that however shitty it might be, it fills a void that MDN doesn't.

I'm pretty serious about web development, and yet I constantly find myself mildly frustrated with whatever MDN resource I find when I'm looking for a solution to my problem.

If I had to guess why I get frustrated, it's probably because MDN seems to focus on being a comprehensive reference at the expense of offering examples and solutions to those who don't immediately care about the nitty gritty.

I think fetch() is a perfect example of this. Back when I googled how to use it, I ended up on MDN and it wasn't too helpful. I had to scroll down and click on another link to get an example, and while that example was for JSON, it immediately made it clear where I should look if I'm dealing with some other kind of response.

Not that W3Schools is better. It sends me here: https://www.w3schools.com/js/js_ajax_examples.asp

But what I'm really missing here is a php.net style website that gives me some concrete examples that solve the most common use-cases, and either offers more in-depth material if I want to properly understand it, or references MDN. I totally understand how for many situations W3Schools is that resource.

I don't do web programming, but that sounds extremely minor compared to practices taught in a lot of books.

Books have a very wide range of standards, though, so there are a lot of books that are vanity projects or from bottom tier publishers.

Fundamentally, W3Schools is a content mill for technical material, and they prioritize SEO over accuracy.


Three observations:

1. These problems caused actual confusion for real developers doing ordinary web development work. One of the linked questions has hundreds of thousands of views.

2. You suggest I'm being a pedantic dick to people who are "helping others", but W3Schools doesn't help anyone - at least compared to the counterfactual of them not existing. It would hypothetically be right to say "okay, they have errors, but they're better than nothing" if the realistic alternative was "nothing". But the realistic alternative is that MDN would rise to the top of search results. The complaints about W3Schools' accuracy come in the context of them having skillfully SEOed their content above basically everything else, including huge amounts of not-for-profit content that is vastly superior to theirs. That does cause their very existence to do damage to the world, and make them worthy targets of criticism.

3. Remedying the point about the behaviour of colspan in real browsers being misdocumented doesn't require W3Schools to "write a novel" about anything. It just requires to them to remove content they've included which is false.

LOL, i just read your dumb stack overflow posts. They are dumb because it really makes no difference. Leaving off the spec is just a bad practice and getting butt hurt because of a "Tip" (not a declarative rule mind you) may not be correct (although I bet if you actually check browser behavior, w3 is probably correct - i'm not about to check 20+ browsers to find out).

In the second post https://stackoverflow.com/a/52355253/1709587, W3Schools gave you the information litterally from teh HTML4 spec. It's hardly W3's fault that it wasn't followed as designd. This is the type of pedantic nit-picking bullshit i'm talking about.

And on your third link, I checked the W3Schools page and it literally says "Note: Only Firefox supports colspan="0",..." Contrary to what is in your StackOverlflow post, I assume you only read the Attribute Values and not the whole page. Blaming W3Schools for your lack of reading comprehension is shameful.

I should probably go back to the first two questions and see what else you just didn't read, but were quick to blame they didn't have the "right answer". People just need to learn to read, imho.

> w3 is probably correct > It's hardly W3's fault

Note that W3Schools is not the W3, and have no official affiliation.

> They are dumb because it really makes no difference. ... getting butt hurt because of a "Tip"

It does make a difference. If that tip had been true, it would mean I'd been writing HTML that only worked in a subset of browsers the whole time, and I would've needed to go over all HTML forms I'd ever written and correct them to ensure browser compatibility, and educate my colleagues who also left off the attribute. Are you suggesting that I should read something like that, that if true would mean that all the forms I've written are broken, and just ignore it? Or blindly trust it, and demand that my colleagues change their code style on the basis of an unsubstantiated "tip"? What was I meant to do other than dig deeper to try to find out the truth?

> W3Schools gave you the information litterally from teh HTML4 spec

Yes. Which has been obsolete for years, and yet their page isn't updated.

> I checked the W3Schools page and it literally says "Note: Only Firefox supports colspan="0",..." Contrary to what is in your StackOverlflow post

I literally quote the same passage in my post and note, explicitly, that it is untrue. Firefox's behaviour is just like all the other browsers.

Also, a moment ago you were berating me for taking an aside seriously. Now you're also berating for not scrutinising every aside for caveats that contradict the main documentation? It's unclear that there's any approach to reading W3Schools that will satisfy you, other than magically divining the truth from their docs even when what they write is wrong.

> People just need to learn to read


Many years ago, when w3schools was truly terrible, a bunch of prominent developers created https://www.w3fools.com to promote MDN. Nowadays, that site reads

Today, W3Schools has largely resolved these issues and addressed the majority of the undersigned developers' concerns. For many beginners, W3Schools has structured tutorials and playgrounds that offer a decent learning experience. Do keep in mind: a more complete education will certainly include MDN and other reputable resources.

I've always disagreed with this and hated the level of snobbism. w3schools was always better and still is better than MDN at what it is intended. w3school gives quick and simple answers to most basic web dev questions. MDN's examples are way more complex and are usually hidden under a wall of text, sure their documentation are more complete which is great if you're a student or need the whole spec. But if you're a dev trying to get something done, it's the best with stackoverflow now and github issues.

I agree that MDN is not always at the right level of detail for a lot of questions, but the archived version of w3fools shows some truly awful errors. The w3schools content just didn't meet a minimal bar of accuracy back then.


I personally stopped visiting w3schools when I started finding more answers that were simply wrong than ones that were right.

Glad to hear that it has improved since then, though.

I wish google would automatically put MDN at the top of search results. As it is I have to scroll through 4 or so other links before getting the MDN result.

You just made my day. I've always been so frustrated with google that they would consistently place w3schools higher than mdn. I found it shocking and very much un-google. Typically their search result priority is exactly what I'd want.

Use DuckDuckGo and !mdn, e.g.:


or just mdn.io/regexp

You could add 'mdn' as the first argument in your search query. That works pretty well.

Also I wish I could just exclude any given site from my search results.

Google insists on having my information so they can "serve me content tailored to my wishes". Well, Google ... drop the w3schools already!

Sadly it seems pretty clear that AI, algorithms, or just any custom content systems ... will be directed AT us now, not FOR us.

Google used to let you ban certain sites from your results, and stopped doing that. I'm using this one and it's quite nice for DDG:


Just add "site:-domain.com" to any given search query.

Yeah, but that approach is annoying and pointless. Typing that is no faster than scrolling past the w3schools results when they appear, so why would I do it?

I Google loads of stuff each day. I want to drop w3schools from all my results, automatically.

Then make the default search on your startpage add that to queries automatically.

p.s. I mostly learnt how to do that on w3schools. :-)

You can easily do that.

If you wanted to exclude example.com just add

to your search query.

I usually add "mdn" to my search when I'm querying a HTML/CSS/JS topic.

I wish too. But looks like w3schools display google ads while MDN does not.

Makes me wonder if that’s built into the ranking algo some how.

MDN is reliably on top and often called out in a meta box on Duck Duck Go.

I think DuckDuckGo does this already

Unpopular opinion time, but MDN != W3schools.

W3schools may have questionable content. It may have content that is not trendy or latest/greatest. The security concerns are important, but if we're really being honest with ourselves most of the vitriol is pedantic superiority complex attitude that permeates tech conversation.

W3schools is a gateway to learn web technologies. If you go to the homepage, above the fold is tutorials, learn HTML, learn Javascript in plain sight. MDN is a search bar.

I learned PHP in high school from w3schools. I don't use it now; I use the PHP docs. I learned how to host an HTML site from w3schools; now I reference Apache docs because I know what even a webserver is. I once got a CD from McDonalds that kickstarted me being a lifelong fan of one of my favorite artists. I'm sure all of the "hardcore" fans would look down on me for that too.

Anyone serious about web dev pulls for multiple sources all of the time; probably from w3schools and mdn at the same time. People grow. Sites like this are important, although imperfect.

I am confused. I expected an editor but the link goes to a promising looking OS? Can anyone recommend a good editor for this Emacs OS? Maybe someone has ported ViM?

That's just Evil!

I hoped it wasn't true before I clicked, but it was

Does any of these redirections matter? Does anyone ever just spontaniously visit somedomain.dev anyway? You google w3school and go to the top result, right?

Well now it's in all of our browser history so until we clear our history it's going to autocomplete .... dang it.

vim.dev redirection is evil, w3schools.dev redirection is gift.

> vim.dev redirection is evil, w3schools.dev redirection is gift.

vim.dev redirection is eval

I don't think vim.dev will go as far as installing evil-mode.

Is this supposed to mean something?

Probably someone bought the domain as a joke or to lead young developers in the right direction.

Other than it being funny, no it means nothing.

We at Mozilla are glad folks love MDN, but domain squatting kinda sucks for everyone. MDN can stand on its own. :)

In my experience, w3schools provides mediocre documentation and bad code snippets. The things they suggest are not good practices, in many cases, and serve only the folks looking for some easy copypasta without needing to really understand what their code is doing. Rather than suggest using a framework (half of their snippets could be replaced with a single line of jQuery) they put bad or half-baked advice out into the world with no good explanation of what the code they're giving you is actually doing.

Gosh, a framework? Their job is to show examples on how to use ~~web attributes~~basic web elements and pure Javascript. Which is btw exactly what MDN does as well on those function pages. jQuery has no place there and the modern web developer crowd (which I'm not a part of) even regards it as legacy, to be replaced with React etc. No, the focus on the real basics is exactly right.

But they're rarely "the basics". Search for Ajax on w3schools and you'll be greeted with code samples for loading XML CD catalogs and replacing the contents of <div>s with HTML loaded without error handling. And of course, there's no explanations for any of it. It's never been "the basics," it's never been about quality, it's a content farm to pull in junior devs with outdated copypasta so they can show ads. Plain and simple.

jQuery is not sexy or modern, but w3school's supposed tutorials are ancient, teach bad practices (find me an XHR example that doesn't use ready State), and work objectively less well than their framework (or modern JS) counterparts. For the market they're serving, they're leading to _worse_ software being built.

That's not fair. The article you mention is https://www.w3schools.com/xml/ajax_applications.asp, and it comes after a sound and basic introduction of the XMLHttpRequest element.

> find me an XHR example that doesn't use ready State

I absolutely see no problem with using readystate.

> and work objectively less well than their framework (or modern JS) counterparts

Come on, that's silly. What's called modern JS and what those super heavy framework use are in no way objectively better. To confront beginners with all their overhead (build tools for JS! Just crazy) is in no way helpful.

> I absolutely see no problem with using readystate.

We have a load event now. Ready state is the legacy cruft left behind by Microsoft a decade ago. Let's not confuse new devs with magic numbers and convoluted events that are often cargo-culted incorrectly.

> To confront beginners with all their overhead (build tools for JS! Just crazy) is in no way helpful.

People have been dropping a jQuery CDN script tag on their pages since well before most build tools were invented. W3schools has _multiple_ "tutorials" that could be replaced with $('...').load('...').

It's rich when HN complains about websites that do things like break middle click and browser history and lack error states, but then advocate for trash code like w3schools peddles that makes these bad practices more common.

If you are only talking jQuery when referring to frameworks my bloat and build tools arguments don't apply, that was for real frameworks like react. jQuery is fine in that regard, it's just not the modern choice anymore, without being vanilla js. It would be strange to boost a legacy solution like that.

_Always_ MDN over W3. Especially if you're unfamiliar with a concept - the latter just creates a lapse in understanding.

Note that w3schools.com does not.

I first thought that w3schools had closed shop or been bought by Mozilla. These new TLDs just cause confusion.

I tried improving mdn with examples of window.alert, which is laughable right now, but my PR was not approved because MDN was structured differently than the browser API.


Like the page literally, have a screenshot of a old school OS alert box?


Is there some ulterior motive behind W3Schools besides to teach people web stuff (and to maintain its own existence, which is no different than MDN)? I use MDN because Mozilla literally implements a browser, and I'm not the biggest fan of W3Schools, but this mostly just feels petty. Tons of people get valuable answers from both sites.

What I don't understand is how w3fools got onto their first ranking position for every single web dev topic there is on both ddg and G.

1) meaning w3schools not the w3fools parody site

People might want to be careful with all these domain names; they might loose them to the proper owner of the trademark or name (in this case w3schools.com).

And MDN is also using https://mdn.dev

I prefer w3schools. Their site is easier to search than MDN and I get the information I need more quickly. MDN is more valuable if I need to check browser support or figure out an edge case.

People who have a hate hardon for w3schools are the kind of people who will judge you for the kind of dish soap you use.

I'm certain w3schools will claim the domain in short order.

W3schools helped me land my first job. I learned pretty much everything by reading through it, HTML, Javascript, CSS, PHP, MySQL....don't get why people are bashing them, it was a great resource to have a around.

As much as I prefer MDN, W3Schools is fine now.

Trashy and disgusting. I hope it's not Mozilla doing this.

Obviously not.


Can we be gracious on HN, and assume that people have good reasons for disliking a site?

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact