Wednesday, February 27, 2008

RIA Technology crown




The race for the crown for the RIA Technology reader has been on for a long time now.And so far there is no clear winner. But clearly there are distinct players that have emerged out of all that dust and smoke. AJAX and Flex. (I'm sure there will be a lot of people who argues the presence of Microsoft products in here..but I feel its a completely different war...which was correctly depicted in the picture http://mshiltonj.com/software_wars/current/current.png (But its kind of old..needs to be updated with more products and companies trying a dig at Microsoft :-) )

AJAX Vs FLEX

Well now this is tough..I have been reading a lot on these and geting my hands dirty with some of these too. AJAX as such is a huge Gang bang which is represented by a good number of independent Frameworks, JavaScript libraries and individual implementations. On the other hand you have Flex(I read it some where...The first child of Flash)from the heavy weight "Adobe" (who incidentally are the current owners of "Macromedia", who coined the term "Rich Internet application".). So lets do one thing..The old way..the best way..take it point by point

1)User Experience
Flex - Having Flash as its paternal hereditory helps. It has a lot more tool support, graphs and charts and being one of the pioneers in video streaming , takes the lead in there too.

AJAX - No doubt there are amazing applications(even at enterprise scale)that have been built using AJAX that will mesmerize you.(Take some of the Google apps as example)But nothing comes for free...there would be good amount of work by sheer talents and geniuses that has made it possible. And no AJAX frameworks/libraries helps you do this straightforward. Be ready to sweat it out to be there.

2) Developement (Ease of developement and Time taken ...which are actually propotional)
Flex - Flex has its own IDE...Flex builder (built over Eclipse) which has a design view with drag and drop features...But wait its not free..Be ready to shell out some dollars to get it.(There goes the point from Flex). And being run by Flash player you don't have to worry about Application looking like Empire State building in one browser and as Bombay Stock Exchange building in another.

AJAX - Some frameworks has IDE's (and yes most of them are paid one's and those which are not are not exactly that great). But again most AJAX programmers doesn't expect the help from an IDE...They tend to like it the hard way..the best way. But again writing same Javascripts and DHTML's that work in all browsers is more propable than Microsoft using Java for his next OS. There are some AJAX F/w's and JS libraries taht will help you overcome this...but you know its going to break somewhere.

3) Performance
Flex - If you don't consider the download of Flash player plugin for the browser(one time..and something that 92% of browsers in the world already seems to have installed...as per Adobe..)there still is a minimum download size of 128 kb for Flex apps. Adobe is going to intoduce caching a good portion of this on the clientside for the next version..which should straight away boost the initial download time. The apps are compressed and sent to the client and the painting is done by the Flash Player, which Adobe continuously optimizes for performance.

AJAX - No extra download in this case other than the actual application contents (I'm not too sure about this..there could be some F/w which has a initial dependency download). And the painting is something entirely dependent on the browser(On which you have no control on but something that seems to be getting better and better..Thanks to the sudden surge of Firefox, which literally made Microsoft come up with IE7). Also there are existing components like GZip which helps in compressing JS libraries.

4) Extensibility (Ease of Customization)
Flex - Well the Flex SDK has been open sourced (which was a success and something that prompted Adobe to come out with "Apollo" or should I call it "AIR" ??) which means you can customize whatever you want and come up with controls of your own. But again its not exactly a walk in the park.

AJAX - Well being HTML, XML and javascript, customization wouldn't be a problem(Again there could be some F/w's where something specific is written which means bye bye customization)

5) Security
Flex - Swf files are not exactly plain texts...so reading them at the client level is not an easy task. Also the Flash player seems to be having a lot of inbuilt security enhancement features.

AJAX - Being plain text it’s easier to read. Plug-in from Firefox like Firebug, although helps in debugging, also allows the complete manipulation of the HTML DOM. (I know a friend who has used firebug to rig a website by increasing the vote for an article..there by making it the best article)

6)Server Communication
Flex - Flex helps in communication via HTTP ,SOAP for webservices and Remoting using a concept called RemoteObjects which uses Flex Data Services. Connection through RemoteObjects tend to be fast and easily configurable, but then you will have to pay for Flex Data services

AJAX - Ajax uses the web browser’s underlying communication mechanism. Several F/w's support several protocolas and ways of communication, although it tends to vary in different F/w's. SOAP, JSON and even remoting is allowed(Eg; DWR, GWT).

