Search code examples
wordpressjava-ee-6

Complex business logic in WordPress


The question: from a programming point of view, does WordPress allow a similar kind of flexibility that I would get by writing my own Java EE system? E.g. if the site owners suddenly decided that users whose birthday was on a Wednesday had to be sent a notification email and their birthday event had to be entered into a calendar that other members of the site could then RSVP to and then give a star rating afterwards to say how much they enjoyed it... could I do that easily with WP?

Hope that's clear, really welcome any feedback.


Solution

  • Wordpress is a bit easier to get started out with, and you can install whatever plugins you want easily. The only problem with it, is that it is a lot like windows: it accounts for many people's use cases.

    For you, with a business/corporate (you mentioned corperate applications before the edit of your question)/extensible platform in mind, I would recommend sticking with what you've got. You've written it yourself (or as a team) so you know everything about it, and what to look for when there is a bug. It's easily extended with your own code, and you don't have to sort through and learn a new language.

    Wordpress is great for blogs, as that is what it is designed for. It is good for general purpose websites with dynamic layouts, but relatively static content (blog posts, write it once, edit a few times, but relatively static). Sure, you could write plugins for it, and many have been written, But it won't have nearly the capabilities you seem to require without major extensions.

    Also, being written in PHP, it has to be interpreted, as opposed to java, which is a semi-compiled/optimized bytecode (a bit complex) but java runs faster than the equivalent PHP code.

    So benefits of your system:

    • Faster
    • More reliable
    • Suited for very dynamic content

    Benefits of wordpress:

    • Easier to extend
    • Suited for static content
    • Easier for novices to use (but your own interface may work just fine)