Slashdot Mirror


Open Source CMS Solutions Based on Java?

namityadav asks: "I've been looking for an open source Content Management System (CMS) which is widely used / supported, and has features like web-logging, online communities, RSS feeds, forums, polls, calendars, website searching, and so on. The most obvious choices are Drupal (I've played with it in the past) and Joomla, however both of them are PHP based. Since I am a Java developer, I wanted to find something based on Java. To my surprise, I could find some very weak Java based alternatives to Drupal, like MMBase, OpenCMS and Magnolia. Why is it that there are so many PHP based open source CMS which are hugely successful (Drupal is used by The Onion, Spread Firefox, and more), but there is not even one comparable solution based on Java?"

14 of 153 comments (clear)

  1. Re:Maybe because people turn it off? by daeg · · Score: 4, Insightful

    I don't think he was talking about running the Java application in the browser, but more in terms of servlets.

    And to answer that question, look at the target market of Java. Java is not intended for mom'n'pop websites, or for novice web builders, nor bloggers. Hosting support isn't widespread and is quite expensive. PHP hosts are a dime-a-dozen.

    If you can afford large scale Java hosting, you likely are developing your application from scratch using your own development team.

  2. Poor Java Support with Webhosts by FreeKill · · Score: 4, Insightful

    I think the reason you don't see many Open Source Java CMS tools is due to fairly weak Java support with most Web hosting providers. Take a look at the available webhosts, and very few over support for Servlets/JSP. I would think, on average, the most common user of a CMS system would be someone wanting to setup a small to medium website that won't require too much customization outside of the standard package. Of course, the systems available are powerful (Drupal, Plone, Joomla, Nuke), but for the most part the people using them don't need the majority of the powerful customization tools. These are also the same people who would be using Web hosting packages, and not setting up their own servers. Therefore, you have to write it in a language that is almost universally supported by web hosting providers, like PHP.

    1. Re:Poor Java Support with Webhosts by FreeKill · · Score: 2, Insightful

      Most web hosts offer 2 packages. A windows server with .NET support and a Linux server with Apache and PHP/CGI support. Since Java support generally requires customization of Apache at the least, but most likely an alternative web server like Tomcat, the hosting providers don't even bother.

    2. Re:Poor Java Support with Webhosts by phoenix.bam! · · Score: 4, Insightful

      I don't think that's it at all. I think it's that it takes less than 10 minutes to have a presentable PHP based website. Just talking hello world here.

      Trying to do the same thing with JSP? The overhead for configuration and security layers is just awful. Not to mention the documentation is atrocious. To find a step by step guide for getting tomcat set up as you need is painful at best and impossible at worst. Deploying webapps is a huge pain and the amount of xml you have to right to configure your webapp is daunting.

      That is why php is chosen. Someone could start small site, displaying "Hello World!" from a database for instance, and then the CMS can grow and mature. Java on the other hand takes a huge commitment to just get the program to displaying "Hello World"! from a database.

    3. Re:Poor Java Support with Webhosts by DragonWriter · · Score: 2, Insightful
      I think the reason you don't see many Open Source Java CMS tools is due to fairly weak Java support with most Web hosting providers.
      Is it really true that there aren't many Open Source Java CMS tools? I mean the list here suggest otherwise, though I'm not familiar enough with the tools to know if they are any good...
  3. Re:Why not... by FreeKill · · Score: 3, Insightful

    Of course you're right, but creating a system like Drupal or Joomla yourself is not exactly a small undertaking. These systems have huge user bases and hundreds of tools built to make it easy to setup a site thats perfect for your needs. To write it yourself, you would have to implement a lost of features and security just as a start, and that's not even mentioning the robust search engine optimization, templating engines and page caching.

  4. That's an easy one by Bluesman · · Score: 2, Insightful

    >Why is it that there are so many PHP based open source CMS which are hugely successful
    >(Drupal is used by The Onion, Spread Firefox, and more), but there is
    >not even one comparable solution based on Java?"

    Maybe because Java offers no advantage over writing a system in PHP, which obviously is up to the task based on the successful projects you mention?

    Seriously, why would you want to use Java when you don't have to? It's like asking why there is no web browser written in assembly language. Higher level languages get the job done with minimal aggravation and perform well enough that they're not the bottleneck.

    PHP was tailor-made for this sort of thing, Java...wasn't.

    --
    If moderation could change anything, it would be illegal.
    1. Re:That's an easy one by M.+Baranczak · · Score: 2, Insightful

      Funny you should mention that... My job involves writing code for Java-based content management systems. It's proprietary, so it doesn't meet the stated requirements, but it works just fine. I can think of quite a few things that work better in Java than in PHP, but I'm not interested in starting another boring flamewar. And besides, you're right about one thing: the language should be one of the less important considerations here. If there are PHP systems that do what you need, go ahead and use them. If they need customization, learn PHP, it's not that hard (certainly easier than trying to build your own system from scratch in Java, as some schmuck suggested above).

  5. Re:Maybe because people turn it off? by MaggieL · · Score: 4, Insightful

    I can't believe you have a UID that low and still don't know the difference between applets and server side Java.

    Having a low UID isn't evidence of tech knowlege.

      Maggie Leber CCP, SCJP, SCWCD

    --
    -=Maggie Leber=-
  6. Re:learn PHP by Schraegstrichpunkt · · Score: 3, Insightful

    Yes. If something works, then use it.

    I write PHP code for a living, and that's exactly my problem with PHP: It doesn't work. At least, not very well.

  7. The Java Trap by byolinux · · Score: 2, Insightful

    I'll bet the fact that Java has only just become free software, is the reason there are not many Java based free software CMS's

    1. Re:The Java Trap by GuyWithLag · · Score: 3, Insightful

      No. For better or worse, PHP is easier to administer from an ISPs perspective - it integrates directly in the web server, you just deal with files and possibly their permisssions. With java you have to have a separate server (that is relatively heavyweight) for the various components, you need to map URLs to that server, and the users can't update their apps by themselves, the ISP has to do it.

      Java servlets have been designed for the enterprise, and it shows....

  8. good question by jilles · · Score: 5, Insightful

    I am a Java developer and I have worked for a commercial CMS vendor. Essentially, the low end of the market is dominated by php for obvious reasons: it's easy to get started and basically any hosting will do since it will run php out of the box. Also that stuff is pretty good: I'm perfectly happy with wordpress for my low end needs.

    On the other hand with Java there are no cheap hosting solutions. Basically it requires a a dedicated server solution which will set you back 50-100 $ per month minimum. There are shared hosting facilities but they are still more expensive and don't really give you enough control. People with low end needs won't even consider that as an option, and they shouldn't.

    However, there's also such a thing as the high end of the market. Basically php is just one of the many options there and as far as I can see it far from dominates that market. A lot of interesting things are happening in the Java enterprise scene: there is standardization of content repositories (JSR 170) with several commercial and OSS implementations available; there is the portlet standard, which is basically the backbone of many commercial portal servers; there are lots of options for implementing web UI stuff; there is adoption of the cool rails stuff with both groovy and jruby on rails being worked on; etc. Essentially Java is one gigantic toolkit for building web applications now.

    Bottom line is that if you are expecting to spend a few thousand dollars on hosting (yearly) and have a budget of say 20K+ for building the web site, you are in the high end of the market. You will want some guarantees about your site not collapsing when a few million people decide to drop by; you'll probably have some old content to migrate and some non trivial functionality that you'd like to have. Chances are that you'll end up using Java. Or rather, chances are that you decide not to reinvent the wheel and use the services of some professional CMS companies.

    --

    Jilles
  9. Hang on there a sec, bub. by RedDirt · · Score: 3, Insightful

    (This is gonna hose my karma, but it's something I feel strongly about so damn the torpedoes, full speed ahead! )

    There is a major benefit that Java brings to the table versus PHP and that is security. My inside voice says that the only way to secure a PHP webapp is to delete it. My outside voice says that if you've just got to have a particular PHP package, then fine - that particular PHP package you can have, along with an SSL cert, a site-wide ACL and off-machine logging so that *WHEN* the app gets hacked, you know who to go after. :P

    Some folks don't think that PHP has anything intrinsically wrong with it, that PHP is just trying hard to be an incredibly helpful language, that it's not a bad language - it's just drawn that way. I don't think so. It's got a history of stuff like: "Oh, you provided some URL parameters? Allow me to convert those into variables automagically!" (Yes, yes - this has since been changed but it was around for a long, long time and is still available if you set the proper config variable) "You want to talk to a database? Please, feed me a string and I'll do whatever you want me to do. In fact, if you give me several things to do, I'll do them all!" (Hooray for SQL injection) And on it goes.

    I'm sure a case could be made that schlock code written in any language can be abused - but in the typical Java (or Perl, or Ruby, or Python, or some other non-PHP language of your choice) framework you've got to work a lot harder to create exploitable things. PHP is entirely too damn easy to be bitten by unforeseen circumstances - witness the same vulnerabilities being lovingly replicated over and over and over in lots of different projects.

    In closing, yes it takes more up-front effort to bang out a simple CRUD app in Java versus what the average tutorial or manual would tell you to do in PHP. But the Java version isn't vulnerable while the PHP version is and will require a net greater expenditure of effort to understand and fix the problem. And that's not talking about the energy burned up by the poor shmucks running the code and having to clean up and rebuild after the app gets owned. (No, I'm not still bitter phpBB, Gallery, Wordpress and PHP-Nuke. Not at all. I don't even miss my data anymore. Nor do I regret having to deal with my account being used to attack other machines. Not one bit.)

    --
    James