|By Coach Wei||
|April 1, 2008 05:30 PM EDT||
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.
|keith 11/11/07 07:27:48 PM EST|
Although some of the comments here do favour alternative to Java, I suggest that you will not find the real answers by asking a group of people who read Technical Java Articles regularly. You need to ask the people who write successful applications in these technologies. Has anyone got any good articles from say the authors of facebook where they discuss reasons for their choice of technology ?
|Sam D 11/11/07 02:42:13 AM EST|
I would like to hear some feedback from the PHP and Ruby enthusiasts on what they think of Groovy.
|the trend 11/11/07 02:40:25 AM EST|
Someone said Delphi for web?? please...
|jamesl 11/10/07 05:19:56 PM EST|
|thecancerus 11/10/07 05:02:26 PM EST|
that is the problem of all java developers.. they can see outside the walls of java... java is very power full, but for building web application it's like using sword to sew the clothes instead of using needles.
you see for building the websites php/ruby is better option as they are designed for just that unlike java which is designed for being an application programming language.
|Esteban Pacheco 11/10/07 03:30:28 PM EST|
I think you guys are missing Delphi. :)
|Paul Sundling 11/10/07 01:07:36 AM EST|
One of the big problems with this article is that it only lists 3 Java options, all of which are lacking. The answer that is clear to me is Velocity and Spring MVC. For the most part you just to learn SimpleFormController and Velocity templates, which is even more basic than PHP.
If there is a team working on the project, this will well with clear separation. For the most part, the front end developer doesn't need to know much with all the business logic on the back end side.
The hardest part is to get the initial configuration going and you can do that by using AppFuse.
|Alexei 11/09/07 08:52:15 PM EST|
Wow.. where to begin.
I think one of the key problems with Java is the sheer number of frameworks out there actually dilutes the availability of useful information for whatever path you do choose for your application. Rails is a very opinionated framework and there are clearly defined ways of doing things - this is attractive to some people. Top that off with Ruby which is a real joy to work with. I mean, seriously.. its a great language, and if you like terse, non-verbose code.. then Ruby is very appealing. This is something Java doesn't do as well.
Another reason Rails is appealing for web developers is you get so much out-of-the-box. A lot of Ajax stuff is baked right in so you dont have to go outside the framework to do things like autocompletes and basic callbacks.. this saves developers time and lets them prototype rapidly.
PHP is appealing I think for sortof similar reasons.. although its very un-opinionated.. It's a lightweight language and very quick to get stuff up and running. Although lately I've been less impressed by PHP in general.. I'm getting tired of inconsistencies in the API, wierd documentation, and buggy distributions.
Another comment I have is about what you said about these other languages being somehow fundamentally limiting when you try to do 'tough stuff'. I'd say that's true and not true at the same time. There may not be easy ways, for example, to interface directly with custom hardware in Rails.. but as soon as you start to need to do that kind of stuff, you can easily write those components in C++ (which you probably should anyway) and use the C libraries for rails to tie into your web application. They have great facilities for binding to external applications when you dont want to attempt something in script.
Anyway I'd be interested to hear your comments on this.
|Claude Coulombe 11/09/07 06:04:53 PM EST|
1) Many hosting companies doesn't provide cheap support for TOMCAT and J2EE server.
2) Many projects begin small and cheap. So it's easier to start with low cost hostings and tools. After, it's too late you are caught with your previous technological decisions.
SOLUTION : SUN should offer cheap Java based solutions to hosting companies.
|jsloan 11/09/07 02:56:28 PM EST|
Your question "So what is the ideal architecture..." has already been answered by the [http://en.wikipedia.org/wiki/Shared_nothing_architecture Shared nothing architecture] crowd.
Perhaps you should rephrase your question to "Can you build the ideal web architecture with Java?"
|Don Babcock 11/09/07 01:26:41 PM EST|
"So what is missing from the Java world? What is the ideal architecture to build a website using Java?
Easy. ColdFusion. Since CF is JAVA under the covers it offers almost seamless transition between CF tag coding for the "easy" stuff yet if you need the power of Java it is right there at your fingertips. For example, we use JRules, a commercial Java rules engine, for business logic. Adding to the CF server was a simple as adding a folder containing the JAR files to the server classpath. Then you just use it right from the CF environment. Most of our staff are NOT java programmers but they can easily use CF because it hails from the HTML world they started in. Those of us from the Java side can just drop in our JARS and roll as well as make them available to the non-Java developers via CF components. It is a beautiful marriage from a number of perspectives.
|Jim 11/09/07 10:26:11 AM EST|
1) The purpose of the project should be a prominent factor in the choice of tools for execution. If your project ranges from a non-transactional content display system all the way to a mid-volume (or higher) commerce site, choices about programming language can be subordinated to questions of cost, design, and the expertise of available resources. The fact is that PHP, Perl, python, java, etc. etc. can all get these jobs done to the satisfaction of clients who need projects of this size and scope.
2) If your project needs to be a high-availability, fault tolerant, high-volume etc. etc., then the technical factors including language need to be more carfully evaluated for their supportability, stability, longevity, standards adherence, fault tolerance, blah, blah, blah. If your project is this big, then these choices should be made by engineers, not designers, marketers, or a couple of beleaguered staff.
If your project is of the first type, then it's true that as many have said, its just easier from start to finish to implement in php or ruby or perl because 1) they're easier to learn, 2) they have more hosting support, 3) there's more/more-accessible FOSS for small to medium sized web apps in those languages 4) using j2ee for a cms or shopping cart is like hitting a nail with a pile-driver, 5) Anyone who knows the big standard languages (C, C++, Java) can do php, but less so the other way around, 6) PROTOTYPING (which too few projects/orgs do anyway) does not need to be DOD/IEEE-certified-fault-tolerant-blah-blah and can be done faster/cheaper with LAMP
Why am i giving you all this free consulting?
|lifewithryan 11/09/07 10:21:05 AM EST|
Java is way to complicated anymore. Too many pieces being plugged in here and there, too much configuration, and then a bloated application server sitting in the middle of all that. On top of that, most of the tools used to write Java are getting more and more complicated to use. Don't even try running Eclipse, JBoss, and MySQL on your laptop unless you got 2GB of ram and nothing else running.
|Sam D 11/09/07 10:12:32 AM EST|
Based on many of these comments and references to J2EE which has been replaced by JEE current 5 and 6 which will improve upon it vastly with features such as Web Beans. It appears that amazing Java related technologies such as JBoss Seam, Groovy ( which is a dynamically typed form of Java ) and I'm even going to throw in JEE5 haven't obtained the exposure they deserve.
JBoss Seam has a tool called seam-gen which will do the same sort of deal that Rails does for Ruby you can design your db model point seam-gen at it and bang. You have all the scaffolding and pages required to do CRUD.
No I do not represent or work on those technologies mentioned but I have used them and have worked quite a bit with several dynamically typed languages in the past. Although I haven't used Ruby I have worked in large Perl and even TCL based projects. The current project I am working on uses PHP and yes these languages can let you bang some stuff out quickly but in my experience that as more and more developers come on board and the project really needs to scale things can get out of hand quickly.
As for the hosting, this is really unfortunate. I haven't had to deal with the hosting specifics myself in the past so I can't really comment. I am seeing a lot of people asking about Sun's GlassFish or the productized version Sun Java Application server now so I hope this does become better.
|john redden 11/09/07 09:59:14 AM EST|
This is a case of "be careful what you wish for, you might get it." The Holy Grail in the 1990's for OO lauguages, was reusable objects." In our middle tier and data access tier Java software we use/reuse thousands of objects. This presents a huge learning curve for new comers to Java. It is very easy to get started with PHP and Ruby. Most the of the visualization developers at our company user PHP. And I notice that the number of idioms on the web pages decreases when using PHP. Another change is that PHP5 has matured considerably.
So what did our company do? We went Caucho/Resin which compiles PHP5 into Java byte code and presents the possibility of exposing all Java view objects to the visualization developers.
Bottom Line: For newbie developer, Java is difficult to learn
|Chris 11/09/07 09:20:06 AM EST|
Java is too bloated for building small-scale and medium sized websites. There is just as much, if not more, support for PHP also. And if you're using PHP then it's simple to also use MySQL instead of Ruby, which is crap in the first place.
|Marc 11/09/07 09:17:59 AM EST|
Just like many other comments already stated: lack of good hosting! There are some, but they are rare and more expensive than php. I think this is due to the lack of a good "shared" application/servlet servers: every application typically needs its own JVM and almost its own server. On the other hand it's trivial to host many php sites on the same apache server.
Hopefully with virtualization improving constantly, we will see more cheap hosting packages that give you an independent, pre-configured, and managed virtual server.
|robert 11/09/07 08:52:35 AM EST|
I'm a Java developer, but I prefer PHP. My primary reason is that Java documentation on the web is (a) disorganized, (b) written by people with PhD's who never learned to write coherently, and (c) filled with out of date, nearly identical, yet subtly different API's. Microsoft has the game won on documentation to date, but PHP developers as a whole document things very clearly, concisely, and in language that is accessible by anyone.
|Jon Evans 11/09/07 06:45:52 AM EST|
> I bet there are more Java frameworks than the population in China.
You say that like you think it's a good thing!
|Alessandro Ronchi 11/09/07 04:04:45 AM EST|
I think one reason (not the only one) is that many developers come from web design world. PHP is much more simple to learn/use than Java: you can copy and paste a code snippet in a php file, put (not "deploy") it on your 10$/year hosting space and see it working. Learning Java is a matter of object oriented programming, something far from designing a web page and filling it with some php code snippets.
|OHo 11/09/07 04:00:36 AM EST|
same for me and I guess thousands others: availability of cheap hosting for everyone. I learned & used Java first, then had to switch because of the hosting offerings my customers typically use.
|Bozhidar Bozhanov 11/09/07 01:57:22 AM EST|
The hosting is the reason (mainly) - I'm a Java developer, and I still make php sites because of no decent Java hosting around. And if any, the prices are not attractive.
|Richard Tandoh 11/08/07 09:10:19 PM EST|
I think the fact that PHP hosting packages are ten-a-penny and cost little or nothing has a lot to do with it. Java hositng, I find, is still hard to come by and relatively costly.
|Sam D 11/08/07 08:39:01 PM EST|
Have you guys looked at JBoss Seam? If not I think it might be worth your while to do a bit of investigation on it.
Many of the great ideas will be incorporated into JEE6 as Web Beans and simplifies things significantly. It will basically collapse the communication between the web-tier and ejb-tier making the interaction a lot less cumbersome. That is a very simplified comment though, there is much much more that developers will see out of this in all phases of development. Here is the link to the JSR:
Oh and one more thing, do not rule out Groovy. Being able to mix and match Java with Groovy is pretty amazing so you have the best of both worlds without having to sacrifice. JBoss Seam already supports Groovy.
|ac 11/08/07 08:09:43 PM EST|
For me it's the hosting - if you're making a small site for fun you don't want to pay big bucks for java hosting - PHP is easier to find and a lot cheaper
|Dave J 11/08/07 07:00:34 PM EST|
I find Java too cumbersome for the front-end, but great for encapsulating business logic and objects. So, in a MVC design, I like ColdFusion for the V, Java for M, and one or the other for the C.
|John C. 11/08/07 07:14:49 AM EST|
Definitely not Java, complexity/framework overload and an obvious design-by-committee feel to it. Rails would be interesting; conventions build right in to alleviate the pain. But probable I'd choose PHP, because it just works (many major sites have proven this fact) and you do not need a PhD. to use it.
|Michael 11/08/07 05:26:29 AM EST|
I am a long-term Java guy and do much of my web stuff in Rails now. Why? The efficiency of Rails. I think I am about 5-10 times faster with Rails. You dont believe me?
Try building a little db-driven site with Rails and, say, JSF/Hibernate/Spring. You'll see.
|Johan Chouquet 11/08/07 04:05:51 AM EST|
I'm also a Java/J2EE developer.
Unfortunately, I don't have a way to manage directly what is installed on the machine that hosts my website. The inconvenient of Java is that Java needs a JVM installed of the machine to run. Of course, this is a good thing for portability, but when we don't have access to the machine, sometimes it's just impossible to install Java. So, I think that's why Java developers are going to PHP. All hosts supports PHP, but not always Java.
|VelocityWebDev 11/08/07 12:31:31 AM EST|
I don't know that it matters - a majority of the sites that are built using PHP or Ruby are quickly redesigned and redeployed. They are disposable sites. Although many use them for years, the reality is instant gratification. Too many Java developers (scripted interpreted language with c++ as it's kernel?) over think their solutions. I've seen it and done it! So I can point fingers at myself and others. For that matter, this question can be taken a step further, why not just develop in C++ or C or assembler? Because it doesn't appeal. So, I guess the real answer is, regardless of technical background and desire to make Java THE web development language - it too is not universally appealing to the masses.
|Peter Blazejewicz 11/07/07 02:30:03 PM EST|
here is where I see why Grails:
is lacking solid backend ;(.
|PHP News Desk 11/07/07 01:14:53 PM EST|
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.
SYS-CON Events announced today that Peak 10, Inc., a national IT infrastructure and cloud services provider, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. Peak 10 provides reliable, tailored data center and network services, cloud and managed services. Its solutions are designed to scale and adapt to customers’ changing business needs, enabling them to lower costs, improve performance and focus inter...
May. 1, 2016 12:00 AM EDT Reads: 1,053
You think you know what’s in your data. But do you? Most organizations are now aware of the business intelligence represented by their data. Data science stands to take this to a level you never thought of – literally. The techniques of data science, when used with the capabilities of Big Data technologies, can make connections you had not yet imagined, helping you discover new insights and ask new questions of your data. In his session at @ThingsExpo, Sarbjit Sarkaria, data science team lead ...
Apr. 30, 2016 10:45 PM EDT Reads: 675
So, you bought into the current machine learning craze and went on to collect millions/billions of records from this promising new data source. Now, what do you do with them? Too often, the abundance of data quickly turns into an abundance of problems. How do you extract that "magic essence" from your data without falling into the common pitfalls? In her session at @ThingsExpo, Natalia Ponomareva, Software Engineer at Google, will provide tips on how to be successful in large scale machine lear...
Apr. 30, 2016 10:00 PM EDT Reads: 1,091
In his session at @ThingsExpo, Chris Klein, CEO and Co-founder of Rachio, will discuss next generation communities that are using IoT to create more sustainable, intelligent communities. One example is Sterling Ranch, a 10,000 home development that – with the help of Siemens – will integrate IoT technology into the community to provide residents with energy and water savings as well as intelligent security. Everything from stop lights to sprinkler systems to building infrastructures will run ef...
Apr. 30, 2016 05:30 PM EDT Reads: 715
Whether your IoT service is connecting cars, homes, appliances, wearable, cameras or other devices, one question hangs in the balance – how do you actually make money from this service? The ability to turn your IoT service into profit requires the ability to create a monetization strategy that is flexible, scalable and working for you in real-time. It must be a transparent, smoothly implemented strategy that all stakeholders – from customers to the board – will be able to understand and comprehe...
Apr. 30, 2016 04:45 PM EDT Reads: 1,055
Machine Learning helps make complex systems more efficient. By applying advanced Machine Learning techniques such as Cognitive Fingerprinting, wind project operators can utilize these tools to learn from collected data, detect regular patterns, and optimize their own operations. In his session at 18th Cloud Expo, Stuart Gillen, Director of Business Development at SparkCognition, will discuss how research has demonstrated the value of Machine Learning in delivering next generation analytics to im...
Apr. 30, 2016 04:15 PM EDT Reads: 1,667
There is an ever-growing explosion of new devices that are connected to the Internet using “cloud” solutions. This rapid growth is creating a massive new demand for efficient access to data. And it’s not just about connecting to that data anymore. This new demand is bringing new issues and challenges and it is important for companies to scale for the coming growth. And with that scaling comes the need for greater security, gathering and data analysis, storage, connectivity and, of course, the...
Apr. 30, 2016 03:15 PM EDT Reads: 763
This is not a small hotel event. It is also not a big vendor party where politicians and entertainers are more important than real content. This is Cloud Expo, the world's longest-running conference and exhibition focused on Cloud Computing and all that it entails. If you want serious presentations and valuable insight about Cloud Computing for three straight days, then register now for Cloud Expo.
Apr. 30, 2016 02:30 PM EDT Reads: 1,715
IoT device adoption is growing at staggering rates, and with it comes opportunity for developers to meet consumer demand for an ever more connected world. Wireless communication is the key part of the encompassing components of any IoT device. Wireless connectivity enhances the device utility at the expense of ease of use and deployment challenges. Since connectivity is fundamental for IoT device development, engineers must understand how to overcome the hurdles inherent in incorporating multipl...
Apr. 30, 2016 02:15 PM EDT Reads: 1,454
The increasing popularity of the Internet of Things necessitates that our physical and cognitive relationship with wearable technology will change rapidly in the near future. This advent means logging has become a thing of the past. Before, it was on us to track our own data, but now that data is automatically available. What does this mean for mHealth and the "connected" body? In her session at @ThingsExpo, Lisa Calkins, CEO and co-founder of Amadeus Consulting, will discuss the impact of wea...
Apr. 30, 2016 01:15 PM EDT Reads: 666
SYS-CON Events announced today that Stratoscale, the software company developing the next generation data center operating system, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. Stratoscale is revolutionizing the data center with a zero-to-cloud-in-minutes solution. With Stratoscale’s hardware-agnostic, Software Defined Data Center (SDDC) solution to store everything, run anything and scale everywhere...
Apr. 30, 2016 01:15 PM EDT Reads: 1,532
Angular 2 is a complete re-write of the popular framework AngularJS. Programming in Angular 2 is greatly simplified – now it's a component-based well-performing framework. This immersive one-day workshop at 18th Cloud Expo, led by Yakov Fain, a Java Champion and a co-founder of the IT consultancy Farata Systems and the product company SuranceBay, will provide you with everything you wanted to know about Angular 2.
Apr. 30, 2016 12:45 PM EDT Reads: 1,703
SYS-CON Events announced today that Men & Mice, the leading global provider of DNS, DHCP and IP address management overlay solutions, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. The Men & Mice Suite overlay solution is already known for its powerful application in heterogeneous operating environments, enabling enterprises to scale without fuss. Building on a solid range of diverse platform support,...
Apr. 30, 2016 12:00 PM EDT Reads: 2,295
You deployed your app with the Bluemix PaaS and it's gaining some serious traction, so it's time to make some tweaks. Did you design your application in a way that it can scale in the cloud? Were you even thinking about the cloud when you built the app? If not, chances are your app is going to break. Check out this webcast to learn various techniques for designing applications that will scale successfully in Bluemix, for the confidence you need to take your apps to the next level and beyond.
Apr. 30, 2016 11:30 AM EDT Reads: 1,468
We’ve worked with dozens of early adopters across numerous industries and will debunk common misperceptions, which starts with understanding that many of the connected products we’ll use over the next 5 years are already products, they’re just not yet connected. With an IoT product, time-in-market provides much more essential feedback than ever before. Innovation comes from what you do with the data that the connected product provides in order to enhance the customer experience and optimize busi...
Apr. 30, 2016 11:15 AM EDT Reads: 889
Increasing IoT connectivity is forcing enterprises to find elegant solutions to organize and visualize all incoming data from these connected devices with re-configurable dashboard widgets to effectively allow rapid decision-making for everything from immediate actions in tactical situations to strategic analysis and reporting. In his session at 18th Cloud Expo, Shikhir Singh, Senior Developer Relations Manager at Sencha, will discuss how to create HTML5 dashboards that interact with IoT devic...
Apr. 30, 2016 11:00 AM EDT Reads: 925
Artificial Intelligence has the potential to massively disrupt IoT. In his session at 18th Cloud Expo, AJ Abdallat, CEO of Beyond AI, will discuss what the five main drivers are in Artificial Intelligence that could shape the future of the Internet of Things. AJ Abdallat is CEO of Beyond AI. He has over 20 years of management experience in the fields of artificial intelligence, sensors, instruments, devices and software for telecommunications, life sciences, environmental monitoring, process...
Apr. 30, 2016 11:00 AM EDT Reads: 895
SYS-CON Events announced today that Ericsson has been named “Gold Sponsor” of SYS-CON's @ThingsExpo, which will take place on June 7-9, 2016, at the Javits Center in New York, New York. Ericsson is a world leader in the rapidly changing environment of communications technology – providing equipment, software and services to enable transformation through mobility. Some 40 percent of global mobile traffic runs through networks we have supplied. More than 1 billion subscribers around the world re...
Apr. 30, 2016 11:00 AM EDT Reads: 877
Digital payments using wearable devices such as smart watches, fitness trackers, and payment wristbands are an increasing area of focus for industry participants, and consumer acceptance from early trials and deployments has encouraged some of the biggest names in technology and banking to continue their push to drive growth in this nascent market. Wearable payment systems may utilize near field communication (NFC), radio frequency identification (RFID), or quick response (QR) codes and barcodes...
Apr. 30, 2016 10:00 AM EDT Reads: 717
SYS-CON Events announced today that Fusion, a leading provider of cloud services, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. Fusion, a leading provider of integrated cloud solutions to small, medium and large businesses, is the industry's single source for the cloud. Fusion's advanced, proprietary cloud service platform enables the integration of leading edge solutions in the cloud, including cloud...
Apr. 30, 2016 09:45 AM EDT Reads: 2,560