I just pulled up the page for String.match, which is a weird function because it returns an array that has named properties on it. W3Schools doesn't mention that. It just says it "method returns an array with the matches." It also doesn't mention the behavior without the global flag. I also noticed a misspelling ("Differense").
Comparing these two pages, only the second one is competent at describing what the function actually does. Neither is perfect. The MDN doesn't do a great job of communicating all the information, but at least all of the information is there.
I think I've been using MDN for 20 years (I don't remember honestly when it first came to be), but it's first time I hear about it. Banner/link blindness is a hell of a thing! Thanks for letting me know.
Tangent: why is .match on Symbol? I read through string.match and looked at Symbol and I don’t understand why all these helpful functions exist on Symbol.
Symbol.match is not the match function, it is a Symbol which can be used as a property key on an object that is supposed to behave like a regular expression.
The purpose of having Symbol values is to ensure the property keys are unique and can't collide with string keys that predate new standards.
Ohhhh okay. So it’s just a flag describing expectations about an object. And as a Symbol it doesn’t interfere with any other part of the object such as properties or iteration.
I would say they haven't changed much over the years, but I always quite liked them for just getting answers to simple things fast.
MDN is of course fantastic, but generally requires more reading/scrolling and is therefore slower for simple things like what's the markup for a button or select drop down thing look like again.
As for the w3.css style sheet, it's quite good for sprucing up small internal web apps.
You nailed it about the appeal of W3: It's quick to get to the point.
I can read the first para and figure out what I'll be learning. The code examples are interactive and visual, and help enormously.
MDN reads like a technical reference. Wordpress documentation is similarly structured, but it has a comments section with a lot of sample code for different use cases, which helps me figure out whether the function I'm looking at will help accomplish what I am trying to do.
Look at the examples of W3schools' errors in the thread, and then compare them to what a beginner learning experience is actually going to be like.
Step 1: W3schools.com is the first link on Google, so I'll go there.
Step 2: OK, I copy/pasted some of the code into my Sublime Text scratchpad file, but I'm getting an error when I load it in the browser.
Step 3: Do a search on the error message, StackOverflow is the first result. Go there and find the issue (syntax error on W3schools page)
Compare this to a world where StackOverflow is always #1. Try posting a question about learning HTML and CSS and see how fast the mods delete your question. W3Schools serves an important purpose.
> The `margin-block` CSS shorthand property defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.
Whew, that's a lot.
Setting aside how inside baseball the terms "logical block" and "physical margin" are, this description fails to tell the reader why they would want to use this property. Why use this, instead of `margin`? It's nowhere on the page. Typically, that reasoning lays buried in the distant and forbidden "Guides" section (which MDN's search doesn't index).
“But look, you found the explanation for `margin-block`, didn’t you?”
“Yes I did. It was on display in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying 'Beware of the Leopard.'”
You can't expect long documentation for beginners to be inline on the reference pages. Just start teaching the beginners you help how to find the guides.
The guides are written for beginners. But an explanation of why does not need to be. It could even be included in that intro paragraph with just a sentence or two, with a link out to the guide for more.
> how to find the guides
I'll let you know when I learn how to find the guides. I didn't even know that one existed until I scoured the site.
There are a lot of guides. If you go to the more general references on the hierarchy (indexed at the left side), you will find small explanations on the why with links for the guides.
What you won't find are general details on the more specific references. Unfortunately, search engines prefer the specific ones, so you will have to backtrack by yourself.
Tried learning HTML/CSS through that site in 2006. Terrible experience, so I continued to use Dreamweaver for personal projects.
Tried learning again in 2014, after a career change: Excellent experience, so good that I go there first.
I simply did not grok responsive design until I read their article about floats and media queries. I was trying to get admitted into a bootcamp at the time, and my assignment was to recreate a landing page from a PNG image, without using Bootstrap or any other grid framework.
Most official sources of technical documentation online are written by and for developers, and assume a lot of prior knowledge. I never understood a lick of the official jQuery documentation either, until I went through W3schools section on it, and then later Jon Duckett's beautifully visual dead-tree book on JS and jQuery.
I can only judge them based on CSS and PHP content because those are the things I can even properly compare. W3schools continue to be a very low quality resource, incomplete and incoherent on most aspects.
There is a "try it yourself" that I sometimes use, merely because it's quick to whip something up, and much more faster than codepen.
Eh. I'm the same as GP, because back before learned that behavior, w3schools had plenty of straight up wrong information. So their question still stands: have they gotten better?
This is false. Paul Irish still has the repository for w3fools on Github. You can verify[1] that Paul Irish himself revised the text. Paul Irish works for Google. There is no reason to think that w3schools paid him to revise the content. There is a closed issue that explains the reasoning[2]
Thank you for remedying my ignorance; I was in fact mistaken. It's too late to edit my comment, but I won't repeat my invalidated claim again.
That said, I will continue to resent and distrust and disparage w3schools because of their shady past. The only reason they cleaned up their act was the concerted efforts of w3fools, Paul Irish et al -- which efforts were only ever expended bc w3schools had succeeded in pwning SEO/SERPs and it was such a distraction and blight on our profession.
It's like a politician gaining office via election fraud / ballot-stuffing, then proposing legislation to improve voter rights; they shouldn't be in office.
No. The issue is that it's sometimes OK, sometimes good and sometimes hilariously bad. I don't want to play russian roulette with docs so I installed W3School blocker extension to weed out the problem at the root :)
I wrote a search-result filter extension (actually TamperMonkey script) just for w3schools, many years ago! Then I added all those auto-generated comparison sites: stackshare, wikidiff, etc.
It's satisfying to see that my dislike is not some unfounded personal quirk!
They have some good resources for obscure technologies, like XPath, but for the big ones like HTML/CSS/JS there's both the danger that they're out of date and not showing you what's new, while also possibly showing you old hacks and workarounds that are against modern best practice.
MDN is a better choice for (almost) anything MDN has content for.
How much of the core of HTML/CSS/JS has been deprecated?
Somebody going to W3schools probably isn't looking for the latest and greatest. The person who is looking for that would already have a good grasp of the fundamentals, and would have graduated to looking elsewhere, like StackOverflow or Caniuse.com.
I'm not an expert, but W3 schools uses <br> in their examples which is a bad way of teaching since my understanding is that there is never a good reason to use a <br> especially not to format a page, which is a habit I had to drop because I learned it from w3.
What’s wrong with <br>? It’s a perfectly semantic way to insert a line break. I use it often when I’m trying to get a block of text to look good at multiple breakpoints.
I think the main reason given is if you think something needs a br tag, the content before and after should probably be in p tags or something else. That's at least what my 2am brain remembers reading somewhere some years ago.
<p> tags are for paragraphs. If you’re trying to break in the middle of a paragraph or sentence, they’re the wrong tool to use. Also, they’re not flexible across breakpoints like <br> tags are.
They definitely updated the content of the site. But they left the look (color scheme, etc) largely unchanged from the 2000s, so opening the site probably reminds some people of the bad old days.
I think there's a lot of unnecessary aggro in here just for the fact that it's from W3Schools. Yeah, MDN is a better source of record but W3schools often lays things out in a way that's easier for beginners to digest. I started with W3Schools before moving to MDN. It served a purpose.
I've heard it's way better than it used to be. It used to be a completely terrible resource but that was like 10-years ago. It's obivously had time to improve over the years.
One of the bad things in tech is that reputations stick and people are too quick to bad mouth something because of what it was like 10-15 years ago.
I occasionally used that site at least 20 years ago.
It seems to me that it serves the same audience as it did back then. You can quickly find useful pieces of information when you need them.
I don't get where did the bad rep come from. Did they show inaccurate information at some point?
I never noticed that.
What I did notice is that people are eager to compare them to MDN any time they are mentioned. Even the wikipedia page about them says "MDN Web Docs – similar website".
This is obviously my personal experience and I could have missed something.
Same here - I used it when I was writing DHTML on top of PHP 5, then years later when writing my blog, then from time to time when I had to touch the frontend. It's a nice resource for refreshing your memory of the basics, because the basics are front and center (one could say there are only basics there...) without distracting discussions of implementation details. When I need a detailed reference, I go somewhere else.
There definitely were problematic articles on the site, and its biggest contribution to my career was probably teaching me to cross-check my sources. There's a list of problems and nitpicks here[1] - apparently all of these were fixed over the years, hence why it's archived.
> I don't get where did the bad rep come from. Did they show inaccurate information at some point? I never noticed that.
Yea, they did. There was a massive campaign to get w3schools to fix their docs because it was out of date. The site is still alive https://www.w3fools.com/ but updated. But check out the wayback when machine to see about the errors.
I think here it means you don't need to buy a license or sign up to any terms and conditions, which would be in line with the MIT license in the github repository.
Okay, you have to admit them tagging all the classes with a W3- prefix is kind of funny. Looks like their SEO spam approach leaked out to their framework also.
But I agree with most people, this site will never recover from its poor reputation. And that’s also their business model.
We can only hope Google will eventually tone down how much their site appears in search queries for topics they provide no in-depth information for.
All css frameworks really should prefix their classes so you can mix them.
And I hope that Google keeps showing them in search results, because while MDN is great for in-depth information, most of the time I just need a quick reference of common attributes, and no I don't want it cluttered with a bunch of in-depth information when I am just trying to see what the correct word for something is and how to spell it.
Both W3 and MDN are valuable resources for different use cases.
I mean, you are more than welcome to share a subjective opinion. "In-depth" in this context means actual relevant content and not a few lines of text. Yeah, sure, one-liners are great and I myself have to Google them all the time because I forget the different variables that shorthand's can take, but W3Schools is on another level when it comes to this.
They inherited their authority from a time when content on the web was sparse and thin as a rail. The argument here is not that they don't provide _any_ useful information, the argument is that the inherited authority is making them first results for queries were they obviously should not be first.
That's a standard practice in languages that don't have namespaces. C and Emacs Lisp have both proven to be "working out" for decades despite using prefixes instead of namespace support.
Why not? Using prefixes to create a "namespace" is a well-established practice in CSS. I'm not sure there's much of a point in doing it to use multiple frameworks, but there's really no reason it wouldn't work.
I might be accused of ageism, but honestly, I think the ratio of young and very young programmers to mature ones is what makes for all the tribalism and drama within the community. Of course, there are old folks who still behave like they're in high school. I think it's a nature of the profession to attract such people, so we won't ever be completely free of them, but from my observation - most older (since when 40+ is old, right...) programmers tend to be much more level-headed and way less emotional with regards to tools they use.
W3 school's previous focus on SEO over accuracy is pretty well known. If you break your users' or audience's trust, it turns out that can have lasting impact.
There is of course that nuclear option of blocking the site entirely on search results using a browser addon. I block w3schools, Pinterest, and a bunch of GitHub/stackoverflow scrapers, and didn't miss a thing.
What the heck IS w3schools? i.e who is behind it, where did it come from, where is it going?
It's always there and seemingly always BEEN there, and it always comes up in my search results and indeed I often use it and the info seems pretty good.
But apart from that, how can something so well used basically fly under the radar?
As one comment under said, it's a small Norwegian family company (5 employees) that's been around since at least 1998. And they've always focused on what they do.
From open Norwegian business data (https://www.proff.no/selskap/refsnes-data-as/sandnes/it-kons...), it seems like they have a yearly revenue around $4.5M USD. From the annual salary expenses, those five employees either make bank - or they hire a lot of consultants from overseas.
So I guess it's a good example of first-mover advantage.
Most people seem to think w3schools has some form of association with the W3C. It is actually run by a small family company, Refsnes Data AS, from Sandnes, a depressing city on the western coast of Norway.
It's how I learned web development 20 something years ago. They have simple, clear, entry level tutorials on HTML, CSS, JS and a number of other languages that give you enough to become somewhat productive on the web, so you can be interested in deeper content. It's an institution.
I downloaded the W3Schools offline dump zip archive, which was under 50mb IIRC, from a friend when I first started learning programming because I didn't have access to proper internet. That helped me a lot to learn to code.
Good for minimal stuff that’s fire and forget. Their official GitHub Repo is not in sync with the latest release on their website. CSS classes often contain !important rules which makes it harder to customize. No use of css variables so good luck with darkmode. They don’t make use of flexbox or css grid.
A
I'm not a frontend person and I'm attracted to simplicity. I can certainly believe this is not good, but do you know if there are good minimal alternatives like this? Bootstrap seems a bit complex for basic stuff.
Bulma is smaller. But I feel CSS frameworks are not much flexible, which may explain their decay. Also, frontend modern tooling helps you build your own components with minimal CSS helpers, like Tailwind.
It sounds like whoever wrote that page doesn't know much about software licensing. Doesn't make me confident that w3schools has improved as much as people say it has.
However, it does seem to be MIT-licensed. Linked from the downloads page:
Being a bit more charitable, it could be that they are explaining things in a way that likely makes sense to someone just getting started. For many, “license” is a synonym for a software unlock code, not a legal contract.
It's debatable which style is best and it also depends on the contex . Tailwind has popularised this style to the extreme, see e.g. https://tailwindcss.com/docs/align-content
I think of w3schools as largely SEO spam, though sometimes I have found useful answers when they come up as the first hit. Is that the general perception?
I always thought so too, but I think what's actually going on is that MDN is like an engineering professor, and w3schools is like a high school shop teacher. The former gives you information that is more correct and deeper but can linger too long on technical minutiae. The latter has a more superficial understanding of technicalities but a stronger grasp of practicalities and how to get things done. This characterization seems mostly fair from what I'm reading in this thread (beginners prefer w3schools, seasoned hackers prefer MDN), and it may well be that w3schools doesn't even need to do any advanced SEO hacking to overtake MDN because amateur web devs outnumber veteran professional web devs.
I am a back-end developer, so any front-end dev I do is on hobby projects, and for that w3schools pretty much has the answers needed to get things done.
For back-end related stuff like headers or response codes I do go to MDN, but that is because if I need to look it up it's because I need detailed information.
SEO spam seems to be more annoying than ever. Maybe Google doesn't work as well as it used to. Google values waffly, padded out, diluted content rather than brevity and succinctness. Try finding a recipe and you'll end up reading paragraphs about farmers markets and the cultural origins of the food rather than how to actually cook it!
w3schools has gotten better over the years[1]. I use MDN for almost everything, but I do mistakenly click the first result on Google Search which is usually w3schools. You can use this handy site to have the "I am feeling lucky" Google experience while searching for any web related queries. Example: mdn.io/flexbox
No, what happened with w3fools is that someone realized that it was not “politically correctly” so they picked out a couple of “fixed” examples and said “never mind it’s fine now.”
The reality is that w3schools is low quality spam and it will never change.
From my experience with Bootstrap I can tell you the only thing you really need is the grid part of it and there are so many lightweight "frameworks" that have just that and its only 250 lines of css in the example of simple grid: https://simplegrid.io/
Everything else, buttons, modals, sliders, chords are super simple anyway you can just make them yourself or use a way more featurerich separate slider or modal framework and still be on less junk code than with using bootstrap.
tl;dr if you know html and css, you no longer need a css framework for most cases.
Has w3schools gotten any better over the years? Would anyone consider using this or any package from them?