Java vs Flash vs AJAX
I was reading a very interesting article on the linux.sys.com site ( http://linux.sys-con.com/read/333329.htm ). The author was illustrating why Java , while being the language of choice at the beginning for rich application development, has faded away into nothingness on the web. What was interesting about this was that the author indicated his clear preference for Flash over Java and AJAX type technologies.
Yet another resons Flash is difficult is that in order to work with it you must use the Flash authoring tool. Flex helps in that you can use their Eclipse based tool, but to really get into the nitty gritty, you need Flash and it costs money.
The Flash compiler is not separate so you can't write nice scripts to build your application for you, if you decided not to go with Flex for flexibility reasons. This makes it exceedingly hard to use other tools to write your ActionScript. Adobe could have made the Flash IDE open source years ago and they still refuse. I can write AJAX applications with text pad, and use any scripting system to deploy that I want to.
Another point is in business-to-business applications. Flash fails in this capacity because if you are a non-administrator running IE, it is difficult to install the Flash player. What is worse, you will visit a site, it will prompt you to upgrade, but when you try you will be told that you don't have permission to perform the operation. So whatever you are trying to do will either half work, or not work at all. There are departments who have only chosen, say Flash 7, as the plugin that they mirror, so all those advanced features of Flash 9 will be lost on the users, and they can't upgrade. Imagine sending one of your employees to a web application that they can't use and telling them to get their job done. It just doesn't work.
I'm not claiming that the tools and techniques that comprise AJAX are the end-all-be-all of web development. But what I am claiming is that even with all their shortcomings they are still the best of what's around. That is clear by the amount of interest out there in it. It is easy to deploy, easy for the user to work with, easy to develop, infinitely flexible, and ubiquitous. Now what's wrong with that?