<< Unofficial JavaRanch London meetup | Home | Unconferencing behind the corporate firewall >>
Twitter RSS feed for Simon Brown [Twitter] simonbrown: wondering whether Adobe's commercial approach to Flex Builder will limit adoption of Flex ... which will be a shame, because I quite like it

Coding the Architecture RSS feed for Simon Brown [Coding the Architecture] As mentioned before, we were speakers at, and community sponsors of the Software Architect 2008 conference (3rd-5th June 2008, London). This is the first dedicated software architecture conference that I've been to and the majority of the ...

Debunking LAMP simplicity

It doesn't matter which programming language you choose

Ken Wong has an interesting post called Barrier Of Entry where he talks about how Java based blogging applications don't have the same appeal as the PHP equivalents (emphasis mine).

I try to find a good personal blogger lately. And I learn a lesson why Java will never be as popular as other language like PHP.

...

My point is this. It takes a fair amount of server-side Java knowledge to make these bloggers work. And this is not the first time I’ve experienced this. End-users are expected to know something on Java, especially Tomcat setup (knowledge on web container), JDBC connection setup (knowledge on database setup), etc. This takes time to research, and an average Joe doesn’t have patience to learn it.

...

On the other hand, setting up Wordpress is a snap.

The point I take away from this is that Java applications are perceived to be hard to install. So, it was with interest that I took a look at the WordPress installation guide and their Famous 5-Minute Install. On the face of it, the install does look fairly simple, but it does of course assume that you have Apache, PHP and MySQL installed and ready to run. And I love the bit about changing the "code" to configure your database. Even Ken admits that WordPress took 20 minutes to install and I imagine that he also had to configure a web container (Apache/PHP) and setup a database. I don't see how this is different to where he talks about these things in a Java context (above). This isn't an artefact of using Java and you could apply ^Java^PHP to the 2nd paragraph - it's applicable to any programming language.

For completeness, what does a Pebble install on a box consisting of nothing more than an operating system entail?

  1. Download Java 5 and install it.
  2. Download Apache Tomcat 5.5 and unzip it.
  3. Download Pebble 2.0, take the pebble.war file and copy it to the webapps directory underneath the Tomcat directory created in step 2.
  4. Run bin/startTomcat.sh or bin\startTomcat.bat
  5. Optionally, install the Apache webserver and mod_jk to run in front of the Tomcat server.

Excluding download times, you can still be up and running with Pebble from almost nothing in a couple of minutes. I know this because I've done it. You also have a choice and can choose other servers like Jetty, Glassfish, etc over Tomcat.

My perception is the opposite of Ken's in that I perceive LAMP applications to be harder to install than Java equivalents. Just take a look at the WordPress install guide - I'm fairly sure that even the 5-minute version would scare off the average Joe that Ken talks about in his blog.

So, four things have come out of this.

  1. I need to write an install guide that takes people through a complete Pebble installation on nothing more than a box with an operating system.
  2. Java is still perceived to be "difficult" when compared to LAMP style solutions.
  3. Database centric applications are still harder to install than those that don't need a database. Okay, so this is obvious, but why should it be this way? Adding Derby to the Mustang SDK was certainly an unexpected move, but just think of the potential. What if you could write a database centric application where the default out-of-the-box configuration used Derby? No database setup and zero configuration. Very appealing.
  4. As a software industry, we need to let ourselves and our software be influenced by companies like Apple and concepts in software like Ruby on Rails - we need to make more software that "just works". I believe that we can do this regardless of the programming we choose underneath the covers.


Re: Debunking LAMP simplicity

I can see where you are coming from with this, but I think you are missing the point a bit. I haven't needed to install any of the LAMP stack in years. Just about every public web hosting outfit comes with LAMP preinstalled. Just about every end-user Linux distribution comes with LAMP preinstalled. Plenty of low-cost web hosts even provide a 'one click' install for popular LAMP apps (WordPress, Mambo, Moodle etc.)

Web hosts which pre-install Java and a servlet container are both rare and relatively expensive. Sun's licensing policy acts to prevent free Linux distributions from bundling Sun's Java, and Joe WebHost is not going to risk screwing up his customers by installing it manually.

So, in practice, installing Pebble, or Friki, or whatever imples that you manually install and configure Java and the servlet container, and even if your server already has MySQL, you need to set up the right JDBC driver and stuff.

The bottom line is that Perl, PHP and Python are free, and Java is not. So perl, PHP and Python are on every web server, and Java is not.

Re: Debunking LAMP simplicity

I think Java not being open source is the cause of the lack of Java hosting services.  More precisely, Java not being open source is the cause of the lack of out of the box Java hosting capable operating systems, which is the cause of the lack of Java hosting services.

The closest thing to an out of the box Java hosting capable operating system I have encountered is Fedora Core Linux plus the JPackage repository.  This allowed me to setup a complete ready to run Tomcat or JBoss runtime environment with a few commands like yum install tomcat5, yum install mod_jk-ap20.  But there is only one catch: they do not provide the Sun JDK.  They do include GNU Classpath based JRE that is mostly JDK 1.4 compatible.  But the problem is that most Java projects (Pebble included) out there do not target that environment.

The open sourcing of the Sun JDK will remedy the situation tremendously.  Maybe one day getting Pebble up and running on a Linux box would only require a single command yum install pebble.

Once Java can compete with PHP on an equal footing, I have no doubt that Java will win.

I'm not saying open source is the only way to go.  There are plenty of Microsoft hosting out there and they are not open source.  And almost all other operating systems (HP-UX, AIX, Tru64, Mac OS X, etc) comes with a JRE now.  Mac OS X even comes with a copy of JBoss.

On the comparison with WordPress, I agree with Simon that Pebble offers a better installation experience and a better user experience.  I'd say Pebble already enbodies some of the user centric designs of Apple software and plenty of simplicity over complexity principles of Ruby on Rails.  To be sure, there are plenty of complicated Java software out there, but Pebble is not one of them.

Re: Debunking LAMP simplicity

"I need to write an install guide that takes people through a complete Pebble installation on nothing more than a box with an operating system."

+10

Re: Debunking LAMP simplicity

Simon,
pebble is a good blogger. But how come it doesn't provide user registration and admin functions? Or did I missed anything?

Add a comment Send a TrackBack