Tuesday, October 25, 2005

nytimes: great story on mashups and ajax and google

oct 24th

this business of mash-ups will do better and better. google stock may hit $400 :-) i should have bought at $120, but no, i was too hesitant.

now that indian stocks are tanking, and so is the rupee, this is a good time to buy into india mutual funds especially sectoral ones. p/e ratios are not too high yet, and the indian market has some way to go still. we're seeing a temporary trough because FIIs are re-evaluating the american market, and the bite of high oil prices is hurting.

back to the article, two things google has done well:

1. using ajax technology to make the online experience *almost* indistinguishable from the experience you get with locally loaded software

2. opening up the apis to their various products, esp. google maps and google earth which may be big winners

google map (because of ajax) is a quantum leap over mapquest and other mapping programs because of its dynamic nature: you can drag things around just as though you had the software loaded locally.

i think there's a big opportunity for outsourcing AJAX and Google API skills. what do you think? btw, there is increasing interest in legal, medical and financial outsourcing to india.

http://www.nytimes.com/2005/10/20/technology/circuits/20maps.html

i liked the trulia and homepricerecords sites in particular. good to know how much my house is worth, not that i am selling it :-)

14 comments:

Anonymous said...

Hi Kaunteya,

I am an ex-NTPC now in Canada. These figures are as usual "sensationalized" by our foolish media. NTPC has an excellent medical policy and it pays to get its employees treated at the very best hospitals free of cost. As these expenses have been fully paid by the company, they
appear under the head "salary", as per some provisions of the Companies Act of India. The companies act also mandates that earnings of employees who draw more than Rs 5 lakhs should be reported in the Balance Sheet. Some idiotic journalist has just sensationalized this…

nizhal yoddha said...

darkstorm, here's the way i understand it.

key to microsoft's success has been a) operating system revenues, b) office suite revenues. they make most of their profits from these two products.

they have managed to capture the developer community, meaning all developers write to windows APIs. therefore you as a user are forced to buy windows machines to run the software you want.

the AJAX approach allows the developer to write to a higher level platform, which is the AJAX APIs. since the ajax engine can run on any os, that means users and developers are not tied to windows. for instance, that means you could switch to linux or mac os or solaris and all your ajax apps will still work. this means potential loss of os revenues for microsoft.

next step of course is to have ajax-based analogs for word processing, spreadsheet and presentation graphics. if these web-based applications are as good as the ms office apps, there will be fewer buyers for ms office. the decision by massachussetts to drop ms office may spread.

in general, web services will erode the power of the desktop, because the pc basically becomes a dumb terminal.

yes, instead of being completely dumb, you need to run the ajax engine locally. but an ancient mac or dos machine or linux box can run ajax.

so the desktop cannot be totally thin, as in dumb terminal. actually it needs local processing just to run the windows system, so there is a minimum level of processing power required, but that can be provided by a 1990 vintage intel 386 box, even.

i think this is why ajax + web services + new apis from google + ajax-based open office all sound exciting, as they might break the hold microsoft has on the market. the business model may change.

Anonymous said...

Thank you Anon for your inputs on NTPC.

Nizhal Yoddha,
I feel MS has had a good run so far and it will continue to dominate OS market unless something really mind blowing comes to take users imagination. Even if Ajax+Google+Sun+Web services come together it will be difficult to replace the end users habit of using MS applications. For example even if i tell my end user to use a really exceptional Word Application she will try to resist the change. First of all she took months if not years to get used to the current application and she wouldn't want to undo that and learn a new thing. I have seen users resist to change even if it is for the better. It takes lot of sleek marketing to make user change to a different application.
We do not want to leave our comfort zone even if that zone is not efficient and we have a better choice.
Once our client wanted to replace the existing client-server system with a new web-based sleek looking application. We built that application over a period of 2 years often working weekends to make it really classy. You know what was the biggest hindrance in its launch? The end users lethargy towards using it.
We had to make them come and watch the demo again and again. I have left that company, but i know for sure that the client is still not using the new Application.
Point being, Microsoft has now become a habit more than a tool.
And as they say "bad habits die hard" :-)

Anonymous said...

How different is AJAX from say DHTML which has been in existence for over 6 years?

Anonymous said...

Kaunteya:
--------
Once our client wanted to replace the existing client-server system with a new web-based sleek looking application. We built that application over a period of 2 years often working weekends to make it really classy. You know what was the biggest hindrance in its launch? The end users lethargy towards using it.
---------

