Neo from picking the red pill

WordPress : A Java Fanboys Red Pill

I have been a Java Fanboy since its early days. It seemed so elegant and clean compared to good old Perl. I considered PHP a toy language for script kiddies, avoided it as much as possible and addressed problems with my golden hammer JVM instead. My conclusions here may not be news for everybody.

A few months ago, Sandra came up with the idea to try selling individually configured skirts. We decided to dive into the ecommerce experience. The technical part was mine.

Our Ecommerce Requirements

The big blocks of requirements were

  • Shop Functionality
  • Responsiveness
  • SEO
  • Social
  • Visual Appeal
  • Content Management

Which components from the JVM ecosystem would you pick and how would you glue them together ?

Nothing even slightly – really.

Just looking at Content Management, there is a whole lot of Open Source components at your disposal

  • JSR Portals based on ideas such as ‘content aggregation’
  • Content driven page composition frameworks such as Spring Surf
  • Full blown Web Content Management Systems such as Magnolia
  • Alfresco Platform
  • Plugin CMSs like Weceem

All of them introduced more questions than solutions for me. Some of them even failed to deliver answers where I really expected them (e.g. SEO and Content Marketing). Given the size of the JVM ecosystem, I think this is quite amazing and proving there is something seriously going wrong.

Besides, I am no HTML5 expert so I wanted decent HTML page templates. I realized that the product configurator would definitely require a fair amount of coding. I wanted the bulk of the shop ready out of the box – ditto SEO and the social stuff.

If I was forced to implement on the JVM, I most likely would have chosen Grails because of its easy mix and match plugin nature. And because you get to business quickly.

WordPress and PHP Awesomeness

I had some WordPress experience from setting up this blog – mostly with basic administration and configuration. Its plugin model is somewhat similar to Grails – add plugins according to your taste. The vast majority of requirements got reasonably addressed by just installing plugins. The programming model gives developers a lot of freedom – and with great power comes great responsibility. A consequence of this is that chances of conflicts get more likely the more plugins you install.

I knew that I would have to learn the PHP language and tooling in order to implement the configurable product functionality working in WooFramework context. As it turned out, it was needed even more to fix conflict situations – and some bugs in third party code. But even though I was a newbie and PHP not a beautiful hipster language, development was a pleasure ! No compilation, no redeployments, no restarts and no staleness- or caching troubles. Edit in place and test right away. It felt like taking the red pill. I would trade type safety for these features in web development at any time. PHP focused on doing one thing – web applications. And it succeeded – for good reason. Simplicity. According to Forbes, every sixth Website is powered by WordPress. I am fairly sure the other “smaller” PHP based systems such as Drupal or Joomla still rank fairly well compared to every JVM based Web Content Management System.

Lessons may have been learned and we have various “high productivity” web frameworks such as Grails or Play on the JVM today, these are still pretty much focused on applications rather than content. Unfortunately, a large share of websites is focused around content.

Looking at the Web Content Management aspect, JVM based options tend to feel oversized, complex and their development process horrible. With some of them, it seems presentation or marketing is not addressed at all.

The battle for public content driven websites is lost for the JVM. Nevertheless, I still like it a lot. It simply is the best VM out there and there are still a lot of use cases where it out outshines php and other competition.

References

Andreas Steffan
Pragmatic ? Scientist and DevOps Mind @ Contentreich. Believes in Open Source, the Open Web and Linux. Freelancing in DevOps-, Cloud-, Kubernetes, JVM- and Contentland and speaks Clojure, Kotlin, Groovy, Go, Python, JavaScript, Java, Alfresco and WordPress. Built infrastructure before it was cool. ❤️ Emacs.

4 thoughts on “WordPress : A Java Fanboys Red Pill”

  1. In a well defined problem space, it’s hard not to choose the appropriate solution. I would argue php is almost a dsl for the web at this point. I remember thinking that smarty templates is like JSP on steroids.

    However, wordpress performance has been often criticized, Facebook built a compiler for the language because they were literally afraid of tackling a refactoring project for it, and finally the language itself is dying of cruft and performance issues.

    I would argue the Java solutions target big money clients, and when clients have a lot of money, standardization and security are important – banks, large ecommerce etc. On the other end of things, if you just want a shopping basket, why not go php?

    I think the real reason why a simple solution doesn’t exist in the java space is people dont bother with solving the smaller problem. That said, if I had to write a simple cms these days, I would wire up Google Drives Java API to some JS front end and be done with it.

  2. Hallo Pieter,

    I would argue that performance is not an issue in the vast majority of WordPress installations. And even if that is the case, there is a bunch of plugins to choose from.

    I think nobody has money to be thrown out of the window.

    And is Java really scoring in terms of standardization and security ?
    What is a standard ?
    A stack of paper written by a committee ?
    Or something everybody really uses ?

    I think a major reason for people (managers with budget) still choosing Java to build content driven public websites is fear. Actual success may be less important. Nobody gets fired for choosing Oracle, IBM or Microsoft. Application centric websites are a different story.

    I think people from the JVM ecosystem have realized the reasons for other systems’ success. Grails and Play for example provide painless mix and match from plugins with a short development cycle. Unfortunately, I guess they bother suffer from developer ramp up effort and cannibalism. Besides, their ecosystem is still noise compared to WordPress’.

    Of course there is no way to write a decent website without client side Javascript – no matter what you are using on the server.

    Today, Google Drive provides basic CMS like functionality. Building on top of that may leave you with some heavy lifting unassigned. Your mileage may vary depending on how tough your editorial team is. ;)

    thanks for your comment
    Andreas

  3. With PHP, it helps to get the job done. For enterprise solution, Java is the best bet. But for web world, PHP is the king.

    1. PHP hosting charges is lesser
    2. Availability of platforms like wordpress makes our job easier.
    3. As a scripting language, easier to develop. No compile, build, deploy cycle.
    4. Well tested and proven.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert