jhv1blz5 wrote: The article validated SOA as an IT architecture paradigm that can be leveraged in many ways. Taking data storage, scalability and application performance to a nifty level using SOA Application Grid infrastructure will no doubt enhance data and application performance on Oracle architecture platforms, it also has the promise of a cost effective and efficient IT delivery model. The very benefits of SOA.
Here is a question that I have been pondering on and off for quite a while: Why do "cool kids" choose Ruby or PHP to build websites instead of Java?
I have to admit that I do not have an answer.
Why do I even care? Because I am a Java developer. Like many Java developers, I get along with Java well. Not only the language itself, but the development environments (Eclipse for example), step-by-step debugging helper, wide availability of libraries and code snippets, and the readily accessible information on almost any technical question I may have on Java via Google. Last but not least, I go to JavaOne and see 10,000 people that talk and walk just like me.
The other reason that I ponder this question is that the power of Java is a perfect fit for the areas where websites may need more than markups or scripting, such as middleware logic. PHP and Ruby etc are cool for building pages, but they are not ideal candidates for building middleware logic. Given that Java covers the "high end" of the spectrum well (where sophisticated processing is needed), wouldn't it be great to use Java all the way?
Is it Java as a programming language too difficult to use, comparing with those scripting oriented interpreted languages? Yes, this maybe the reason. But there are 5 million Java developers out there already, and millions of developers make a living by write server side Java code. A lot of websites are built by these Java developers, and somehow they choose to use PHP or Ruby instead. Why? It is even more puzzling that I have seen quite a few Enterprise Java people decided against Java - when they decided to build their web 2.0 site, they went for PHP even though they have to learn PHP.
Is it the lack of tooling? I think there are more tools for Java than, say, Ruby.
Is it the lack of frameworks? I bet there are more Java frameworks than the population in China.
OK, a lot of websites are fairly simple, mainly composed of markup pages, scripts and some lightweight logic on the server side, where PHP and Ruby are good for. Java maybe an overkill for such websites. But there are a lot of websites that are much more sophisticated than "lightweight" logic on the server side. For example, FaceBook was relatively simple initially, but now with FaceBook API and Platform, its complexity is growing. Why not use Java for such websites?
So what is missing from the Java world? What is the ideal architecture to build a website using Java?
Option 1: JSP/Servlet with a Java Servlet engine (or even an application server): This is the dominant architecture for Enterprise web applications. But it clearly has not been appealing for building websites in comparison to PHP or Ruby;
Option 2: JavaServer Faces: JSF is the new kid on the block. Is it going to make building websites easier? Probably not. It is designed for simplifying building form-based applications.
Option 3: Using a Java based content management system (CMS)? I have come across many CMS systems over the last few years, and haven't been impressed by anyone of them.
So what is the ideal architecture for building a highly scalable, sophisticated (potentially. Your site will become sophisticated if your site is very successful), easy to build and easy to maintain website, while using Java?
About Coach Wei Coach Wei is the Founder and Chairman of Nexaweb (www.nexaweb.com), developers of the leading software platform for building and deploying Web 2.0 and AJAX applications. Previously, he played a key role at EMC Corporation in the development of a new generation of storage network management software. Wei has his master's degree from MIT, holds several patents, is the author of several technology publications including JDJ, Web 2.0 Journal, and AJAXWorld Magazine, and is an industry advocate for the proliferation of open standards.
Reader Feedback: Page 1 of 9
#131
rdgflex commented on 29 Jun 2009
I came to Java rather late in my career, only adding it to my web architecture a couple years back (2007). And so, I feel I can speak somewhat to the reasons as to why developers avoid Java and choose easier languages.
1) Entrance to the Java club seems almost insurmountable. There are SO many frameworks from which to choose. How do you choose a framework when you don't know Java? How do you learn Java if you don't choose a framework to begin the learning process?
2) Authors of Java books assume that every developer comes from a C/C++ background, making constant references to the latter when trying to explain Java. Sorry, but I came from a procedural language background (AS/400) and, therefore, Java books seemed very difficult to trudge through.
3) Authors of Java books on a particular framework often feel it's necessary to make contrasting comparisons to other Java frameworks, assuming the reader has experience with that other framework. Again, if you don't have the assumed background, you miss the point the author is trying to make. In particular, if you came to Java after EJB was widely discarded as a bad idea, but if the book constantly refers to how it was done under EJB, then again you're lost as to the point the author wishes to make.
4) It's not just a matter of learning the Java syntax, but becoming familiar with the ever-growing number of packages.
5) In my view, from a web developer's perspective, Java did not come into its own until the advent of frameworks like Spring, Apache CXF, JAXB, JAX-WS, and the addition of annotations and Java generics to the language. Prior to these additions, Java was simply to burdensome of a language to use.
6) Java has a big drawback for web developers, which is a lack of hosts that will support the Java language. This is especially true if need to tweak the JVM arguments or add a spring-agent jar to the tomcat\common\lib directory.
Granted, Java is much more scalable, allows for access to an abundance of freebies, such as iText for building PDF documents, or POI for creating Microsoft Office documents, etc, etc. The worldwide collaboration and contribution of valuable, time-saving source code can't be overestimated in its value to the developer. After all is said and done, I chose Java because of these two factors that Java offers: scalability and the number of freebies via open source packages developed by some very bright software engineers. However, I still just chose Java as the middleware solution, and opted for Flex on the client side. I don't feel Java can compete with Flex for the UI.
R. Grimes
#130
gcameo commented on 24 May 2009
I am a java developer who decided one day to give PHP a try. That same day I saw why no real enterprise system will ever be written in PHP. It is a just HTML with some way of adding dynamic content. You will never be able to do anything serious with that. java is a programming language. PHP is a scripting language. That is a serious difference that should never be disregarded
#129
brendanbaldwin commented on 22 May 2009
The frustrating thing about articles like this is that there was absolutely no exposition on the merits of any of the three radically different languages mentioned except to say Java is fast.
Well, so is Haskell. So is C++. So is ASM. Why do you use Java? Clearly the only reason is because that's where you are comfortable. The unfortunate side-effect of being comfortable is that you start to get lazy.
You might actually find you really enjoy learning again if you were to take the time and research a subject before you write about it.
As a managed cloud computing provider, I have the fortunate position of watching my customers bring their software products to life. I see many of the reasons you give for people not choosing Java, but one you didn't list was the personality of the architect/developer. I do believe that PHP and Ruby are easier to get started with than Java. Someone who thinks their project is "just a few thousand lines of code" and wants to use an extreme-programming "code and go" style of development where refactoring is a way of life, probably will be more likely to choose an "easy" language and start prototyping in it. Those customers of mine who have their architecture planned out in detail and realize the complexity of what they're trying to build seem more likely to choose Java because of the explicit support for complexity it provides. There are also performance considerations: the customers I have who use Java seem to have less niggling performance problems than those using PHP or Ruby. If performance isn't considered in advance, this could affect the choice of language.
#127
j.d wilson commented on 30 Jun 2008
does anyone else think this blogger is like a little stereotypical at all?
#126
Slurpie Dog commented on 26 Jun 2008
Let me sum up all these posts.
Java, like its creators at Sun, is anal retentive.
rdgflex wrote: I came to Java rather late in my career, only adding it to my web architecture a couple years back (2007). And so, I feel I can speak somewhat to the reasons as to why developers avoid Java and choose easier languages.
1) Entrance to the Java club seems almost insurmountable. There are SO many frameworks from which to choose. How do you choose a framework when you don't know Java? How do you learn Java if you don't choose a framework to begin the learning process?
2) Authors of Java books assume that every developer comes from a C/C++ background, making constant references to the latter when trying to explain Java. Sorry, but I came from a procedural language background (AS/400) and, therefore, Java books seemed very difficult to trudge through.
3) Authors of Java books on a particular framework often feel it's necessary to make contrasting comparisons to other Java framework...
gcameo wrote: I am a java developer who decided one day to give PHP a try. That same day I saw why no real enterprise system will ever be written in PHP. It is a just HTML with some way of adding dynamic content. You will never be able to do anything serious with that. java is a programming language. PHP is a scripting language. That is a serious difference that should never be disregarded
brendanbaldwin wrote: The frustrating thing about articles like this is that there was absolutely no exposition on the merits of any of the three radically different languages mentioned except to say Java is fast.
Well, so is Haskell. So is C++. So is ASM. Why do you use Java? Clearly the only reason is because that's where you are comfortable. The unfortunate side-effect of being comfortable is that you start to get lazy.
You might actually find you really enjoy learning again if you were to take the time and research a subject before you write about it.
ericnovikoff wrote: As a managed cloud computing provider, I have the fortunate position of watching my customers bring their software products to life. I see many of the reasons you give for people not choosing Java, but one you didn't list was the personality of the architect/developer. I do believe that PHP and Ruby are easier to get started with than Java. Someone who thinks their project is "just a few thousand lines of code" and wants to use an extreme-programming "code and go" style of development where refactoring is a way of life, probably will be more likely to choose an "easy" language and start prototyping in it. Those customers of mine who have their architecture planned out in detail and realize the complexity of what they're trying to build seem more likely to choose Java because of the explicit support for complexity it provides. There are also performance considerations: the customers...
Not the One to Answerthis wrote: You know it if you really think about it.
Because Java plays as iut is FLOSS and it is not. So we go LAMP and say F)/= off!
And yeah, I just had Java this semester and it is true: Java SUCKS!
Next semester guess what I am taking? Python!
Long live LAMP (as in PHP right now, and PHP/Python by next year)
Stop writing crappy articles and DO Y OUR JOB! Go program some app in Java and see if anyone uses it.. And I'll gte my Google Apps account and make a Hello World over there and send you a link!
Peace
That's why!
Dylan Tynan wrote: There were 7 pages of responses above, so, I confess to only reading a couple, so, forgive me if I repeat too many points that were hashed through already.....
The question posed is why do 'cool kids' (or anyone really) choose something like PHP or Ruby rather than Java. I saw a lot of answers above that are certainly correct -- it's really a bunch of reasons of course, but I think I have a handle on the main factors, which might be a little different than the "java is too complex" crowd:
1. The primary reason is that PHP & Ruby (and others) do a great job for most web efforts, and Java does as well. The question could have easily been posed by a Ruby guy about PHP, or a PHP guy about Perl, or a Perl guy about Java. The fact is, all of them are mature enough & powerful enough to handle most web tasks (and especially intranet tasks where Internet-level scalability & redundancy are no...
Citrix has released a public AMI ( Amazon Machine Image ) in the EC2 Cloud recently as part of the C3 Lab initiative with Amazon Web Services. XenApp Fundamentals is the new name for Access Essentials which is an ideal solution for SMB's looking for a simple way to administer and...
A robust ecosystem of solutions providers is emerging around cloud computing.Here, SYS-CON's Cloud Computing Journal expands its popular list of most active players in the fast-emerging Cloud Ecosystem, from the 'mere' 100 we identified back in January of this year, to half as ma...
Want to know what gets my blood pressure up? It’s when there’s both a huge shift in thinking around how we should do computing, namely cloud computing, and at the same time, there’s a bunch of information out there that causes confusion. As cloud computing hype spikes to a frenzy...
SYS-CON Events announced today that Yahoo!, a leading global Internet brand and one of the most trafficked Internet destinations worldwide, was named "Platinum Sponsor" of SYS-CON's 4th International Cloud Computing Conference & Expo (www.CloudComputingExpo.com), which will take ...
CloudBerry Lab has started a beta testing program for CloudBerry Online Backup - an application that allows users to backup their data online to their Amazon S3 accounts.