It's awfully difficult to move users from a client server app to a web based app given the limitation of web app (modal windows, printing issues, use of third party controls, browser compatitbility, etc...)

The fault lies with managment which failed to manage it's users expectations and deliver. If a company charters say about $2M to $3M to develop something for it's users, the sponsor will have a hard time explaining to his boss that users aren't ready to accept the new application because of bad habit.

This project seems like a perfect case study for a wide variety of things that can and will go wrong if it's not managed by someone who can literally herd cats. I don't believe technology or any human factors engineering could have been a issue here.

Anonymous said...

I am sorry for i was ignorant of Ajax. I read a few articles on Ajax and realise now what Rajeev was saying.
Yes, Ajax seems to have the potential to change the MVC-model that we are used to as far as web applications are concerned.
(Shit, i have so often told my wife of my desire to move out of this sleepy town and work in the bay area where i can remain on the cutting edge :-)) )

If we can have the power of running an application right out of our browser without having to make server trips , what the heck, everyone will go for it.
No need to install, no need to carry your lappy, just go on the net and start working.

I wouldn't predict doomsday for MS but surely Ajax + Google + Web services have the potential to make a dent in MS's domination.

Sorry for the previous post.

Anonymous said...

>>Shit, i have so often told my wife of my desire to move out of this sleepy town and work in the bay area where i can remain on the cutting edge

The world is flattening (per Freidman) :-) so it won't matter where you reside.

Just make sure that cutting edge is not bleeding edge ;-)

nizhal yoddha said...

i am a little confused about this, but i think you dont even need a browser to run AJAX-based web applications. all you need is a javascript-compatible OS, which i believe just means the java virtual machine is running. or am i wrong?

for instance, the google desktop applications run on their own without a browser.

so that means they are os-independent and browser-independent. thus google is making itself less and less reliant on microsoft's products (os, ie). if others follow this direction and use the AJAX platform as their base, then microsoft will lose the developer community, which will surely hurt. and no, not only in developer tool sales, it is in *mindshare* and ability to control them.

in my opinion, controlling the independent ISV developers has beeen the biggest business success factor for microsoft. no wonder they spend so much effort on keeping them happy.

it's because of ISVs and our favorite apps that we all feel pressure to upgrade to the latest version of the OS (to microsoft's benefit) and then become forced (to intel's benefit as well) buy a new PC because the new OS is so resource hungry. otherwise except for the enthusiasts and early adopters (see geoffrey moore's crossing the chasm) nobody would bother to upgrade to new OS releases.

kaunteya made a good point about people not wanting to transition to new apps. absolutely true. the biggest hurdle is training and experience. but if forced, people will do it. i have been using openoffice for some time, and though it's not 100% compatible with ms office file formats, and the commands are different, it's reasonably intuitive and not that hard to learn if you know office. but it appears that 'free' isn't enough incentive to use it, but 'fiat' might be, if its file formats become widely accepted.

but then, why do people migrate from OS version to OS version? there too the inertia should come into the picture. the answer is that it is a forced migration, pressure coming from ISVs (as well as corporate MIS depts which want to support only one OS version). so if there is compelling reason or coercion it can overcome the inertia.

by the way, what are the specs for a pc to run the forthcoming vista os? 1 GB memory? or 2GB? 2Gz CPU? 100 GB hard disk? kiss goodbye to another $1000 in 2006.

Anonymous said...

Rajeev,

