Lucee in the Sky with Diamonds
December 12, 2018 by Grant Shepert
Why Lucee, a light-weight, dynamic scripting language for the JVM is a key player in the Mura stack. The McCartney to our Lennon, if you will.
The answer we give is often less than we would like, because there is always too much to say.
The reasons are both simple and complex, a part of our history to be sure, but more so because we feel it is absolutely the right tool for the job.
What is Lucee?
Lucee is a tag- and script-based programming language that runs on the Java Virtual Machine (JVM). As an open-source implementation of CFML, it is a fantastic programming language, easy to use and learn, powerful and highly capable, with a host of important features that make it an ideal environment for development.
Lucee has been around for a very long time, and in this time it has grown expansively. Although not a pre-compiled language, Lucee compiles the code directly into Java bytecode, and its tight integration to Java means that it can use and manipulate Java libraries natively.
That's a bit of an existential question, to be sure. The why of Lucee really comes down to the language's powerful set of tools and options, its ability to rapidly prototype concepts into functional objects, and its overall scalability and reliability as a platform.
The biggest why, of course, is that we love it. We love its flexibility, its maturity, and its power.
Few other languages are as versatile or tested, nor have we encountered any other language that is so readily mastered by developers.
Separation of Purpose
Ease of Learning
This has always been Lucee's strength and weakness. The latter is a more historical case. Because Lucee is so easy to learn (this isn't hyperbolic...it is crazy easy to get up and running), there was a tendency for new developers to not step past the rudimentary paste-code-anywhere-and-it-works level of skill. With the advent of better frameworks, dissemination of information and learning platforms like Udemy, it is far more likely now that developers will step into their role with a firm level of understanding (and quickly!).
The reason Lucee is so easy to learn is it starts in an area that developers likely already have a firm understanding.
Mura & Lucee
Lucee has added a great deal of flexibility to the Mura Ecosystem. Because of its inherent flexibility, we have been able to build a robust set of development-friendly tools into Mura itself.
MuraORM, which mates automated Object-Relational Mapping with Mura's core object model, the JSON API which exposes (in a secure, permissions-oriented environment) the entirety of the core to remote development such as Vue or React, and Mura.js, which integrates jQuery-like DOM interactions with a much more feature-rich Mura-oriented library.
Onwards & Upwards
With the advent of containerization and important tools like Docker, the idea of Mura as an infrastructure, rather than an application, becomes more apparent. We like the language a lot (obviously) and it continues to grow within an active community, supported by industry professionals.
Beyond that, Mura will always be ready to adapt to the next greatest thing, because it is designed from the ground up, starting with Lucee and continuing through our own toolset, to do just that. It's an important part of what allows us to find Flow, and as a result, help create meaning in our work as developers. We're sure it can do the same for you.