5 ms·
I have complained about similar things way too much on twitter as well. A VAST majority of websites on the web serve CONTENT. Why is JavaScript needed to serve
by chewxy 12y ago
I have complained about similar things way too much on twitter as well.
A VAST majority of websites on the web serve CONTENT. Why is JavaScript needed to serve content is really beyond me. You don't need to make your blog look and feel more webapp-y. It's a blog post. I want to read content. I don't use other features on your blog. Please just serve me the content and don't try to SPA that shit. Heck, I'd be willing to bet 99% of websites out there don't need to store session information to begin with - a static website would have served as well.
And most interactions on any website are not worthy of making it webapp-y anyway. Most websites with interactions will do well with minimal interactions anyway. Not every website needs to be real time. The existence of a listening loop in a lot of websites has caused my MacBook to crash more than I can care to count.
OK, sure, webapps like Asana and Gmail have good reasons to use and push the use of JavaScript forwards, but I really don't see why websites like AirBNB would require JavaScript. It's a bloody classifieds website. Out of the top 10 most visited websites I use, I can see only 3-4 of them really needing a fancy JS frontend. The others can get by with much much better UX if the JS in the frontend were kept to bare minimum.
Does JavaScript enhance the experience to the non-power users? I am not sure. Is not seeing the white flash when a page loads really that necessary to improving UX? I've definitely heard way too many complaints about JavaScript assisted scrolling amongst the non-tech acquaintences I have. I also have definitely heard complaints about bloated webapps that cause the entire computer to slow down.
The sad thing is with our modern browser technologies, we can be doing so much more, but webdevs tend to chase the fashionable, leading to generally poorer experience.
What's worse is our addiction to fashionable JavaScript things have caused us to design hacks on top of hacks on top of hacks. When will this madness end?
edit: fun stuff - according to htop, my Firefox, which has one tab open reading a blogspot page, is using about 12% of my memory. Amazing.
- javiercr 12y agoAirbnb has tons of things that would be impossible (or annoying to use) without JS: search by map, sliders, availability calendars, price calculation, credit card tokenization, etc. Here is a recent talk where they explain how they solved some tricky UX problem by using a "modern" JS framework such as React.js http://www.infoq.com/presentations/airbnb-resolution-center http://www.infoq.com/presentations/airbnb-resolution-center In this other talk they also explain how (and why) they evolved from vanilla Rails (i.e. more static HTML) + jQuery, to Backbone, and finally to isomorphic React.js https://www.youtube.com/watch?v=gMvvb6F8dgk https://www.youtube.com/watch?v=gMvvb6F8dgk
- chewxy 12y agoFair enough. Those features do indeed warrant the use JavaScript. Not quite convinced that it needs to be super bloated JS, but since I've somehow managed to miss all those features, I must be missing something. Thanks for educating :)
- coliveira 12y agoThe game played on web development is that javascript is used to make for deficiencies in the basic functionality of browsers - both bad implementation of web standards as well as functionality missing from the standards. Developers would be much better of if web browsers provided a high-quality, full featured experience to create web applications/sites. Of course, this is not easy to do, especially when there are several browsers competing for the same market. As long as this happens, javascript will be aways be used to provide the extra functionality that is needed, even on content-only web sites.
- findjashua 12y agoI would have to disagree here for 2 main reasons: 1. The vast majority of content I consume is, in fact, not static content, the only exceptions being HN and my bank statements. For almost everything else, I much prefer the interactive experience made possible by an SPA. This includes anything with a map (Yelp, Airbnb, Redfin), charts (google analytics), autocomplete (stack overflow) or chatting (google hangouts). 2. All SPAs are not the same - for every 10 second-load monstrosity (gmail), you have someone sending the markup from the server on the first load (airbnb) With the explosion of mobile apps, people have a certain level of expectation in terms of UX, and a static site won't always meet those expectations.
- chase-seibert 12y agoI agree. I value what javascript enables for those experience as well. I just wish more sites could implement those useful pieces and still get all the basic interactions correct. Too often, those are broken, I assume due to ignorance.
- findjashua 12y agoTrue, coming from Backbone, I've run into my share of broken views, but we're beginning to see newer libraries, like React, that provide better abstractions and reduce the possibility of introducing bugs.
- bikamonki 12y agoI take it you've experienced the event-ghost nightmare or the parent-child view disaster? I've used bbjs 2yrs now and are also looking to try react. Have you? What bbjs problems does it solve? What do you miss from bbjs? I also understand the two are not strictly comparable: bbjs is mvc, react is v. Do you use react for views only?
- mercer 12y agoReact isn't just 'v', but you do generally want to use something alongside it that takes care of the data. I've had a great experience using the flux pattern with Reflux.js (which is one of the 'simpler' flux implementations.) Another interesting option is Baobab.js, although that still seems to be in heavy development. I've also used flux with Ractive.js, which in some ways is perhaps an easier introduction into the flux/react approach. Might want to check that out. I find it hard to describe how incredibly simpler everything is now that I don't use BB anymore. With some of the stuff that 'just works' in my current setup I can't even begin to think of a clean way to do in Backbone.