Sunday, February 06, 2005

Re: Did Microsoft lose the API war ?


I googled "Google Desktop search" and the first few articles mention that it does indeed have a local web server. Dyou think a web server is needed just because they are trying to present the results in the Google Web Search like interface i.e within the browser, using html?


Simply to provide one app both for Google-Desktop and Google-Web. The user does not need to shift between apps.


Do any of you know how Gmail works internally?
They have a LOT of data redundancy to counter failure.
Regarding the client. Yup, it's a lot of dhtml. Have you viewed the source?


The major reason why google has huge amounts of redundancy is because they expect their hardware to fail. Seriously. Google do not use the most top-end hardware in the market. They use off-the-shelf x86 hardware. This helps in keeping costs down. So they can upgrade systems more regularly at a cheaper cost. Their software is built aroud the assumption that some node will fail. Amazing stuff. Everyday the Java and I think .NET API's are getting more and more complex. Layers of patterns over patterns are being built. You just need the most advanced hardware to run stuff for say 10,000 simultaneous connections. This stuff feels a bit awkward. I'll explain more later..

I haven't tried looking at the source. Dunno DHTML etc.


So, all old java code will work on the newer 1.5 jvm. New java code, developed with generics and newer types won't work on pre 1.5 jvms. This is exactly the case with .NET. I don't see any reason why you can't add NEW bytecodes. Don't change any existing bytecodes. How would there be a break in compatibility?


The only valid answer I have is wrt to the compatibility of all JVM's supporting a fixed set of bytecodes. The JVM's do not need to be re-written to work with Java 5.0. I too am not totally convinced with the rationale behind this.


Basically, you can do everything in ASP that you can with ASP.NET, but it was a mess to code, debugging was a nightmare and it was based on COM which was torture. ASP.NET has made the development experience much better. I don't know anything about the web tech in Java, but from what I've read, it seems similar to ASP i.e. complicated. Can Rahul provide some details about what's required to develop a dynamic site using Java tech? Is JSP enough or dyou need other thing like JSF, Struts, Servlets, EJBs etc...?


I made a statement that ASP was lame compared to JSP. One reason was that JSP pages are compiled only once. For ASP it happens more often. Is it for every request?

Using JSP by itself is easy, but you'll manage to mix UI and business logic etc. It is possible to create MVC apps by making some Servlets, but rather use Struts. Struts is an API which helps you develop MVC based Web Apps. Servlets and JSP are technically the same thing. A JSP page is easier to code and is converted to a Servlet by the Web Container.

I read quite a bit on Struts lately. What I learnt is Struts is HARD, and JSP by itself is messy. In most apps you need to connect to some back-end database. You can use JDBC for connecting to a database. EJB and other stuff are used for advanced persistence of objects and advanced stuff like transactions etc. This area of persistence is where Java sucks at the moment compared to .NET.

Struts also internally uses Servlets. Basically Struts helps structuring the Web App really well. Obviously there is an overhead of performance. But that is not what concerns any one. I brushed through two books by Wrox on JSP and Struts. In addition to Struts, they advised using two additional layers of "design". One to manage Persistence and another to store the Business rules. Both these layers are to be included at the Model layer within the Struts MVC.

I have to admit that in the end the Web App was beautiful. I mean the design felt so damn right. But at the same time, it also felt too damn bloated. Too many things happening on a simple request. Its like screw performance. So it was a funny feeling.

Now the usual questions!! How does stuff happen in the .NET world? How are ASP.NET pages structured? How easy to develop, and can it be done without an IDE easily? Also if you really want good design, how bloated does it get? How much can as ASP.NET dev get to know about inner workings, under the hood?

Thats when you see something like google apps. Which really are efficient and are great at the same time. Doesn't it feel like Java and .NET are making like easier but making you pay somewhere else.

No comments: