Monday, March 24, 2008

Java is losing the battle for the modern Web. Can the JVM save the vendors?

A few years ago I worked on a very big Enterprise IBM Websphere project. We had some brilliant engineers in the project both in the development and architecture groups. I remember having had several discussions with some of the brightest people on the team regarding PHP and dynamic languages and generally they were looked upon as toy languages without a bright future. Lack of strict typing, scripting performance, and other reasons were given for why Java would persevere as the language of choice.

This was the typical reaction dynamic languages would get from the Java community. There were many believable reasons for why these languages, especially the ones gaining fame on top of the LAMP stack, would not last. However, one thing which the Java community ignored for many years was the radical shift to the Web, not only for media and e-commerce Web sites but for a large majority of business applications including CRM, ERP, reporting, document management, etc… As a result Java EE (then called J2EE) was not built with the Web in mind but rather focused on enterprise integration, transaction management and other back-end processing. While Java EE has long supported Web development with servlets and JSP the companies driving the standards ignored the RESTful nature of the Web and rather continued to drive a general purpose platform.

In parallel, the LAMP-like architecture built on top of the C language’s eco-system of libraries and tools started becoming the most popular platform for developing Web applications. This trend grew in the second half of the 90s and with a recession following the burst of the .com bubble it greatly accelerated due to the lower TCO that the LAMP solutions had to offer. While there are a variety of dynamic languages which make up the LAMP development and deployment paradigm, the most ubiquitous language has been PHP. As a result of PHP being domain specific to the Web it has been shaped in a way which makes it fit the Web paradigm like a glove. By focusing on solving the common Web patterns quickly and easily it holds the biggest market share on the Web. In two separate surveys of one of the most popular Ajax Web sites, the, around 50% of Rich Internet Applications developers are using PHP. The trend has also been significantly accelerated as a result of the many popular PHP packages including Wordpress, Drupal, mediaWiki, osCommerce, SugarCRM, and more…

When it became apparent to the large Java vendors that the Web paradigm was being built and innovated without Java they started backing a variety of both standards and non-standards driven Java Web application frameworks which promised to adapt Java to the Web. Such frameworks included Java Server Faces, Struts, Spring MVC and others. Some of these frameworks have been more successful than others but in general none of them managed to resolve one of Java’s main pain points on the Web. The strict typing and overly complex architecture of Java applications meant longer development times and a need for more skilled engineers in order to push Java applications into the market, i.e. Java’s TCO on the Web was unsatisfactory.

In the meanwhile the large Java vendors were trying to hold the stick at both ends. On one hand trying to be part of the Web paradigm shift and on the other hand protecting their multi-billion dollar businesses built on the Java language. Even the pervasiveness of dynamic languages in the Web space didn’t change the vendor’s behavior significantly. The big change came when Microsoft aggressively pursued a multi-language runtime environment for the .NET platform. Not only did they support C# and VB on their virtual machine but they worked with their developer community to add a large amount of languages including Cobol, Eiffel, Ruby, Python, and others. As dynamic languages continued to grow to the point where industry analysts started defining categories (e.g. Forrester Research on dynamic languages) Microsoft continued to leverage their common runtime which was designed from the get go to support multiple languages.

As mentioned earlier the de-facto standard implementations of the successful dynamic languages including PHP, Perl, Python and Ruby are all written in C and leverage the breadth and depth of the eco-system of C libraries. As community driven projects these languages do not have a specification nor is their development hindered by corporate bureaucracy. On the contrary, these languages are being developed by their users who have only one end goal – get the job done, quickly… As a result the languages are constantly evolving often adding significant enhancements in minor releases. With the rapid changes in how modern Web applications are being built and deployed this agile nature is a must-have to keep up with the latest trends.

In addition, the LAMP deployment paradigm has significant advantages. By featuring a multi-process architecture, faults in the Web Server and dynamic language software will typically not lead to sites going down. While one process may crash all other processes serving Web requests will continue running. This is in contrast to multi-threaded environments like the JVM (Java Virtual Machine, Java’s execution environment) where software faults including crashes and deadlocks will typically lead to system down situations. In addition, the ability to recycle processes after a set time will prevent memory leaks and memory fragmentation, two common software memory problems, from degrading the system efficiency over time. Another key advantage LAMP developers enjoy is the easy deployment paradigm. Software updates can easily and incrementally be pushed out to LAMP servers without requiring prolonged build and packaging processes. While this may lead to unorthodox and sometimes too lax of a process, when done correctly it makes the lives of the developers and the operations personnel much easier.

While LAMP’s growth was fueled by many of these development and deployment advantages, the Java vendors were stuck with the JVM which was very closely aligned to the Java language and had little support for targeting multiple languages. Instead of shifting towards a loosely coupled model of LAMP technology and Java technology in order to deliver the best of both worlds to their customers, most hesitated to lose control over the customer’s workload and entered an arms race to deliver dynamic languages on top of the JVM. With Microsoft on one side and the Java competitors on the other, each vendor set out to develop their own dynamic languages strategy.

