Tuesday, November 07, 2006

Why shouldn't Flash be used on web pages?

  At the beginning of the article I should tell you I hate Flash. Any time I (mistakenly) visit any website which uses Flash it makes me go WTF, why couldn't this moron do this thing in a better way. I know there are a lot of people who love to see Flash and go oooh this is so pretty, but I would ask them do you think Flash is all that good? I'll tell you why I think using Flash is a 'bad' thing to do.
  First a little bit about the history of the WWW. WWW came into being in the early 1990s and the reason of its existence was the fact that we had collected a lot of information but now in the 'information age' there was increasing need to share the information regardless of physical difficulties of transfer.The internet was the solution to this. Hypertext was chosen as the language to transmit the information over this medium 'internet'. Although other protocols were in existence before hypertext none of them was really effective in 'easy' sharing of the information. Hypertext led to creation of easily accessible webpages thus marking the birth of 'WWW'. Right from its start WWW showed tremendous growth and today it is the most popular aspect of the internet(Many people can't differentiate between internet and WWW). Here are some of the things that helped making the WWW so successful:

  • As soon as the basic outline of the WWW was complete, CERN made the source code for its software publicly available.
  • The system requirements for running a WWW server are minimal, so even administrators with limited funds had a chance to become information providers.
  • Because of the intuitive nature of hypertext, many inexperienced computer users were able to connect to the network.
  • The simplicity of the HyperText Markup Language, used for creating interactive documents, allowed inexperienced users to contribute to the expanding database of documents on the Web.
  • The open standard allowed users of different operating systems to access WWW in a similar way using a variety of media to present it
  In short we can say that the web grew at such a pace because it was easy to provide content and it was easy to get content. A large part of it is because it was based on an open standard. But soon the browsers started implementing their own 'enhancements' to HTML(HyperText Markup Language). This led to more difficult web programming. The content was no longer separate from presentation which was perhaps the basis of The Web. New standards had to be created to accomodate the new browser functionality. The breakthrough in this was CSS(Cascading Style Sheets), if properly used this effectively separates the content from presentation i.e now the content is html and presentation is the css which can be in a separate file or within <style> tags. But complete support for standards remains a dream for the web programmers. The browsers(especially the most popular browser in the world) are not fully standards compliant. This makes the job of the web programmer really tough and often you find out that different browsers render web pages differently.   You might be thinking where does Flash fit into this. You are correct, it doesn't. Flash is a proprietary format which means that Adobe is free to change it at its will. I do not support proprietary formats in the least because they aren't standards. You need permission from the provider of the format to use it. What if Adobe fell off the face of earth tomorrow? All the work done in Flash is a waste because no one knows what lies beneath the hood. I am at the mercy of Adobe for
  • Creating content
  • Viewing content
  Suppose I create an operating system 'Perfect OS' which is the best OS ever created and has the best performance among all OSs but the users of Perfect OS would not be able to able to view the content in Flash unless the Adobe people got down and wrote a plugin for the browser which the Perfect OS uses.You might argue that it is very unlikey that would happen because Adobe *will* get down to provide support for your OS. Do you know that there isn't a Flash plugin for x86_64 architecture for any browser on Linux. Of course Flash does not work on non graphical environments(lynx,links,elinks,w3m etc.).
  A primary feature of The Web is that it is accessible to everyone. With Flash the webpage becomes inaccessible for anyone using CLI or people who use screen readers due to vision problems.A lawsuit is going on in the US about such an accessibility issue which was filed by National Federation of the Blind against Target(an online store). I do not know a single web developer who does not want to have the widest user base. So why use Flash?
   Flash is not accessible to everybody. Flash plugin might be free but it is not free as in both meanings of the world. 'Free as in free speech' and 'Free as in free beer'. Flash plugin is free in the sense of the latter. There are a lot of people like me who choose not to install Flash because I do not want to corrupt my 100% open source installation.
  Another reason for popularity of The Web is the ease by which you can provide content to the whole world. When you use Flash you have to spend a lot of money to get the development tools which might get outdated any time Adobe desires. This is contrary to rapid development as it gets dependent on a particular entity for development.
  Think if Flash got really really popular and most popular websites start using it.This would mean every web browser has to have a Flash plugin. Now suppose A produces browser X which is better than browser Y produced by B(like more standards compliant,has better UI,is faster etc). Now lets say that A is a competitor to Adobe in some other field. Adobe wants to kill A, what it does is it does not support browser X(I am not implying Adobe would do that, its just something that might happen with a monopoly. We all know monopoply cannot be broken even with lawsuites). This automatically makes browser Y the better choice. Don't you think that's anti competitive?
  One other thing I got against Flash is that its damn annoying. Waiting five minutes until it can do its loading and then play some animations which you cannot skip and then come to content minutes later and by that time you have lost interest in the whole thing. I haven't used slow internet connections for a long time, I can't even imagine the plight of people waiting for Flash sites to load on dial-up.
  Ok I get the point that it is very easy to create interactive sites in Flash but at what cost? I understand you can murder all standards and usability features for your Flash animation but please try to follow these guidelines so that your website may be bearable for 'anti-Flash' people.
  • Do not design the main page of your site in Flash.
  • Do not make Flash a part of the UI of the site, so if a user doesn't have Flash support (s)he still can access the website.
  • For pages relying heavily on Flash please add something like (requires Flash) on the page they are linked from.
  • Try to make the Flash animations machine readable, so that something like a screen reader can use it.
  Proprietary formats are much more sinister than proprietary applications. They inhibit growth and promote monopoly. It is high time all of us (not only the open-source zealots) realized this and made a positive contribution towards development especially realting to computer technology.

3 comments:

Anonymous said...

A couple of your points ring a bell.

Have you used finance.google.com?
It uses flash...and there are things in this world that can't be done cross-platform without flash.

Anonymous said...

@anonymous: flash isn't available for 64-bit linux platform...is it crossed out of the cross-platform list?

Anonymous said...

I totally agree with this post... great going keep it up..
CHANGE TO LINUX AND LIVE FREE
That is my Mantra

feed