The web, it's for everyone
thewebitsforeveryone.tumblr.com
thewebitsforeveryone.tumblr.com
I agree that showing a "hey this is broken" warning is better than rendering a totally broken page, but it's still not as good as presenting at least a partially working version, perhaps minus all of the usual bells and whistles. Now, of course, this is not super-feasible if you've chosen to build most of your site using client-side code, especially if that's where most of the rendering happens. But then again, the lack of server-side rendering is the obvious downside of building your site that way.
My position is that if you disable Javascript you get what you get (both you and I will be happy to know that I don't do web development anymore).
The react-rails gem is capable of doing server-side rendering out of the box: https://github.com/reactjs/react-rails
But I do have apps I maintain that started as traditional Rails apps and have been progressively enhanced to a point where they perform a lot like more modern client-side apps. And an interesting property I've discovered to be true of such an app is that it's really quite easy to convert that traditional view-rendering pipeline to React, because there is almost no JS-soup being relied on for core pieces to function.
On the flip side, I also work on a couple apps where most of the functionality exists as JQuery DOM manipulation or as Bootstrapified data binding, and these are nearly impossible to port to a diff-based rendering library like React without rewriting most of the functionality.
So while I haven't exactly tried rendering React on the server, I've found that the more traditional server-side rendering flow still holds up quite well on the modern web. It's a good way of thinking about how your app should look/behave given a set of states, and it holds up well even in places where Javascript is required. The fact that it can be accomplished without Javascript is more of a side-effect, but also a good indication that it's not any particular bit of Javascript that is holding it all together.
(I have my doubts one in fifty people disable Javascript)
The point for me is that links behave like links (perform GET requests against a URL and change the page from one state to another), buttons behave like buttons (perform POST requests and update some internal state), and the effect they have on the page is much the same with or without Javascript. The only difference is that with Javascript I can intercept the action and make the state change a lot more streamlined, or add a fancy animation if I so desire.
By simply intercepting buttons and links (similar to how pjax and turbolinks work) I don't have to dig through JS to find where a specific AJAX request is fired-off and what it does. It just works, and when it returns, it simply updates part or all of the page with whatever the server returned, which could be part or all of a page.
There are, of course, obvious limitations, like local state that changes with user interaction but that isn't preserved on the server in any way. But the more I can get working without Javascript, the more I know will be easily maintainable and translatable going forward even if I do something crazy like get rid of jQuery or convert everything to a React app.
Maybe I'm just a bit odd, but I find this approach a lot easier to manage and a lot more productive in the long run than in marrying myself to any particular client-side framework.
Admittedly, they did not look as good as sites do today.
The part I might be wrong about is "doing progressive enhancement really well is much more expensive" - that's just my opinion based on anecdotal experience.
This does appear to be the case with the first warning published on the blog, where the site is put into a "read-only mode" and I disagree with it being listed there, but I come across many other sites which do not display any form of content at all when JavaScript is disabled.
1) MAJOR parts of our app will not and can not work without JS. Period, exclamation point.
2) Because of point 1 it doesn't make sense to waste dev time on making some views work with/without JS (We are a younger company and don't have time to waste on something like this especially when it isn't public-facing, not to mention QA can't handle testing everything twice).
3) Even if V1 of a component does support both JS and no JS there is no guarantee that future updates will be able to keep feature-parity or have time to code for that.
For me JS is part of the web, not an optional add-on. It would be like saying "make a webpage that works with HTML" (IMHO).
I also feel that it's not fair to complain about the GOOGLE CHROME app store requiring GASP GOOGLE CHROME (Same for GOOGLE cloud print). Not shit sherlock. As for Apple not allowing their video feeds on anything but Safari+OS X I think this is BS, there is no good reason I can think of to alienate so many people on other OS's especially since I would think THOSE are the people you might want to reach with your keynotes to convince them why they should switch.
So while I like the idea of this Tumblr I can't help but think the JS/Google Chrome examples don't really fit and distract from the overall message. To be honest looking through the Tumblr again the ONLY valid concern is the one with Apple's keynote streaming, the other ones make complete sense. How is it Google's fault that they are pushing the envelope in terms of what is possible, even Google doesn't have the time/resources to make every one of their ideas (which may or may not make it long term) work across the board and that is their prerogative.
I read that as complaining about a WEB APP store requiring google chrome. Web apps tied to a specific browser are destructive to the overall ecosystem; you might as well just distribute native apps.
What I'm not a fan of is "Lowest-denominator web is the best web" arguement. It's not and I'm sorry but unlimited backwords-compatibility is a pipedream, at some point you have to move forward.
As for what requires JS: we use google maps and people need to be able to draw zones on the maps which is not possible without JS (unless we have them a bunch of text inputs that they could enter the lat/lon of all the vertices. That is just one example and I can't go into much more detail. Bottom line is we would not have the customers we do if we didn't use to make it faster/easier and we don't have to resources to support JS+Noscript/no JS.
[1] Some examples of sites that won't display anything if Javascript is disabled (even though they're most displaying text): http://googlecommerce.blogspot.co.uk/ http://googleandyourbusiness.blogspot.co.uk/
1. The vast majority of things on the Chrome Web Store are web apps, not browser extensions.
2. Should GMail really only be able to work offline in Chrome?
As for your second point, no it shouldn't :( Seems they built this "offline app" stuff into Chrome and plan on keeping it there.
Does anyone but me remember offline email clients (hello Thunderbird!)? You can take Gmail offline already.
It was a huge effort to leave the Microsoft lockin back then, and the Web(togheter with Linux, GNU and open source), a open platform did it! It was like the 'man in the moon' back then; And now we are simply going back, and we are just repeating the same mistakes again
On one hand, I think that information should be available to the technological lowest common denominator. I hate apps that should be websites. I hate having my browser use 100% of my CPU for 30 seconds while trying to render a page with just 300 words of actual text content.
On the other hand, I work on web applications and I want to be able to create rich interactions using the best tools available. So I constantly wish I could require all my users to conform to some pretty steep minimum requirements.
I guess it comes down to appropriateness. There is a place for rich applications and there is a place for accessible content.
Requiring Javascript support is sort of like relying heavily on the latest HTML or CSS features (a recent example: WebRTC). I have to consider what happens in browsers where the feature is unsupported or disabled, and if I'm okay with narrowing those visitors out of my userbase, then I move forward. Otherwise I make sure that something is in place for them to fall-back on.
Javascript is a bit tricker than, say, the fancier CSS selectors, because I often rely on Javascript for polyfills/webshims, etc, and you can't polyfill a lack of Javascript. But when I can I still make use of that old "progressive enhancement" idea by starting with the basic HTML/CSS elements required to make a feature work, and then enhancing it with Javascript and more modern styling. It doesn't work everywhere, and certainly not in cases where most of the work is done client-side, but I still get plenty of miles out of that technique.
100% agree with the Apple example though. Why didn't they stream in a more accessible format?! It just served to annoy people and exclude even more people from the Apple elite.
a few years ago banks and financial institutions seemed to be especially bad at restricting access to just IE. Thankfully they seem to have got better, but maybe that's because I don't use Opera anymore!
Originally I thought this was going to be an attack on Hungary's Internet Tax or some freedom of speech protest, alas.
But last I checked Offline Gmail does not. Which I think is the point this Tumblr is trying to make.
If you think the things made by jerks like me aren't part of the web or whatever, then fine. You stay on your version of the web and I'll stay on mine, and never the twain shall meet.
.....Until you actually need to do something useful.
I've seen a huge number of sites over the years stop working because they redesign to incorporate javascript; yet, when I visit them at work (with a javascript-enabled browser) their shiny new site doesn't actually have any new features.
Things that don't need javascript:
--Form verification (you should always be doing this on the server, and optionally in client-side javascript)
--<video> tag
--Popup site menus
--Web-based chat
--Webmail
--Message board comments (unless you locked yourself into Disqus)
--Nearly everything
Not having to render and reload an entire page every time something changes or a request is made is actually quite useful. Load balancing is one of the reasons js-based templates are so popular.
Also I believe there are aspects of cross-browser compatibility related to mobile design and responsive design which depend on javascript, though I may be mostly wrong.
Although, if you're just dealing with purely static html pages then I would agree AJAX is pointless. But not everything useful about javascript has to be useful just to the end user.
I remember web chatrooms working that way back when dinosaurs roamed the earth, or maybe they had meta-tags that refreshed the page periodically.
What we have now are browsers that support browsing but also support access to web applications. The need to serve two masters makes the browsers we have now suboptimal for just browsing.
In particular, a browser just for browsing would be able to be significantly simpler than a browser that serves two masters, and as a general rule, when we are talking about something as complicated as a browser, making a program simpler makes it more reliable and makes it easier for a human to predict what it will do and consequently makes it less frustrating to use.
You already have what amounts to a "browser just for browsing" when you turn off javascript in the one you're using now. But a browser which only interprets html and css and not javascript is just a broken browser.
Nothing has changed about HTML or browsers that prevents anyone from building a minimalistic site, or one that degrades gracefully, they just choose not to. This isn't a problem of the web, but the culture of web design, and the tendency of people to only use a few corporate sites which follow the same design paradigms.
Yes, it is a problem with the web. The culture of web design is part of the web. This is why we need a replacement for the use case that the web was originally designed for but no longer fills.
On a very long web page, do you ever hold down the mouse button on the slider in the scroll bar so that you can scroll up and down rapidly? If you do that on the web page on which these words appear, it will (probably) work smoothly and well, but on certain Javascript-heavy pages, it is very jerky. The whole page blinks rapidly. It is tedious and difficult to see the text while the page is moving up or down.
That is just one of many examples where a particular functionality useful to people who read and who "browse" (which might be defined as deciding what to read next among many, many alternatives) does not work as well on the web of 2014 as it did in the past because of the need for the web of 2014 to support ever more complicated or sophisticated web applications.
(The many examples include tasks that are not strictly part of reading -- tasks like making a copy of part of a web page or making a copy of the page's URL in preparation for emailing the URL.)
Publishing static documents and reading and browsing static documents over the internet is an important enough function in our society that we should feel sad that it does not work as smoothly and as quickly as it could. The next Einstein and the next Charles Darwin will use the web to learn and to share their discoveries. What the next Einstein and the next Darwin need the most from the web is the ability to browse static web pages quickly and reliably without their having to devote a lot of their attention to the user interface or to getting a particular page to work with their browser.
That said, it's time to call bullshit on Google's whole 'do no evil' shtick, considering how so many of their web apps only work on Chrome.