Documenting the Web together
blogs.windows.com
blogs.windows.com
It was awesome. You could hit F1 and it would instantly pop up good, detailed, documentation for whatever method or keyword was under your cursor. In any of their developer products, so it worked as well in SQL Server Management Studio as in VS.NET. Every language, every technology, updated monthly via Automatic Updates on your dev box.
But they stopped shipping it in favor of "web help". That's the thing where you hit F1 and it spends several seconds opening a web browser (a custom one in a new tab in the IDE for some reason), then several more seconds opening a "meet the mouse" style page telling you how to use the code editor window (which it had helpfully detected was your context when asking for help).
So in one stroke, they switched from the worlds most awesome help system at your fingertips to "just go open Chrome and type your search into Google, since that will at least get you something relevant".
Today, they've improved that workflow by trying to ensure that something relevant exists on MDN, provided you're searching for web-related stuff.
We're still about 10 years back from the state-of-the-art in 2003.
Shame.
Microsoft was really good at developer documentation.
Apps like Dash and websites like devdocs.io come close to the same experience, at least.
For C++, cppreference provides archives of all their docs: http://en.cppreference.com/w/Cppreference:Archives.
Of course, that won't help you for Win32 or .NET.
There's also https://zealdocs.org/
I guess some guy at MS thought: People look online for solutions; We should do that too!
They broke things because the web browser was slow and the search results sucked.
There is potential for improvement. The platform is set for that. But only if someone could go and do the work we would not be talking about this anymore.
And the second time I clicked I was met with this message, not mdn.io's fault but nonetheless (i.e. "google police" - not sure what they mean with "unusual activity", there is hardly any at the moment - maybe not enough? :) or maybe I just got a busy vpn exit point): https://imgur.com/itn48dZ
You can get the very same effect like DuckDuckGo keyword search but with "just the last redirect" with vanilla browser bookmark [2] with `%s` interpolation:
https://www.google.com/search?btnI&q=%s%20site%3Adeveloper.mozilla.org
[1] https://github.com/lazd/mdn.io
[2] https://www-archive.mozilla.org/docs/end-user/keywords.html - old page about feature in Firefox (currently the same works in Google Chrome as well). Amusing that the this `btnI` search is in the second example there. !mdn await
This will perform a query to DuckDuckGo (the non-tracking search engine) first, and automatically redirect to MDN.No need for extra add-ons; this is one of the standard set of 'bangs' DuckDuckGo provides.
https://news.ycombinator.com/item?id=15306429 is my list of custom search engines.
how's the content added though? its missing so many libraries i use...
https://chrome.google.com/webstore/detail/mdnjump/mfjekjhknp...
This also works with any website wich supports search I think. Other good ones include "!hoogle", "!hn", "!yt", "!g", and the list goes on.
Worth pointing out: submitting bang ideas is very, very trivial, but the whole process may last months. Last time I've read about someone complaining about a long bang, I've submitted "!gw" as a shorter version of searching Gentoo's Wiki and it became a thing a couple of days ago. This is maybe fifth or sixth bang that I've submitted to them via https://duckduckgo.com/newbang.
Related, when I was active in standards work (I learned just how badly that stuff was run) I discovered that new people in a standards group that was being formed would be lobbying to be the group Chairperson or Vice Chair. But the people who had been in standards bodies before were all vying to be the Editor. That was because the group could argue all they wanted but at the end of the day what was in the standard was what was in the document and only one person had absolute sway over that, the Editor.
So when I see all these leading lights, who just got through a rancorous debate about DRM with the standards body, endorse a new way to capture the "actual" standard, I see a seasoned standards wonk offering to do all the slavish work of editing the documents so that everyone else can focus on the hard work of coming up with the best possible standard.
MDN is very good for details and in general as reference.
https://www.w3schools.com/html/html_forms.asp
Sadly, "html forms" brings up 3+ W3Schools pages of at the top.
W3schools is contributing to poor education amongst junior web developers.
It distresses me that the specs on w3.org are so hard to read for the average developer. It's great to see how MDN focuses on simplicity, readability, and usable examples.
I think this is actually fairly important for two reasons. The first is simply that unreadable specs are just as bug prone as unreadable code, but the second is that this increases the distance between the web as specced and the [much much much] larger developer community, and things like <img srcset> / <picture> show the benefit of having less of a communications chasm between those groups.
That doesn’t mean that specs can’t be precise but simply that good technical writing can accommodate a wide audience.
It would be a good exercise to require the public documentation parsable by humans. At least when it gets beyond the proposal stage.
Web specs recently have sacrificed the former to handle the latter, not least because past experience with web specs that sacrificed the latter to do the former was so horrible...
It's been years since I stopped contributing to and reading MDN, but this editorial stance seems to have disappeared, unfortunately.
Having a single list of all functions in python makes very little sense for the simple reason that you'd not be able to find what you're looking for in that list so you might as well just use the search in the first place.
Side note: if there's a specific function you'd like to get the documentation for you can get that easily from the interactive python prompt with the "help" function:
>>> help(zip)
And I fail to see the "missing examples". While it's true that most modules don't contain examples for every single function they usually contain a few examples for the overarching concept.So which part exactly of the python docs is bad? IMO they are, by far, the best docs any programming language has.
[1] https://docs.python.org/3/library/functions.html [2] https://docs.python.org/3/py-modindex.html
So here's the standard library page for Python lists: https://docs.python.org/3/library/stdtypes.html#sequence-typ...
As a new python programmer, how am I supposed to know that the comprehensive API docs are actually in the tutorial? https://docs.python.org/3.1/tutorial/datastructures.html
Compare that to Javadocs (something Java got right!): https://docs.oracle.com/javase/8/docs/api/java/util/List.htm..., and .NET is similar. Ruby is also ok in this regard: https://ruby-doc.org/core-2.2.0/Array.html
(Javascript is a mess of course!)
For ```list``` it says:
Lists implement all of the common and mutable sequence operations. Lists also provide the following additional method:
...where "common" and "mutable" are links.
Meaning: the methods of lists are strewn across three different location, four if you count the constructors above this sentence.
Many operations on a list are much the same as the methods on a tuple, so they are documented in one place – section 4.6.1 "Common Sequence Operations" – rather than duplicated in both the list and tuple documentation. Similarly, many of the methods supported by list are also supported by bytearray, so they are documented in 4.6.3 "Mutable Sequence Types" rather than duplicated. To get from the section on lists to the two sections describing the available methods involves pressing page-up twice. Hardly "strewn across three different location", and there's always help(list) if you really want a list of every supported method.
*all the ones you'll use regularly, at least
https://developer.apple.com/library/content/documentation/Ap...
“Apple doesn’t attempt to document general-purpose Web technologies without an eye on its own platforms” might be a more accurate statement, but even that is shaky because they spent a lot of time explaining HTML5 media while killing Flash.
If caniuse had embeds, they could easily replace the existing compat tables on MDN.
When you google "can i use flexbox", caniuse.com comes up but MDN does not.
The other thing missing from MDN, is that caniuse.com shows browser support as a percentage. Now I know I'm safe to use flexbox since its supported by 97.74% of browsers in the wild.
When a new feature comes out, I add it to both MDN and caniuse. It would be great if these two could be integrated as well.
Instead, it should show the year since which some feature is supported.
For example, for flexbox it could write:
IE - never
Edge - since 2015
Firefox - since Mar 2014
Safari - since Oct 2013
Opera - since Nov 2012
etc.
This gives a better picture.
It’s a perfect chart to show your boss when someone complains about Firefox 4 not working. Clearly that person missed a few updates :)
That being said, I would like a year on each column for the occurrences when time/year is relevant. Currently I just Show All.
I'm glad they finally just surrendered to MDN, even if it was many years late.
> The WebPlatform project, supported by various stewards between 2012 and 2015, has been discontinued. This site is now available on github
Many sites already don't work correctly in Edge, IE11 nor Firefox - it's too late, these are minor browsers, used by a smaller fraction of end users. End users on on smartphones use 95% a WebKit originated based browser aka Chrome/Safari. Chrome and Safari are bigger than the rest on desktop.
Sites in 2017 are tested against Chrome and Safari by web developers.
http://gs.statcounter.com/browser-market-share/desktop/world...
http://gs.statcounter.com/browser-market-share/mobile/worldw...
from analytics
chrome 38.17%
safari 20.30%
firefox 17.10%
ie 15.56%
edge 7.08%
I wonder why they are relaunching instead of using Webplatform.Org ?
> (Today, we’re excited to share some big news for developers around the world wide web: )We’re committing our resources towards making MDN Web Docs the best place to go for web API reference.
Could this eventually displace standards bodies such as WHATWG and W3C? If the Product Advisory Board of Mozilla, Google, and Samsung agree on a standard and publish it at MDN, will that become as official, at least de facto, as a standard published by W3C? I do see W3C is mentioned as a participant.
Also, for the sake of argument (and IMHO, of realism) let's assume that Google, who can virtually set web standards themselves these days, isn't doing this for a purely altruistic motive of supporting the open web. Why would they give up the 'soft power' of writing their own documentation for their own standards?
Modern web companies don't make money from the web, they make money from something you do while you're on the web. The less the web costs to use (in the broadest possible sense of cost), the more people will use it, the more money they will make.
That's why Facebook's trying to pay off Indian ISPs, and Google's pouring money into web browsers and internet balloons. Microsoft came late to this party because their original make-money-from-the-OS model meant they were trying to compete using the browser, but now that they have a cloud strategy like everyone else, the law of complements has turned them into good web citizens too. Thanks, Satya!
1. The people working on these browsers are just that: people. They haven't necessarily been e.g. at Microsoft when IE vs. Netscape was a thing, and probably don't hold grudges. They were hired to work with the web, not against it.
2. There was a lot of duplicate efforts, and MDN was clearly "winning". That's a waste of time.
3. A more "neutral" MDN (although I think they've been doing a pretty good job already) is good for all browser makers. Even if Mozilla and its volunteers are trying to be a non-biased resource, they'll always be writing from their own viewpoint.
4. For Mozilla, MDN being less Mozilla-/Firefox-focused might not sound like a great option, but Mozilla's mission is to build a better, free and open internet, not to be dominant. (Incidentally, that's also the reason MDN "won": this made it able to attract many contributors and supporters.)
However I think we should all be skeptical of any actions corporations take today until proven otherwise. When 60,000 Americans are dying of opiods per year (that's all the deaths in Vietnam per year) and drug companies will reject calls to regulate them and pay off members of Congress, some constant skepticism is called for (who could of believed they would do that??) https://www.washingtonpost.com/graphics/2017/investigations/...
I didn't even realize I was being cynical when I was unsurprised by this news. I don't really understand why everyone else is. (That isn't to say it isn't important news, but the shock that everyone seems to be in is confusing).
One of our guiding principles in developing Microsoft Edge is that end users should never have to worry about which sites work in which browsers. This philosophy—”the Web should just work for everyone“—led to our choice to target the “interoperable intersection” of web APIs in our browser engineering.
It wasn't favorite because I agree with it. It was favorite for the humor value of Microsoft accepting a principle that flies so strongly in the face of how the company established itself, managed its battles with competitors, and tried to sabotage existing web standards for most of my professional life.
I'm glad they are finally claiming to be on board. I'll trust them as far as I can throw them. (Guess how far I can throw 120k people...)
Looking from a non-Windows-user perspective, in the last couple of years: VSCode is now a thing, .NET is open sourced, they've started financially supporting organization that I like (like OSI and the Linux foundation), Powershell is now available on my platform, and, if I ever decide to switch back to Microsoft's technologies (highly unlikely), I have Windows Subsystem for Linux and I'll be able to run Linux servers on Azure.
As a non-Windows user, I'm totally happy with this new Microsoft.
Hope MDN becomes the go-to Wiki for the web (It practically is for me already)
Kudos to the team! :)
Looks like there is hope for a free and open Web! Well done Mozilla!
That's a good move by MS. In this context it's great to see them supporting open codecs, and for istance OGG container for audio which was recently announced as work in progress in Edge. Quite a turnaround from the old times of "best viewed with IE", ActiveX, Silverlight and etc.
Why can't MS apply same principle across all their teams? Compare the above to their push for 3D graphics API lock-in.
Edge also supports Apple's Live streaming tech so, again the only browser on Windows which can be used to watch Apple's Live events.
Too bad that Edge won't ever be on Linux.
Isn't that because of Netflix's choices, rather than technical reasons?
I've seen people talk about Chrome being able to handle 1080p in ChromeOS. So there seems to be more than just Netflix's choice involved here. Although I bet Microsoft being proactive helped. Definitely unclear.
Also I don't see any reason why Netflix wouldn't want to support 1080p in all the major browsers. The only downside might be excess bandwidth, but with the Open Connect Appliance being a thing, I doubt it is a big factor.
[1]: https://blogs.windows.com/windowsexperience/2016/07/13/get-b...
Personally, I see it as a plus that my browser/OS combo does not support this. There have to be horrid security implications that just wait to be unturned.
Insistence on DRM ironically is causing the opposite effect - wider piracy of DRM-free versions.
It's not the first time DRM hampers performance and thus degrades usability. It's by definition an anti-feature.
[1] https://en.wikipedia.org/wiki/Internet_Explorer_for_UNIX
Same thing here. "Web should just work for everyone" means "Oops, people are making Chrome-only websites, we need to catch up on web standards so we aren't left out". Meanwhile they'll boast how you need Edge to watch 4k Netflix.
First some context : I'm both a Windows, Mac and Linux user, and my favorite is probably Mac. But I've converted a fair share of my family to Linux (my grandma too) because it's more predictable than Windows, and cheaper than MacOS (I'm basically my family's IT hotline). Most of what I'll talk here is a mix of my own experience, and feedback from my family members.
Let's talk about drivers. Turns out, drivers are available for most of the hardware you'll need (which is basically GPU, WiFi, Bluetooth and Webcam). Sure, this weird piece of equipment might not have linux drivers, but in truth I can't even remember the last time I've hit that problem. I don't think equipment compatibility is the reason people use Windows in 2017 anyway, given we're all using Android/Linux on our smartphones and tablets, so I'll move on.
Let's talk about cohesive UX. Windows, since 8 and 10, has the least cohesive UX ever. Running Gnome or KDE on Linux today will get you a more cohesive UX than win10, and that's no compliment. Half the Windows apps still use the old winforms look, half use the new metro (or whatever it is called) look, and then there's all the webapps that have their own custom look and feel. Cortana is a clusterfuck of an UX, the File Manager has this weird "It's a filesystem but not really" mentality (the location bar doesn't show the full hierarchy, WHY ?), and there are so many papercuts here and there that I end up fighting my OS half the time.
Let's talk about stability. Windows forces reboots every few days because it has "mandatory updates". Windows basically built this feature where they force the computer to reboot and the user has absolutely no say in the matter. This is not the stability guarantee I'm looking for. Another anecdata : one of the few family members to still have a windows has a Microsoft Surface Pro. She has to reboot it every few days because it won't detect the Wifi card anymore. Microsoft can't even make their own OS stable on their own hardware.
Windows might have been good at all of this at one point, but that's not the case anymore. It's become terrible at all of it. So bad that Linux slowly creeped its way into my family, and that made my life much easier.
https://np.reddit.com/r/Windows10/comments/74xc2z/windows_an...
Most default Windows apps are UWP with Fluent Design now, and more are migrating towards that since they have major advantages that you won't find on Mac and most Linux distros
https://np.reddit.com/r/Windows10/comments/75lgti/announcing...
Also, your other points mostly contain misinformation.
To respond to your point specifically, I said the UX in windows 8/10 is terrible. I hope it gets better, but right now, strictly speaking, win7 was the last time windows had a cohesive UX.
And please tell where the misinformation is. Mandatory updates were a thing[0] (seems they fixed that, good). The wifi card problem on surface pros is documented[1]. The explorer does break the hierarchy analogy consistently, you can see by yourself that the location bar doesn't show the full hierarchy when you access "Libraries" (whatever those are).
When you claim misinformation, please say what is. It might allow me, or you, or someone else in this thread, to learn something !
[0]: https://www.cnet.com/news/microsoft-windows-10-forced-update...
[1]: https://www.windowscentral.com/microsoft-acknowledges-surfac...
Are we now asking Google et al to be the gatekeepers of what is deemed correct and useful because they have a preferred alternative that fits with our view on the world?
W3Schools may not have the best historic reputation, but it still has a place in relevant search results.
I have personally used MDN extensively over the years, and love it for what it is.
If you are on Windows or Linux, then Zeal and Velocity are basically the same thing (they're only available on platforms where Dash isn't). Zeal's search used to be pretty bad, but at least you have the option to send Pull Requests on GitHub.
And it's probably also just nice to be able to bite Google and Microsoft in the butt here. Those do benefit from a healthy web and both very much need the PR of supporting webstandards, but they could also both benefit a lot more from controlling a platform like MDN and then sneaking in pseudo standards here and there. So, Samsung helping out with MDN makes it even harder for one of those to build up their own version.
Lastly, Samsung does ship their Samsung Internet Browser on all of their Galaxy devices, which has got to be a somewhat significant share of daily internet users. Currently, that's Chromium-based, but they could be looking to eventually follow Google and Microsoft in making up webstandards.
They've also already invested into Mozilla's Servo, so maybe they're also just trying to build up a partnership with Mozilla to help to take on those giants.
Cool!
The submitted title was "Mozilla, Google, others team up to make MDN Docs the place to go for web API ref" which is actually an uptick in misleadingness, as you and others pointed out. Submitters: please don't do that.
> When W3Fools was launched in 2011, the state of documentation for developers was poor. This site documented many content errors and issues with the W3Schools website. The Mozilla Developer Network was around but it did not have much support at the time.
> 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.
MDN would greatly benefit from more soft documentation and a playground setup similar to W3Schools
Or not. MDN usually suits me fine.
Actually, I find TutorialsPoint https://www.tutorialspoint.com/ generally pretty good, if not lacking in some depth. They give a decent soft intro, though.
They've corrected most of the bad sample code.
I hope these extra resources will let MDN improve on this.
For super quick syntax checks ("Is it fill-opacity or opacity?") MDN might be a little overboard, but as any sort of reference beyond 3 line snippets it is the link that I always look for. I usually append MDN to the end of my searches for HTML/SVG help.
Im currently using a chrome extension from google[0] to do exactly this.
[0] https://chrome.google.com/webstore/detail/personal-blocklist...
Google is tracking everything about me. So I expect that certainly they can track which sites I don't like, especially when I mark them as such.
this syntax has been supported for many years
https://www.google.com/webhp?hl=en&newwindow=1&num=30
I remove the ei identifier from the bookmark. I guess this is a unique ID that makes it possible for google to keep following me if I happen to bookmark it. Eg:
ei=Vo_n34buB9Cabdedfk6gO
And I happen to like the W3school examples, especially CSS. They've helped me many times. I don't see the problem with them, but please ignore them if you don't like it.
Actually, I find duckduckgo better for all kinds of technical searches these days.
https://googleblog.blogspot.com/2011/02/new-chrome-extension...
I don't know if there's a Firefox version.
Post seems to indicate just that: "One of the signals we're exploring is explicit feedback from users."
For those interested: Behold, the W3C Schools hider extension. https://github.com/Spetnik/W3Schools-Hider
Combine this and the higher Google rankings (My usual front-end searches display W3Schools, then StackOverflow, then sometimes JQuery or another library, then MDN), and you can understand where the problem lies.
I agree there's a ranking problem, that's why I usually append "MDN" to my front-end related searches.
[1] The w3schools article on CSS display is limited to three values (block/inline/none) and doesn't even hint there are more possibilities, the most notable omissions being table and flex. It even has an example of overriding the default display ("channging inline to block and vice versa") that uses an `<li>` which, by default, has `display: list-item`, and still doesn't mention it.
I prefer it when I need a quick refresher on an HTML element because it's especially good for having short, simple examples I can copy and paste.
MDN tends to be verbose and technical. It's good when you need to know everything in detail, but often I need a quick refresher and a simple example and for that w3schools.com always seems to have better content.
Compare these two pages for input types:
https://www.w3schools.com/html/html_form_input_types.asp
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/in...
The MDN page is more complete, but reading it gives me a headache.
W3schools is neither good documentation or good examples though.
When I was just starting out it was nice to be able to quickly look up the syntax of a basic JOIN SQL statement on w3schools.
tl;dr: use <label>'s with <input>'s, not plain text labels, as MDN shows you to do.
So, we're aware that the examples being way at the bottom of the page are frustrating to a lot of people because of the usefulness of having a simple example you can learn from or even snag and use in your own code.
That's why we have work ongoing to not only place examples at the tops of pages, but to make the examples interactive so you can make changes to the code right on the page. There's some info about it here: https://discourse.mozilla.org/t/interactive-editors-in-beta/....
I'm glad you approve of our use of <label> to correctly label inputs. We are not yet 100% consistent about this, but we're on the job!
Just imagine how much printed material has circulated since the 90s with the mdn.com address. Why do you want to break the web?
It's quite neat in its functionality, allowing for searches via url params, like so: mdn.io/promise
I used to bookmark things judiciously 7-8 years ago, that bookmarks list is completely useless today because >90% of the links are dead, that's okay though, it's the way things go. Happens with real-world objects too, books go out of print, buildings get knocked down, not everything needs to be saved.