Javascript in a browser can run even if the Java Virtual Machine is NOT on the machine (won't bet my farm on it but am pretty sure, remember the case when Microsoft wanted to remove JVM from their platform? and Sun came back kicking and screaming)

Only Google application I have is Google earth so not sure about other Google apps. I don't believe Google Earth is a what we'd call a "thin client". The data layer resides on the server but the presentantion layer and business layer is installed on the client's machine.

Remember the famous foot-n-mouth comment by Gates couple decades ago that 540 RAM should be enough for any PC? Isn't there some Murphy's law equivalent that states speed of machine and disk storage doubles for the same $ amount every couple years? If we can walk around with 30G in our jacket (iPod) would having 2G memory on our laptop be so bad? Personally moving to a new technology to an extent is infulenced by the actual cost of the hardware/software.
But in corporate world it's more than what is a better software or a cheap software - exhibit A: Linux. Those deeply entretched with Microsoft software haven't moved to Linux yet (atleast in couple dozen Fortune 500 companies I've seen in a specific health related sector). A lot revolves around ROI on adopting a new software and soft costs such as training, usability, support, maintainence, upgrade, ability to interface with other legacy application etc.

Darkstorm:
>>Also , AJAX makes local javascript (eeeekkss!!!) calls to the AJAX engine for tasks that are delegated to the client side. The engine talks to the server in the background.

Microsoft RDs (remote data scripting) did this in '98 or '99. Failed to catch on even in MS dev community because (IMHO) of 2 reason (a) worked only in IE and (b) security holes the size of Grand Canyon

Anonymous said...

Randhir, that was a good post regarding google & china.

How long can the communist thugs in china suppress freedom & right to information? I predict china will implode ('splittist tendencies' as they like to call) into fragments pretty soon. In the meanwhile we should train the tibetans residing in our country to take up administrative/military duties when they go back to independant tibet.

nizhal yoddha said...

oops, i goofed on google earth. yes, it is a pretty big *application* that i remember downloading. it's a winAPI client-server application.

how about google desktop? come to think of it, this is also an application that i downloaded and now run on my machine (by the way, it's great for searching for stuff you know is *somewhere* on your PC). and it runs in the background, indexing away.

but it has a host of small applications that you can set up in the sidebar. these i think are AJAX based lightweight applications and they also dont need a browser. they run on their own. i think these are google's prototypes of word processing and other applications. any thoughts on this matter?

randhir and darkstorm, i have no problem with a 2GB machine for vista except that what i have now is a 256MB machine, and i'm darned if i'll buy a new box just to run vista. i generally have to be dragged kicking and screaming to new windows os. in fact i ran win95 till my old laptop gave up the ghost after five years. i am a laggard when it comes to os upgrades: i never upgrade. the only way i change os is if i buy a new machine.

i have been thinking of running my machine dual-booted with linux, but the process of getting it up and going sounds intimidating, although i am very happy with unix-like OS's. maybe when apple OSx comes out for intel, i'll run that dual-booted. no idea when though. or if.

Anonymous said...

Rajeev,

I usually wait till Microsoft releases say the Service Pack 3 ;-) around the time the prices of hardware, software would have fallen to an affordable range and all the ancillary applications I like (personal finance, anti-virus, spam filter, email etc) would have released their Vista version.

Love cutting edge, not bleeding edge.

Anonymous said...

Google Desktop sidebar is not an AJAX application. Although AJAX application can theoretically run outside a browser also, but AJAX is not for that purpose and never used that way. AJAX is totally independent of Java. It is nothing but simple javascript calls which send xml requests over http to the web server. This request is normally sent asynchronously. Once the response is received it is processed using Javascript and then displayed. Google Suggest was the first AJAX application from Google. You type a letter in the search box. Your key events will be handled by some Javascript code which will send xml request to the web server and as a response it gets a list of words starting with your typed letter. Then Javascript code will show those words as a drop down in a div below that search box. AJAX engine is this javascript code which is sending request to the server and processing the response. Google Mail and Google Map are also AJAX applications. Google Desktop (ignoring the part where it shows search results in a browser, that result comes from a local web server) and Google Earth are thick client applications. AJAX (JavaScript XMLHttpRequest) is an old technology, becoming popular only now because of some successful demonstrations by Google.

Anonymous said...

@DarkStorm
<<<<
Hi Anon, Thanks for the info. Does the AJAX engine then host the javascript execution code.
Are there some new/predefined/fixed javascript method calls or it is regular client side javascript that you see on simple html pages.
>>>>>

There are some predefined javacript method calls which are used by all AJAX code. In Mozilla, it is XMLHttpRequest object and in IE it is ActiveXObject. Your javascript code will use these APIs to send back the request to the web server. To summarize, your client side javascript code will use these Javascript objects to send AJAX request and read AJAX responses.

<<<<<
But you need to display your results to the user. And how do you do that without going through the WinAPI. AJAX, IMHO is just another tech similar to J2ee web applications, just that it is a bit faster because the client is thick.
>>>>>

You display the result by using DHTML. You write html text to the document object. You don't need WinAPI.

<<<<
I think that the AJAX part is not on the browser. Because, like Google Suggest works, it does not refresh the page. If the browser sends info back and forth with the server, the page is refreshed
>>>

This is the beauty of AJAX. You don't need to refresh the web page. You send the request asynchronously and then receive the response and display the results using JavaScript and DHTML.

Look at some example AJAX code available on the web. That will clear most of your doubts.