We can go on adding more points like widget support, Industrial Standards, Developer Community etc. and taking the high's and low's of these two technologies. Arguments like dependency of Flash Player for Flex(which has a 92% adoption rate) gets nullified with the fact that AJAX applications will not work without javascript enabled in the browsers(which almost 96% of browsers have turned on...data courtsey w3schools). So each and every pros and cons even out somewhere. Infact majority of the articles that I have gone through (including the one's from Adobe) says that its always better to use both the technologies in tandem...you know something like get the best of both worlds. And they seem to coexist very peacefully. There are tools like Flex Ajax Bridge and Ajax Data Services which helps you in this. But in the end you need a leader..A market leader where you can Say RIA means this Technology. But for the foreseeable future nobody will be ready to put their money on any particular technology. But hey whats fun without some risk...So who's your money on?

Look Who is here …Semantic Web !!!



POTENTIAL ADVANTAGES OF SEMANTIC WEB FOR INTERNET COMMERCE

Yipee ki yay!!!! Now that’s a line (or should I say bellowing) that Bruce Willis says in the Movie Series Die Hard… What does that got to do with Semantic web…Nothing...It’s just that the whole lot of web developers must be saying something like this…Either out of sheer frustration or pure delight…

Why frustrated…Well you have barely made a horrendous shift from your traditional web developing methodologies to something called as RIA technologies and Frameworks and you are somehow getting used to all those terminologies associated with it ( Web 2.0 , AJAX, XUL, XAML, Silverlight, JS libraries…etc..God knows what else) and all of a sudden you are hearing about something called as Semantic Web, Web 3.0….Oh yes it is bound to be frustrating.

Now why delighted…Hey if you are somebody who is not kainotophobic (Don’t do a word search now…Its Fear of Change) you must be smacking your lips in anticipation...With a whole new door of opportunity opening up for you. Also the fact that Semantic web has got nothing to do with your Web 2.0, RIA or any of the existing presentation logics might be a good news. Right? Did that help J

If you are already familiar with Semantic Web and its associated terms (For E.g.: RDF, RDFS, SPARQL, OWL …It’s not the bird Owl by the way…Its Web Ontology Language… but why OWL not WOL…Hey don’t ask me…I didn’t create it) then read on…you are not going to learn anything new here J (Hey I’m kidding..Who knows I might have something up my sleeves). For those who have not yet heard about Semantic Web.

What is Semantic Web?

The Semantic Web is a mesh of information linked up in such a way as to be easily processable by machines, on a global scale. You can think of it as being an efficient way of representing data on the World Wide Web, or as a globally linked database.

By the Way this is a vision from our very own Tim Berners Lee to see Web as a universal medium for data, information, and knowledge exchange. Well given the fact that he is the father of World Wide Web itself means that…there is something about Semantic web (Yeah I know…I borrowed that from the movie title, There is something about Mary). Have a look at this …This is what Mr. Tim originally expressed his vision of Semantic web as

“ I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web – the content, links, and transactions between people and computers. A ‘Semantic Web’, which should make this possible, has yet to emerge, but when it does, the day-to-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The ‘Intelligent agents’ people have touted for ages will finally materialize. ”

Ooohh…the last part is kind of scary right…machines talking to machines…Reminds you of some movies where machines take over the human control J

Instead of me blabbering about Semantic web...I think it will be better if you go through these links…They will tell you better

http://en.wikipedia.org/wiki/Semantic_web

http://infomesh.net/2001/swintro/

http://www.w3.org/2001/sw/

If you are somebody in hurry and wants to get a short description about Semantic web then go through this

http://dret.net/netdret/docs/wilde-einiras2005-semweb/

And a much simpler explanation at http://en.wikibooks.org/wiki/Semantic_web:why

Need more details?

There is not much of a commercial level development happening in this area. Most of the development is secluded to the ones at University labs and R&D centers. Tool support for the development is on the rise (in fact you will find the sites flooded with tools for semantic development), but none of them can be said to be mature. Many of the biggies like Adobe, HP are trying to get a hold on this market with their products. Go through some of these links to find out more about the tools for semantic web development

http://esw.w3.org/topic/SemanticWebTools

http://www.mkbergman.com/?p=291

http://www.hpl.hp.com/semweb/tools.htm

http://www.daml.org/2003/05/swmu-tools-tutorial/Overview.html

Here is a link which contains some details about how RDF is created and used.

http://www.w3.org/TR/photo-rdf/

Unfortunately, the Semantic Web is dissimilar in many ways from the World Wide Web, including that you can't just point people to a Web site for them to realize how it's working, and what it is. However, there have been a number of small scale Semantic Web applications written up. Of course, these are rather demonstration-oriented Semantic Web projects, but it does illustrate the feasibility of applications being easily built using Semantic Web toolkits. I have registered myself for many of these application and many of them has responded saying that, they are in Beta and not ready for commercial usage…yet.

http://www.readwriteweb.com/archives/10_semantic_apps_to_watch.php

If you want to know how semantic web is useful, potential advantages for Internet commerce, ROI etc. read this one

http://www.ida.liu.se/~yuxzh/doc/iceis-030120.pdf

Many people feel that semantic web done in a systematic manner will result in AI, something that has been in talks for a long time but never visualized or successfully attempted at. Let’s wait and see whether this stands up to its potential.