Lucee 5 is the first major release after forking from the Railo project. Lucee 5 is not about dazzling new features but about improving the core language and providing a complete architectural overhaul of the engine.
This brings Lucee and CFML to a whole new level!
New Language dialect
In addition to the existing "CFML" language dialect, Lucee 5 comes with a completely new dialect simply called "Lucee".
Lucee 5 provides the following core language enhancements:
Abstract/Final Modifiers - Lucee already supports interfaces, but interfaces have not been well adopted by the community, because they are only used to do "sign a contract" when you implement them. Abstract and Final modifiers are a much more intuitive and flexible way to do the same and even more.
Access Modifiers for variables - Lucee already supports access modifiers for functions, but with Lucee 4 this was limited to functions, Lucee 5 now also supports the same for variables.
Static support for components - Lucee 5 supports static variables and functions inside components.
Lambda expressions - Lucee 5 support Lambda Expression alongside closures, a shorthand notation for anonymous functions.
New and modified functions - New and modified functions in Lucee 5.
New and modified tags - New and modified tags in Lucee 5.
CachedWithin - We not only added the attribute
cachedWithinto the tag
cfhttp, we have also added an interface to Lucee to make your own
Extended Java Interface (TODO) - Lucee provides a interface to interact with Lucee from within Java, Lucee 5 has extended this interface with a lot of new functionality, which makes it far easier to write Extensions for Lucee.
Lucee 5 has had a complete overhaul under the hood, we have not only redone a lot of the existing functionality, we have also extended the interfaces to the engine to make way for a lot of possible functionality in the future.
[JSR 223] (TODO) - Lucee 5 fully supports the JSR 223 standard and this is something we are very proud of. JSR 223 will open new doors for many exciting possibilities in the future.
Class updating - Previously an optional feature in Lucee 4, class updating is now an integral part of Lucee 5. Lucee 5 is able to update existing classes and this has a huge impact on memory consumption, especially in environments where a lot of CFML templates are used.
Bytecode Handling - We have improved the generated Java Bytecode produced in general by optimizing it for Java >=7 and we have done specific improvements of the generated bytecode in multiple places.
Lucee 5 has had a complete overhaul of the existing extension framework, to make them more flexible and far easier for anyone to create an extension.