Today Sun is investing in JRuby (Ruby) and Jython (Python) support for its Java EE solution; the IBM Websphere group has realized the ineffectiveness of the Java EE platform for running modern Web workloads and has invested heavily in Project Zero which aims to make big blue a Web 2.0 player and initially delivers support for Groovy and PHP; BEA has also had some incubation projects going but with the upcoming sale to Oracle it is unclear whether any of those efforts will materialize. Project Zero’s Chief Architect is one of the first IBMers to admit in public that Java today can be considered as a system language and is not desirable for building RESTful Web applications which is Project Zero’s goal (slide #4 of the presentation- see slide #11 to see how a simple “Hello, World” in Java compares to dynamic languages like Groovy and PHP). It has taken over 10 years for the Java stronghold to admit Java’s poor ROI on the Web and with the current recession it is likely that many Java customers are going to be making more informed investments. As a result there will be considerable rise in uptake of dynamic languages. Similar to the mainframe Java is heavily entrenched in enterprise IT and business-critical applications and is therefore not going away. That said for fueling modern Web applications the Java language will likely see a steep decline in market share.

The question to be asked is whether the non-Microsoft Web market will buy into the JVM implementations of dynamic languages or whether they will move to the LAMP stack which hosts the de-facto standards for the most popular languages.  While I believe there will be customers who are attracted to the JVM implementations especially the ones who are heavily influenced by their relationships with the Java companies, the majority of the market is going to prefer to go down the route of the LAMP stack. Reasons include:

-    The popular dynamic languages are all backed by very vibrant developer communities and are constantly evolving and adapting. The JVM ports of these languages will always lag behind the community driven de-facto standards implementation and therefore compatibility will be an issue. This is very similar to the problems the Mono community has in keeping up with .NET and this is even after help they get from Microsoft.

-    The JVM was not originally designed to host dynamic languages. For the foreseeable future the vendors will have significant challenges in keeping up with real-world use-cases. While they may show good performance in synthetic benchmarks such as for loops where JVMs are often superior in real world scenarios they will likely be impaired due to the dynamic nature of these languages which include closures, indirect method calls and a significant amount of type juggling.  See an example of how JRuby compares to Ruby’s current C implementation.  Also, we have to consider whether it’s truly in the hardware vendor’s interest to pursue the most optimized runtimes. With open-source community driven technologies the answer is clear.

-    The scalability requirements of the modern Web will require an increasing amount of processing density on the Web tier. C-based architectures are much more likely to be able to deliver the highest possible density by most efficiently interfacing with the operating system primitives and by delivering efficient, small foot print architectures. Such examples include high-performance Web Servers such as lighttpd, Zeus, IIS 7; high-performance caching systems such as memcached which is used by some of the largest Web sites including Facebook; and other performance critical subsystems such as memory management.

-    Multi-core systems work very well with the LAMP stack’s multi-process paradigm. With the chip industry now focusing primarily on multi-core as opposed to hyper-threading technology, the benefits of multi-threaded environments such as the JVM are not substantially realized on today’s hardware. Instead the multi-process paradigm delivers more stability and reliability.

-    Due to its simplicity, the LAMP stack delivers a very low barrier to entry for developers while still delivering the scalability of large scale production systems such as Yahoo! and Facebook.

In conclusion, it is becoming clear that dynamic languages are going to increasingly become the standard for Web development. Microsoft and the Java vendors have all recognized this trend and are now aggressively pursuing solutions on top of their software stacks. However, as the core dynamic language communities thrive outside of the .NET CLR and Java JVM software stacks the vendors will be in a challenging position if they solely depend on the uphill battle of cloning the successful dynamic languages onto their software stacks. Some vendors are aware of this challenge and have built hybrid strategies which also aim to deliver the de-facto standard dynamic languages to their customers even if they don’t have full synergy with their solution stack, this includes Microsoft’s investment in making PHP work with their solution stack and Sun’s initial attempts to deliver native Ruby and PHP implementations to their customer base. I believe that while the JVM approach to dynamic languages may appeal to some Java customers it will never be able to catch up with the broader open-source movement around native dynamic languages implementations. The JVM dynamic languages implementations will not be enough for the Java vendors to catch up and they will need to embrace the native de-facto standard community driven dynamic languages.


  1. I could not agree with you more, Andi. This is one of the best written articles on this subject I have ever read. Sun and IBM's product marketing and engineering groups should pay *very* close attention to what you say here.

    There is simply less and less case to be made for going with the heavy Java stacks and platforms over a LAMP-based environment for modern web applications.

    For mobile and desktop apps, Java is still a good technology, but the web space is an entirely different beast and Java simply doesn't fit. It's too heavy, too complex, too "enterprisey" for most users. Never mind the trouble in deploying Java applications...

    .NET is a different story and I see it competing head-to-head in the web space, as you mention, if MS continues to focus on the dynamic language benefits of the runtime.

    I simply don't see a point in Jython, JRuby, or other implementations of dynamic, community-built languages on top of a JVM. I mean, what are the benefits? It just adds needless complexity to a solution that is already tried and proven in the LAMP world...

    Anyway, just my 2 cents.



  2. I think your article would be more appropriately titled Large java vendors losing battle for the modern web', rather than a language itself.

    "The strict typing and overly complex architecture of Java applications .."

    Really? Strict Typing is what killed java? Declaring a variable as a type? Also I have a contention with overly complex architecture of java applications. Again, you can shoot yourself with any gun. I'm sure the precious untyped dynamic web languages can turn out some unreadable complex stuff. It's all about how you use it, right?

    I also find it strange that you embrace Microsoft so much, being someone who is pushing these open web projects.. IIS 7.0 is a high performance web server? Really? .NET is a gift from god to the world of development. Really?

    "it has taken over 10 years for the Java stronghold to admit Java’s poor ROI on the Web"

    Now, I'm not down with Project Zero's Chief Architect, or how many seas he's parted in his career.. But this IBMer has his own agenda to push Project Zero as that is what he's responsible for. I doubt he is the sole voice of IBM and what he says becomes law.

    The thing is, I agree with a lot of what you say. The JVM does introduce system dependencies that affect stability, rapid development times ARE a huge benefit. But the fact you take these weird needless digs at Java and Application Servers devalues your message.

    Java's just a programming language, it's not evil in of itself.

  3. This comment has been removed by the author.

  4. Dan,

    Thanks for your feedback.

    I do believe that the development cycles and cost of Java on the Web is significantly larger than with the LAMP stack (in its various permutations). Not only have I experienced this on my own as a Websphere customer (engineering team lead) but have also worked with many companies who have saved a large amount of $$$ from going with dynamic languages on the LAMP stack. This is especially measurable with customers who do considerable outsourcing and can therefore more easily compare cost.
    I don't think Java is a bad language. On the contrary, we also use it at Zend for our development environment (Zend Studio for Eclipse) and I borrowed some of the design paradigms for PHP 5 including the notion of interfaces. I am just saying that the ROI of Java for Web applications isn't there. This is one of the reasons the LAMP stack has been so successful and why Java vendors are investing a lot in dynamic languages. Web development is very much around gluing together data and building composite applications quickly. Dynamic languages like PHP really shine in this space.
    I have no special love for Microsoft and in fact while we do work together it's no secret that PHP and ASP.NET compete. Obviously one of the reasons customers choose us is the fact that we are heterogeneous and run on pretty much any system. I could also write an article on why I think customers should choose Zend and PHP over ASP.NET but that wasn't the focus of this article. I do think Microsoft's work with us around getting PHP to run well on Windows is an example though of how they understand that they need to deliver their customers choice and make sure they are a solid platform for running PHP applications. They've invested a lot of resources to make sure this happens and I think the UNIX/Linux vendors need to do the same for the reasons I mention in my post.

    The only reason why I brought up IIS along with other open-source and commercial high-performance Web servers is because I do think it's an example of a C-based Web server which has some very strong performance characteristics as opposed to Java-based Web Servers.

    Anyway, I appreciate the candid feedback.


  5. En primer lugar .net no está hecho para que albergue lenguajes dinámicos para esto se tuvo que hacer el DLR.
    En segundo lugar las implementaciones de C que se compilaron para ciertas arquitecturas y procesadores no pueden actualizarse en tiempo de Ejecución por que todo es hecho en tiempo de compilación ósea la atadura a una arquitectura se hace en tiempo de compilación. Java tiene un JIT que puede Recompilarse y adaptarse en Runtime a cambios de Memoria, procesadores y puntos de estrés, entre otros.
    Le incito a que vea el Fork Join Framework para Java 7. Si es cierto java es muy tedioso pero Java hoy en día ya no es un lenguaje es una plataforma. Y pensar que java solo sirve con hilos es pensar mal Java está adaptado para que pueda servir tanto en tecnologías con hyper threading como con tecnologías de varios procesadores y varios núcleos y todo esto se hace transparente así que decir que una ventaja de las stack de LAMP son su adaptabilidad a múltiples núcleos no es válida.

  6. The main point of Jython/JRuby-style projects is integration of various technologies. JVM/dotNET/Parrot/LLVM (and other VMs) allow programmers to use modules written in different languages, while building their projects.

    We can use java's database-libraries, pythons parsers, PHP's templating and ruby as a glue. And it will work

  7. Hi Alexey,
    While people seem to think as you say

    The main point of Jython/JRuby-style projects is integration of various technologies.

    in actuality not really such integration occurs.
    I have worked in Jython. python is not just the language and the standard libraries that come with it but also the wider circle of the community and 3rd party libraries.

    The moment a programmer shifts to jython, the only part of python that comes with the shift is the language and standard lib. The programmer is completely alienated from python 3rd party libraries, community and is entirely dependent on the java libraries. For me, this completely defeats the purpose of choosing jython. I dunno if it is the same case in other languages' JVM implementations

  8. I agree that, for a long time, we've needed to step down from the design-by-committee in Java where unnecessary complexity required by 1% gets to dictate the word for the remaining 99%.
    So while I am happy we are starting to see a bit of de-facto standardization of the gazillion frameworks in play (JSF and JPA), I'm saddened that they are still bound by the legacy of Java.
    It would be nice for example if JSF utilized a standard component model of Java the language (which has always been lacking) and if JPA did not require a type-unsafe pseudo SQL syntax inside string annotations. For these reasons, I think ASP.NET+LINQ has a much brighter future (less inclined to drive the developer mad) than Java. But for relatively simple sites, there is no doubt that PHP offers the most advantages in the long run.

  9. So when will we see a PHP version of eclipse?

  10. Hi Gringo,

    Thats the beauty of it all. For php, python, you dont need special tools like eclipse. vim or emacs will do the job pretty well. Eclipse will be an overkill.

  11. Since my quote on Project Zero was used as part of the original post, let me put my quote back in context. I said Java was the system language in the context of Project Zero. Zero is a platform that is focused on dynamic scripting as the primary means to build applications and therefore Java as a language plays a different role in Zero. I would not extend this to be a broader statement on Java itself. It is evident in Zero that I feel Java is still important and central to Web Development moving forward. This is evident in my choice to use Java as the implementation language for Zero (as opposed to C or something else). It is also evident in my choice of Groovy as one of the scripting languages supported by Zero. Groovy was chosen because of its affinity to the Java language and the ease with which Java programmers could adopt scripting via Groovy. I believe Java and JVM technology is the right choice as the runtime behind modern web applications and the Java community is a vibrant community both now and into the future.


  12. Not a very informative post, I think. But this is what a blog is all about after all : the author gives some current thougths he has in mind and get some feedback in return. But this post seems so biased....

    Anyway, here's some feedback :

    Websphere is far more bloated and complexe than any other app server. This is how IBM makes you need training and consulting. I saw a very productive project with a different App Server in 2005. And I remember asking a young and brillant engineer from that project (he was working on a php blog engine as a hobby) if we could/should have use LAMP. He burst out laughing and said that it would have been a real mess.

    Google use java/GWT for their Ajax apps. Are they clueless ?

    Strict type system killed java ? Seriously... even Python and Ruby have a stong type system. Javascript, php and c are the only language with weak type system I ever heard about ( or maybe you mean static type system ?)

    "The scalability requirements of the modern Web will require an increasing amount of processing density on the Web tier. C-based architectures are much more likely to be able to deliver..." vs "In conclusion, it is becoming clear that dynamic languages are going to increasingly become the standard for Web development".
    So you think that the "increasing amount of processing density on the Web tier" disqualifies the use of a JVM but not the use of a dynamic langage ? This sounds very biased to me. According to these benchmarks :
    Python, Ruby, Perl, PHP would be at least 20 times slower than c, and 10 times slower than java. On the other hand java would use slightly more memory than php and 2 or 3 times more memory than Python, Ruby, Perl. So if the "increasing amount of processing density on the Web tier" argument is so compelling, I fail to see why it does not disqualify dynamic languages as well.

    Anyway, my own conclusion is that nobody has a clue about what the future of web development will be. But everybody has put his eggs in a web technology basket, and some of them try to convince themselves and others that the one they picked is the future.

  13. Great article Andi! Thanks for contributing to the blog sphere with a well written and interesting blog.

  14. Well I agree that we need to look at Java itself in a new way, I mean when we say Java does we mean Java language, JVM or Java technology. IMHO, the Java language itself and some Java technologies are coming more difficult to use than ever and more difficult to use that other technologies provided in the market or the open source world. For the JVM, I think the future of it is to make it available to develop for JVM in different other languages which are becoming more powerful and suitable for easy development specially in case of Web development - still need to think about other Java technologies before we make any judgements -. But there is still one point IMHO which has not covered yet in new competing technologies, which is standards, one of the most powerful aspect about Java technology is that it is following a standard which make life easier when you are talking about the ability to use any vendor's products which support/compliant with that standard, which is not the case in using ProjectZero for example, so we have to ask another question here, are we giving up standards too. or we should build Java technology standards in terms of features provided by the JVM itself not based on the features of the Java language.

  15. Here's a site that just went live with Grails

    What is interesting is the technology behind Grails. Its using hibernate (proven OR mapping tool) and Spring (proven DI based framework). And all of this wrapped up in a coding by convention framework like that of ruby.

    Now why do say java is loosing the steam in web 2.0.

    In fact one can counter that lamp stack is great for simple app but if you want to do anything scalable then you'd need rock stars to make it work. Whereas with plethora of open source tools same can be achieved in java by mare mortals

  16. It's not only about the programming language.

    Look at the CMS market for example:

    On the one hand, the most visible Open Source CMS are written in PHP (Drupal, Joomla!, Typo3, eZ Publish, ...). They are all feature rich and have some large developer communities - both of which makes them highly attractive.

    On the other hand, Java-based OSS CMS are gaining ground when it comes to features, plus, they bring with them standard-based technologies such as the JackRabbit content repositories (Magnolia, Alfresco, OpenCMS, ...).

    As of today, Open Source CMS developers actually have the choice between a variety of applications and platforms build with PHP or Java.

    My impression is that Java is gaining ground when it comes to Web development.

  17. Grails, Wicket, and perhaps OSGI (Eclipse Equinox runtime) are, IMHO, the only hope for Java in the web tier.

    All other frameworks (Struts, JSF, etc), as well as the standard APIs (JSP, Servlets, JSF, etc), as well as the standard deployment method (build/deploy a WAR into a Servlet container), are all far too cumbersome for Java on the web tier to compete with the LAMP stack, or even ASP.Net/Linq, or even RoR, in the long haul.

    The Web is far to dynamic to make cumbersome development/deployment stacks viable.

    That said, stuff like Grails and Wicket smooth out Java complexity greatly, and have real potential.

  18. You are incorrect in lumping Groovy in with JRuby/Jython in at least one aspect of your points. Groovy does not have to play catch-up to anything while JRuby->Ruby and Jython->Python.

    That is another big plus for Groovy. It isn't beholden to its ancestor language.

  19. I don't think Java is losing the battle for the modern Web at all. Many new Web applications are still written in Java. Java will stay alive on the server side however I can see it die on the desktop side any time soon.

    I had a Perl pal starting with Java few weeks ago. He didn't understand why he should learn so many concepts(servlet container, WEB-INF, web framework, etc.) before starting a simple Web application using Hibernate.

  20. the only non-technical reason I have found for JRuby and Jython is that it meets a corporate CYA factor in that it is built on the JVM and is supported by Sun.

  21. Andi,

    I'm not convinced you're on the right track. Admittedy I'm biased towards J2EE, as I think the pros greatly outweigh the cons.

    However, I think that one can approach this from a different angle, and that is the impatience to get things running, operational costs be damned, as we can always throw more hardware at the service.

    Therefore it is easier to get a Rails app going in five easy steps, but without database connection pooling that sucker ain't gonna scale well.

    I think that at the end of the day, cost is going to be a factor, and the overhead costs of many of the alternatives to J2EE are going to kill these projects.

    Number of concurrent user served per box is always a factor for those that do not have endless sums of VC money to spend on servers and hosting cost, and now that VCs are starting to rethink the funding approach, the properly designed systems will rule again.

    Proper C++ and J2EE systems should be able to handle thousands - if not tens of thousands of concurrent users per box - in a Web 2.0 type app, scaling easily and efficiently across a nice stack of jBoss/MySQL/Apache/Linux while I've seen metrics of Rails apps having trouble with 10s of concurrent users per box.

    So even though J2EE has a steep learning curve, so does proper system architecture and many other necessary things. And J2EE does eliminate a whole lot of headaches out of the box, of which decent data abstraction, caching and connection pooling is just one.

    Our system, which contains Web, Mobile Web and a lot of transactional type things such as messaging is a good example of efficiency, where we've seen transactional support for 10s of messages per second per box interacting with a 3rd party system, which we had to throttle down because the php based system on the other end simply choked.

    But everything has it's place.

  22. the php example in slide 11 is too long. you can do it with just a

    print "hello world";

  23. We use java servlets, jsp, hibernate, dojo-ajax with postgres as a backend (no EJB/EE/Struts crap here) and have no development speed issues.

    I personally love strong typing, especially generics. The more tightly you can define a piece of code, the less chance you will have run-time issues.

  24. Former Java Guy4/07/2008 08:24:00 AM

    Java is great for enterprise development, however it makes the simple things too tough, and 90% of business software is automating the simple things. The other 10% is heavy lifting, which Java is particularly well-suited for, (unfortunately) now that .Net has matured, .Net does all of the above quite well.

    Many of the people that I used to work with who only did Java 5 years ago (including myself!) have had to switch to other languages, mainly C# in order to remain marketable.

    .NET is aggressively replacing commercial Java opportunities due to its lower cost factor and the very nice Visual Studio development environment. Eclipse is nice, but Visual Studio beats it hands down on responsiveness and ease of use.

    On the low end, Microsoft's free "Express" versions of their development environment has been bringing the rich structured .Net environment to developers looking beyond community-assembled platforms. The .net framework and languages are also extremely well documented from many sources.

    Mono, the open source .net cross-platform runtime has also opened the door to people running .net on other platforms as well.

    LAMP also has its popularity however the people I've dealt with who have used this generally move on to other advanced platforms eventually.

    The complaints I've been told revolve around the non-standard nature of everything, from inconsistencies in APIs to documentation issues across tiers.

  25. The web is losing the battle for the web. A good 1/3 of the web pages I visit no longer work or display properly. The rise of massively incompatible ad hoc pseudostands like DOM and LAMP are rendering the entire web unusable. The comments form on this blog offers a good example, with a huge bug in which any text you start to type gets wiped out as the LEAVE YOUR COMMENT form reloards spontaneously after about 30 seconds for no reason.

    The chaos surrounding IE8 is the most extreme example of the web's breakdown, and Java represents only the latest example. How long will it be before no web pages display properly and no forms work with anyone's browser? I already get error messages telling me THIS WEBSITE DOES NOT SUPPORT YOUR BROWSER. I use the latest Mozilla Firefox 2.X and Opera 9.2 beta. Not supported? The latest versions of the latest browsers that aced the ACID suite??? Windows hotmail displays all text squished over on the extreme right side of the page under Firefox, and won't even work with the latest version of Safari. Clicking on links to javascript + PHP + XML or Ruby sites doesn't work at all in Opera 9.2 beta, I have to go back to Mozilla to access those websites at all via a link.

    Total chaos.

  26. former java guy4/07/2008 12:28:00 PM

    Excellent point Zorgon. Honestly, the web was a friendly place when IE ruled the roost. Everyone agreed that IE sucked, but everyone could figure out a way for it to work.

    Now that we are in the age of 3 top tier "legacy" browsers (IE, Mozilla, Opera), plus a plethora of newer "fringe" browsers (Safari, Konqueror, Maxthon, Flock, Amaya, Epiphany, Netscape, etc.) oh, and don't forget the dozens of mobile browsers, it is impossible to create a site that serves all clients equally.

    Oh, and don't forget 3 versions of each! Legacy, current and beta!

    The days when 95% of the world used IE were much better than today. When IE didn't crash that is...

  27. If Java EE was hacked to support the Web. Isn't OO PHP a hack also?

  28. What's needed are a few more tools like Wavemaker ( and Talend ( Tools take leverage the power and wealth of business applications experience associated with the JVM and the people who work with it, while making it quicker and easier to pull solutions together.

  29. [JVM] will likely be impaired due to the dynamic nature of these languages ... See an example of how JRuby compares to Ruby’s current C implementatio

    You are aware that Jruby outperforms Ruby 1.8?

  30. IBM has got a RAD IDE for Web applications already, a perfect supplement to more heavy-duty Java applications.

    It's called Lotus Domino. Don't you start to laugh before you've had a long, good look at what IBM is doing with the Notes/Domino platform beginning with version 8.

  31. Former Java Guy4/07/2008 01:13:00 PM

    I know some former Notes/Domino developers. They will have nothing to do with that platform. This is prior to this latest version, but honestly, Microsoft is eating IBM's lunch when it comes to Notes. Microsoft is aggressively converting Notes accounts to Exchange implementations.

    I would not hitch my career to Notes.


    About PL/I: "[…] At first I hoped that such a technically unsound project would collapse but I soon realized it was doomed to success. Almost anything in software can be implemented, sold, and even used given enough determination. There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way — and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay."

  33. Firstly you say that Lamp very good for multicore systems.

    Fact: J2EE was especially designed for multithreaded, multicored system. Therefore java is also very well suited.

    Secondly: Strict typing facilitates better programs who are more bug free. Rapid development can be more difficult but in the long run strict typed application will have less bugs then the rapid develop applicationg using dynamic languages.

    The main point that web2.0 sites are often not programmed in java is just simple: The programmers do not have the skill to develop sites in the Web2.0 way.

    It often starts with php end finally they have bottle necks and solve this whit a lot of machines.

    I am still very sceptic with respect to dynamic languages. They are good for prototyping, but i would not depend a multi billion dollar company on it.

    The ROI factor may be true on the short run, but on the long run i strongly advice a more mature language like Java.

    I have created a framework in which i can create crud application much faster than in ruby or any other language. It uses the MDE (Model Driven Engineering) techniques, all xhtml forms, sql, and models are created on the fly.

    The holy grail of programming is bug free programs, not ROI. So strict typing should be important to computer science students.

  34. I never read so many stupid things all together.
    A JavaEE+Struts2+Spring+Hibernate developer.

  35. Thanks, with your article you provided a base of facts for my preference for PHP over JAVA for anything from prototyping to proper web applications. And nowadays even more productive and with 'better' code organisation due to symfony framework.


  36. To me the whole issue of "Java is losing the battle for the modern Web" is moot.

    The modern web is a collection of services that you can combine (mashup) into a useful application. As we continue to drive toward open interoperability standards like web services (SOAP), RESTful design, etc. that are platform and language agnostic does it really matter what language the services are implemented in?

    For you PHP may be the right choice but for others it may be Java or Python. The emerging open standards will allow organizations to choose the right language that fits their profile.

  37. I recognized the advantage of a more loosely typed language for web development a few years ago. I selected BeanShell for this purpose and integrated into Struts. We develop applications more quickly than with "pure" Java.

    The advantage this gives us is access to any Java class and the ability to easily convert our BeanShell scripts to "real" Java code when we need performance in a key routine.

    Experience has taught us to always use languages that are based upon compilable industry standards. In the past this has been Fortran (ya I'm that old), C, C++ etc. Until the dynamic languages have a path to a compiled version, they will always be fighting a performance limit.


  39. Forget JSF, it is just an one big mistake :)
    You can simply use JSP/servlets in "PHP style". That is it. There are a lot of components (in Java) for that.
    Taglibs, tag files, JSTL and custom taglibs

  40. Last week I started to learn Ruby on Rails ;-)

  41. Yeah, lets leave it about the 'modern web'. Java was never the winner in this sector, neither will be! And vice versa, Java (or .net/C#) provides solutions for problems, the dynamic language world will never serve.

    The discussion about the 'best' language for the presentation tier is so pointless. It is a fact, that Java is not flexible enough in the presentation tier sector in the eyes of a 'web developer', who solves his 'little' persistence-to-web problems. But there is a lot of stuff out there (typically large enterprise applications) where the presentation tier is just a little tiny thing compared to the whole application landscape.

    As a software architect, I need to design applications and/or assemble applications, fragments of applications or services. This can not be solved by dynamic languages, only. Particularly if you design on a interface level. Another thing is refactoring. Dynamic languages are not easy to refactor and to maintain. Even with the right tools.

    So the right discussion would be about how, both worlds, the dynamic and the strict one, can coorporate to provide the best choices in the field of reliability and flexibility. That's what Sun is currently doing. And having this strategy (opening the VM to other language) makes choices easier again, not to jump on the PHP/Ruby/Python-one-way-flight when well-designed applications are to be build.

  42. Yeah...
    There is no reason to say that Java is loosing anything. Numbers usually mean nothing. Though I do agree that Java is NOT the language of choice to start new WEB2.0 projects.

    Now for your mistakes(or disinformation):
    1) Community: It seems that you are missing that Java is also backed by a vibrant community. Not less vibrant than any other.Oh, yeah - Sourceforge says that Java is the leading language :)
    And Mono to .NET is NOT a good comparison. Mostly due to licensing and visibility of further steps.

    2) Dynamic languages on JVM: For single thread performance ever heard of the Da Vinci Machine project? But in real life(use cases) a lot of work is done in parallel, and we all know that Ruby VM will underperform in those cases.

    3) Your scalability point has nothing to do with Java nor with dynamic languages. And those web servers can be used with Java as much as with PHP, Python or Ruby.

    4) Now the point about SMP is just a flaw in every single sentence.
    a) hyper-threading - is Inel's trademarked technology.
    b) multi-core can be exploited by a single process w/ many threads as well as multiple processes,probably even better
    How did you graduate from the university? It baffles me.

    5) LAMP simplicity - true. Scalability is due to share nothing architecture only.(FYI: eBay is doing that with Java quite effectively.)

    "As a result the languages are constantly evolving often adding significant enhancements in minor releases."
    - I am still waiting for namespaces in PHP.

    "where software faults including crashes and deadlocks will typically lead to system down situations" - Without redundancy Java and dynamic languages are vulnerable. That said over 8 years I've seen Java servers crash 2 times and PHP crash my Apache 3 times.

    "The JVM dynamic languages implementations will not be enough for the Java vendors to catch up and they will need to embrace the native de-facto standard community driven dynamic languages."
    - That is you personal view.

    I have several projects in development and production where Java, RoR and PHP are used. Had my pains with J2EE, RoR and crappy PHP stuff. Speed and simplicity of deployment was not always a factor.

    And to note, from real live systems, comparing resource usage vs performance Java webapp on Jetty6 beats lighttpd+php(fcgi), apache is not much better.

  43. Hi Andi ,

    Your blog on the potential trend of technology community and enterprises to shift their focus from Java based web applications to LAMP based or other dynamic languages is quite insightful , though a bit biased. I agree that the newer platforms have higher and quicker ROIs , however they can also infuse certain anamolies, not due to their inherent characteristics , but due to enhanced aggressiveness of technical design and development team to deliver the end product on a reduced time frame. These might include
    1. lack of adherence to accepted design principles , as minimal time is spend on design
    2. absence of or inadequate design/dev documentation to accommodate faster dev-to-deployment transition
    3. lack of coding discipline , like conforming to coding standards and pre defined code review guidelines

    These and several other inconsistencies with SDLC practices can definitely lead to a gamut of unstable and non-maintainable software applications. Let's hope that in the excitement of RAD with these new languages and platforms , industry does remember the best practices of software engineering , else a new bust might be just round the corner.

  44. I think Java is a wonderful PROGRAMMING language (one of the best, no doubt). PHP is a wonderful SCRIPTING language (one of the most simple and powerful, no doubt).

    So can we please cut this Java vs PHP "war"!? PHP and Java should just be friends and could have a wonderful and productive life together! The same counts for Java and other scripting languages of course!

    Just run PHP on top of a JVM and start using the best of both worlds if it is applicable of course!

    Simple and fast web 2.0 development can for instance be done with PHP if you can use it's advantages. The power of Java can be used for the complex and maintainable business logic, enterprise applications bla bla.

    Just think twice and more out of the box. What power do I need for what application? Java power? Ruby or PHP or ... any scripting power? Or maybe a combination?

    Java and PHP are not like God and the Devil or any two religions. This is 2008 man, use all of the powers available in harmony! :-)

  45. But,classic ASP(vbscript/javascript) also build on dynamic language.

    Why did it not so successful like PHP?

  46. Andi,
    My Man,you took the wrong place to say something about java, try and gauge the response from there too.

    You saying that being multi threaded,when deadlocks happen you need to restart jvm, thats b.s and please dont let me add anymore on the blog by saying something thats FUD. I do agree there has been certain level bureaucracy in the process, but the community as a whole is vibran. Web Apps are just not Client alone(If you want kicks javas butt here please feel free to do, And do you really think you can write code in C to take care of take care of what current frameworks like seam offer . please check your premises before you start some thing so provocative.

    I will come back with some constructive criticism(to the best of my knowledge).

  47. The problem is not about technologies, is about how to bring more developers in the market because the web2.0+ demands huge amounts of them but not that many if we accept the truth that the 90% of new companies will not survive.

    Take a look at a real life application architecture starting with the load balancer (scripting), Apache (mod_cache, mod_proxy, PHP, Phyton,...), some app server boxes (Java/.NET), of course Messaging servers (Java/C++) interacting with new or legacy applications built in any language.
    There is a lot of room for using the right tool for the job but usually 99% is spent in the app server only.

    The problem is the lack of separation of concerns, making the app servers to do the heavy processing and store the result in lightweight Mysql tables to be read by PHP and/or dynamic languages. But no, we tend to mix all the functionality in the same application and a single DB and expect it to be scalable and easy to maintain.

    This kind of separation of concerns was what J2EE tried and failed to achieve in part because most "power developers" don't bother learning the specs nor they have time!! And architects once they win their first battle are promoted to more management positions.

    My two cents (of euros)

  48. This is really Nice Blog, Best informations and best Articles and nice design !!!
    Wait new posting from this blog

    Find another Best links in our Websites :



    If you have still problem with virus rontokbro / brontok, brontoxyou can find here antivirus for remove all virus brontok here. our antivirus new and updated and care erase all virus brontok on your computer.
    Antivirus Brontok/Rontokbro

    If you want to buy Laptop/Notebook, we have complete Tips To Buy Laptop/Notebook, so read our tips, before you buy Laptop !

    Best Tips To Buy Laptop/Notebook

    All Information About Laptop/Notebook
    Find Best Seller laptop and Top 10 Laptop Now

    Best Laptop

    Antivirus Group can Help you if you have problem with Viruses , Worms, trojans.

    Download Free Antivirus Software

    When you have no ideas more, to make an extra income, you can start with our internet make money / make money online, to earn money from internet and work at home.Here is many sites for tutorial and how to create website for make money online. Actually many idea for make money on internet, Here we give you tips and tricks make money online.Find out how to build a successful home business using your computer working from home. Start making money and a regular income from internet and other online actions. It's easier than you think, and we can show you how. Find out more....

    Easy Tutorial Make Money On Internet

    With Website Promoter you can know how make rangk on internet search engine and tips to high rangking optimization

    Website Promoter

    Here you can direct download logo, baground & ringtones for mobile phone, handphone or handset/pda/smartphone. We have many Handphone Logos, Background & Ringtones.

    Download Free Logo & Background for Handphone/Mobilephone

    Very cool Blog, take care !!!

    Antivirus Center : you can free Download Software Antivirus for remove all virus , remove trojans, delete worm , clean trojan horse, delete worm W/32. We have virus remover, trojan cleaner, worm washer, eraser and much more.
    Best Antivirus For Pc/ PDA/ Smartphone/ Laptop n


    Here you can learn how to build website with html template ,complete with tutorial how to make quickly

    website for your company.
    Free Template For Website


    If you looking girls, womans, mans , boys on the world , you can find anda dating with them, our dating online website have many members , so find now your dating on dating online site. This dating online service is

    best for find your dreams
    Fun Dating Online

    Download Free Mobilephone Logo, Mobilephone Background, Mobilephone Wallpapper, Mobilephone Ringtones: Polyphonic, Monophonic & Midi and much more, you can download free Mobilephone logo here !!!
    You can easier download this mobilephone logo, mobilephone background, mobilephone wallpapper and mobilephone ringtones.





    By : Blanjo Company Best Antivirus Info 2008
    Partnert This Blog

  49. hi,i believe PHP language more after a saw this post.
    Thank you.

    To choose a language is hard and important.

  50. Weekends to peopleig2tmean that they can have a two-day wowgold4europe good rest. For example, people gameusdcan go out to enjoy themselves or get meinwowgoldtogether with relatives and friends to talk with each storeingameother or watch interesting video tapes with the speebiewhole family.
    Everyone spends agamegoldweekends in his ownmmoflyway. Within two days,some people can relax themselves by listening to music, reading novels,or watchingogeworld films. Others perhaps are more active by playing basketball,wimming ormmorpgvipdancing. Different people have different gamesavorrelaxations.
    I often spend weekends withoggsalemy family or my friends. Sometimes my parents take me on a visit to their old friends. Sometimesgamersell I go to the library to study or borrow some books tommovirtexgain much knowledge. I also go to see various exhibition to broadenrpg tradermy vision. An excursion to seashore or mountain resorts is my favorite way of spending weekends. Weekends are always enjoyable for me.
    igxe swagvaultoforu wowgold-usaignmax wowgoldlivebrogame thsaleGoldRockUbrogameswagvaultgoldsoonoforuigxethsale

  51. Your blog is very informative and very helpful. Thanks for this.
    Web development

  52. How To Make money with affiliate programs Today. Affiliate marketing is the easier and probably the most effective method to make money from the internet. It is basically, a kind of selling technique where potential buyers from your website are directed to the websites of sellers. For every click, the website owner gets a small commission.

  53. shalominfotech IT companyit is an it trainig company now we offerd special training courses...

  54. Thanks for the information, we will add this story to our blog, as we have a audience in this sector that loves reading like this” web development




  56. We specialize in website Design & Development, SEO and Web Marketing, e-Commerce, CMS Application Development, Software Development (customize application development, distributed software development, client server application development, Desktop Application), Multimedia solutions (Logo Designing, Flash Animation, Banner Designing, Corporate presentation), PPC, link building, directory submission, content writing, article submission.
    Php Training in delhi

  57. They can not save the vendors.

  58. This is really a good stuff, I would say that Image Recovery helpful Recover your lost digital images, audio, video and data files with MediaRECOVER software. This sounds good. I like it. Image Recovery

  59. You have given a nice preview. Nice ideas. Selling A Business

  60. I think that this is really a good way to show that the website still exists, as this would help to show the presence of the business.

    Apartment movers

  61. This blog is related shopping. New ideas, quality designs, sensible colors, and no-nonsense prices. I want to like the bag, but something is keeping me from liking it. Unfortunate because I own so many of his bags. This is really nice blog…


  62. I recently came accross your blog and have been reading along. I thought I would leave my first comment. I dont know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.

  63. I am extremely impressed thanks for sharing all information. It is a great post for the people to get the proper information. Austin Home for Sale

  64. Acesoftech is a leading PHP training center which provides best training in Kolkata and Surat. The company provides training in such a way that its easy to learn and complete job oriented. We provide live PHP training.

  65. Acesoftech is a leading PHP training center which provides best training in Kolkata and Surat. The company provides training in such a way that its easy to learn and complete job oriented. We provide live PHP training.

  66. very useful info for me.Because i'm new in blogging and i'm need good tutorial like your post. Nice to visit here, and don't forget to visit our blog to and give me more spirit to continue my blogging activities.

  67. This software is looking very useful for me. I have download it and now going to install it. Hope its result 'll be awesome as i am expecting.

  68. This is a great post and Thank you very much for sharing this valuable information about 10 Reasons Why Verizon's Android Support Should Make Apple Nervous with us.

  69. This is my first time i visit here. I found so many interesting stuff in your blog especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the enjoyment here! keep up the good work.

  70. Thank you for the sensible critique. Me & my neighbour were preparing to do some research about that. We got a good book on that matter from our local library and most books where not as influensive as your information. I am very glad to see such information which I was searching for a long time.This made very glad

  71. Thanks for posting this. i really enjoyed reading this.

  72. Great site design!!!! Whattheme did you use?

  73. Hey, just wanted to say that this was a very well written post and I enjoyed reading it. It's great to see someone sharing interesting information on the internet.

  74. I really liked this post as it is providing all information and facts about the topic. Looking forward to such more posts in future. Fantastic post!

  75. After reading this post I can say that the writer has done a lot of research and has put all the facts and figures together in his content. It is one of the most credible posts, I have come across. Great job!

  76. A problem that glares at the faces of programmers in the face of programmers regarding .NET is the maintainability.

    .net obfuscator

  77. One of the leading SEO training center in Kolkata, Acesoftech is known for its quality education. SEO is mainly based on expericne, learn SEO training from Industry experienced trainer who has already done SEO for several websites. Contact for SEO training in kolkata

  78. This will not actually have effect, I think so.

  79. This is one of the perfect post.This is one of the excellent post.This is one of the pretty post.
    Android app developers

  80. nice blog, just looking around some blogs, seems a pretty nice platform you are using. I'm currently using Wordpress for a few of my sites

  81. Hi, Good post.....Very nice and creative site , i really impressed about information.

  82. This is a very helpful post, i hope this really helps me to complete my project.

  83. A mighty cry for vengeance went up, and without waiting for further orders they charged forth in a body and made straight for the enemy.

  84. So good topic really i like any post talking about Business Ideas and Advices but i want to say thing to u Business articles not that only ... you can see in Business Business articles directory and more , you shall search in Google and Wikipedia about that .... thanks a gain ,,,

  85. Nice articles, thank you for sharing with us, I just bookmaker you site for feature reference and waiting for your new edition. Keep going, Thank again for shearing with us.

  86. Thanks for posting this. i really enjoyed reading this.

  87. Hello, I love reading through your blog, I wanted to leave a little comment to support you and wish you a good continuation. Wish you best of luck for all your best efforts. web design company, web designing in jaipur.
    Web Design

  88. Hi there, awesome site. I thought the topics you posted on were very interesting. I tried to add your RSS to my feed reader and it a few. take a look at it, hopefully I can add you and follow...

    Web Design Singapore

  89. I am very glad for this article; it’s very informative resource to help us.

  90. Where can I play a Pokemon online game? I've seen a bunch of different pokemon games online, but I'm looking for one that isn't like Mob Wars (like clicking everywhre instead of actually playing the game). So, i guess something like a flash game Thanks!

  91. Are there some advantages of one language C and Java over the other? Which one is optimal? Which one is more "future proof"? Would it be optimal to know both? If so, which order? I am a little confused on the subject. Just got across this course, will it be helpful also. A little enlightenment could help. Thanks

  92. For mobile and desktop apps, Java is still a good technology, but the web space is an entirely different beast and Java simply doesn't fit. It's too heavy, too complex, too "enterprisey" for most users. Never mind the trouble in deploying Java applications... cheap jerseys free shipping

  93. This comment has been removed by the author.

  94. Looks like the opening volley of the standard language holy war java objects can be referenced as any of all of this can be done with modern vms and. Raible designs java the benefit of this is you can simply edit and save a groovy java ee vendors and services are exported with spring/rpc and services in same war can see. Java artisan s blog and the craft of software engineering how open source java tool stacks won the war languages on the jvm making the java platform world of a modern java developer and how she can utilise the.

    acc 290 final exam

  95. Now Spring all came into market but till it is also java.

    website design company bangalore

  96. I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. ..... by OPS 571 Final Exam provider.

  97. Nice article about web ,i like it,thanks for shearing this good information with us.
    Web Designing

  98. Thanks for the informative tips shared here! Got only positive emotions and dozens of ideas that could be useful for my blog.Web Development Company Bangalore

  99. ProShark Mobile Application Development
    Just in case you missed some of the pertinent facts regarding application development for mobile platforms, here are a few that may catch your attention.
    • 72% of adult Cellphone users text messages
    • 65% of adult Cellphone users sleep with their phones
    • 50% of US Cellphones will be smart phones by Christmas 2011
    • 1 out of 3 Yelp searches is from mobile
    • Apple Will Sell $2B in Apps in 2011
    • Approximately 40% of social media users access their accounts through mobile devices.
    • One billion mobile applications were downloaded in the week between Christmas Day and New Years Day - Flurry Analytics
    • The total global mobile applications market is expected to be worth $25 billion by 2015 (up from about $6.8 billion in 2010) – Marketsand Markets
    Go to::>>

  100. Very informative sites.Thanks for sharing good information and we are waiting for your next update.Web Design Company Southport

  101. Very informative sites.Thanks for sharing good sohbet odaları

  102. IT Pathshala a globally recognized company for training cum 100% jobs which is initiative of Myzeal IT Solutions, Noida, a CMMI Level 3, Microsoft Certified Partner, ISO 9001:2008 compliant company offers Java training with 100% placement and hands-on practical practice. It’s a excellent training program, covers all major concepts and topics related to JAVA development and offers opportunity to work upon Real Live Projects developed in java and the instructor found the ways of explaining abstract concepts in a simple way, providing best conceptual practices.
    Our .Net Training with 100% Placement takeaways:
    • 100% guaranteed placement
    • Instructor mentoring available for ever
    • Real live international project experience
    • Guidance and supervision of experts and professionals
    • Experience Letter on Training Completion
    • Get certificate from reputed IT Company

  103. Acesoftech is a leading Web designing training center which provides best training in Kolkata. The company provides training in such a way that its easy to learn and complete job oriented. We provide Web designing training with live project.


  104. Web designing is very popular in this time!!!!!!!!!!
    There are different tools are used in web designing...
    Web Designing Tutorial Noida

  105. Amazing post, I like it. It was quite interesting nice work.

    Joommla Web Designing Company

  106. very good explanation about java i like to go restaurants in singapore