140 BoxLang modern JVM language that runs CFML code (new CFML engine and much more) with Luis Majano and Brad Wood
Release Date: 11/25/2024
ColdFusion Alive
Luis Majano and Brad Wood talk about “BoxLang modern JVM language that runs CFML code (new CFML engine and much more)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “…BX is the acronym we use a lot like our file extensions are analogous to the cold fusion file extensions. So a CFM file, we call that bxm For box Lang markup, CMS, which Lucy six had his support for, which is cold fusion script”. Show notes What is BoxLang? A new language for the JVM that includes CFML Inspired by cool CF, Groovy, Rust, Go, PHP etc Compiles into Java byte code, just like CF A...
info_outline 139 All About Adobe ColdFusion 2023 (Part 2: PDF, CCS, SSO, perf, security) with Mark TakataColdFusion Alive
Mark Takata talks about “All About Adobe ColdFusion 2023 (Part 2: PDF, CCS, SSO, perf, security)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “…So we decided to build this thing called CCS central configuration server. And it runs at the command line, basically, and allows you to control your servers from a central location.”. Show notes Enhanced HTML-to-PDF Conversion New HTML-to-PDF conversion engine Supports new CSS features for pixel perfect PDFs Imbed audio, video and SVG Old tags features for manipulation of PDFs and forms etc still work Increased...
info_outline 138 All About Adobe ColdFusion 2023 (Part 1: containers, GCP, GraphQL, JWT) with Mark TakataColdFusion Alive
Mark Takata talks about “All About Adobe ColdFusion 2023 (Part 1: containers, GCP, GraphQL, JWT)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “…So we support Google's version of Pub Sub. And it's fairly simple. You know, you've got a you've got someone creating a message. You've got a subscriber that you can create to listen to that message, messages of contact message that I gaze at It just have, you know, timestamps and things like that”. Show notes In this episode, we look at all the Adobe ColdFusion 2023 new features with the Adobe CF evangelist, Mark...
info_outline 137 ColdFusion Oracle Cloud Migration with MySQL (from VPS) with Scott StrozColdFusion Alive
Scott Stroz talks about “ColdFusion Oracle Cloud Migration with MySQL (from VPS)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “…And the difference between Oracle clouds version of the manage the managed MySQL database is that in Oracle Cloud, it's Enterprise Edition. So if you are using MySQL heatwave in Oracle Cloud, you're actually using Enterprise Edition”. Show notes What is Oracle Cloud? Oracle cloud services like AWS, GCP, Azure etc Servers, Storage, MySQL, AI etc OCI = Oracle Cloud Infrastructure How does it differ from AWS, GCP, Azure etc? Robust...
info_outline 136 Into The Box 2024 (all the details and speakers) with Jorge ReyesColdFusion Alive
Jorge Reyes talks about “Into The Box 2024 (all the details and speakers)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “...But it's just those aha moments where, Hey, I didn't know you could do that. So you can actually, when you go back home and do your job, then you can actually worry about looking more into it and implementing it. So that's kind of the idea behind all the sessions, actually.”. Show notes What is Into The Box conference? Is it only for Box products topics? No - lots of CF topics, not just Box products Do not have to use ColdBox framework...
info_outline 135 Lucee Migration (8 CFML code moving tips) with Mike ChytráčekColdFusion Alive
Mike Chytráček talks about “Lucee Migration (8 CFML code moving tips)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “...but we had migrated everything over and all new clients went to Lucy all new applications went to Lucy. And within I'd say maybe two years, we had probably 95% of our clients might get it off, some clients still required it”. Show notes What is Lucee? Why did you migrate to Lucee? 2018 switch from ACF to Lucee Adobe Licensing fishing call and new licensing model per application with $10ks extra cost. “SaaS” due to Mura Per core...
info_outline 134 ColdFusion Legacy app - Is a Refactor Better than a Rewrite? with Denny SpringleColdFusion Alive
Denny Springle talks about “ColdFusion Legacy app - Is a Refactor Better than a Rewrite?” in this episode of ColdFusion Alive Podcast with host Michaela Light. “Refactoring is a way of taking in modernizing code that already exists, and bring it up to speed with generally modern best development practices. So you know, some object orientation, data modeling type of thing, as well as you know, either using a framework or building an application framework yourself, that hits all of the major obstacles that are that a framework will do for you generally.” Show notes Why is refactoring vs...
info_outline 133 GitHub Copilot & AI-Assisted Coding (Unlocking ColdFusion's AI Potential) with Monte ChanColdFusion Alive
Monte Chan talks about “GitHub Copilot & AI-Assisted Coding (Unlocking ColdFusion's AI Potential)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “It is an AI pair programming tool. So this helps test your programming that basically, there's another person but in this case is a AI tool, if you will, so but you will be doing most of the typing. But then that will also give you some code suggestions, if you will. And to help you with coding. So sometimes can be a short one liner, or could be one whole block of codes. So you can save a lot of typing.” Show notes...
info_outline 132 ColdFusion Hosting options with Dakota Clum and Ryan BrownColdFusion Alive
Dakota Clum and Ryan Brown talk about “ColdFusion Hosting options (what to consider when choosing a CF host)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “……you shouldn't have to be trapped with one hosting option or one provider. So when we think about the AWS are the answers of the world, when there's a need for those specific resources are specific tooling and libraries, we want to be able to support that. So, to your point, there's no kind of lock in, or anything like that you shouldn't do one or the other, you should keep all the options open to you.”...
info_outline 131 Lucee 6 with Gert Franz, Charlie Arehart, Ben Nadel, Mark Drew, Zac SpitzerColdFusion Alive
Gert Franz, Charlie Arehart, Ben Nadel, Mark Drew, and Zac Spitzer talk about “Lucee 6” in this episode of ColdFusion Alive Podcast with host Michaela Light. “Welcome to the podcast. We’re coming here live from CF camp in Munich, Germany. And we are going to be talking about Lucee 6, the new release of Lucee CFML. And we’ve got some amazing experts here. Mark Drew who's done a lot of Lucee coding at distro kid. Then we’ve got Charlie Erehart, the ColdFusion troubleshooting expert giving an independent view on Lucee. Then we’ve got Ben Nadal all the way from New York City. And...
info_outlineLuis Majano and Brad Wood talk about “BoxLang modern JVM language that runs CFML code (new CFML engine and much more)” in this episode of ColdFusion Alive Podcast with host Michaela Light.
“…BX is the acronym we use a lot like our file extensions are analogous to the cold fusion file extensions. So a CFM file, we call that bxm For box Lang markup, CMS, which Lucy six had his support for, which is cold fusion script”.
Show notes
What is BoxLang?
- A new language for the JVM that includes CFML
- Inspired by cool CF, Groovy, Rust, Go, PHP etc
- Compiles into Java byte code, just like CF
- A new language for 2024 and beyond
- Not just targeting web server - see below for all runtime targets
- 7 MB core
- Tidy and lightweight core
- Super fast start up time in 100-200ms
- ACF core 120 to 300 MB
- Lucee core 20 to 120 - 300 MB
- Node 80 MB
- Add on modules for different target runtimes
- Similar in ideas to ACF and Lucee packages
- Tidy and lightweight core
- Target runtimes
- Web Server
- Miniserver
- Serverless
- Jakarta
- Android
- Web assembly
- Command line use
- Modules are designed from the start vs separated out as in ACF or Lucee
- Using tight Java libraries that are different from ACF or Lucee libraries
- Drastic architecture differences
- No OSGi copies
- See below for what OSGi is
- MVP for this language
- Created to be extensive in the core from the start
- Not a monolith
- Super strict on 3rd party JARs added to the core due to features in the modern JDK
- Oracle improvements in Java language and JVM
- Java 21 or higher only
- Other JVM that are based on Oracle JVM 21 or higher
- Fixes old syntax and function naming inconsistencies from CFML backwards compatible
- Has two parsers
- Antler parser library for BoxLang code
- 100% legacy CFML code via transpiler
- AST = Abstract Syntax Tree
- This is what compiles to Java byte code
- Linting and code quality metric tool and VS-code extension IntelliSense and semantics of the language.
- Open source AST so easy to extend and hook into it.
- In-line debugger is built in with scope introspection
- Can innovate in BoxLang language without breaking legacy CFML
- No OSGi copies
Transpiling
-
- Dynamic and can continue to edit legacy CFML code
- Or one-time translate to BoxLang language (BX)
- Can you translate back from BoxLang to CMFL?
- Not currently and technically it can be done - it is open source
- The syntax is very close to CFML script and tags
- Why <bx vs <cfscript
- Not tag first language - it is script first then adds components / class (aka tag)
What is it really?
-
- JVM
- 100% interoperable with Java
- No bridge like ACF or Lucee
- Extend from Java classes
- Import Java classes
- Framework capabilities built into BoxLang
- Event-driven programming
- Event listeners and extension is built-in
- Cache engine built-in
- vs added on
- Can talk to Redis and Couchbase
- Async and parallel programming
- Built into the core from Java
- vs adding in Quartz Java library to do this
- Easy unit testing of tasks
- Keep the CFML productivities of RAD coding
- BoxLang templating language
- Like Groovy GSP
- Most modern JVM language
- More modern than ACF, Lucee OR all other JVM languages such as Groovy, Clojure, Kotlin, Rust etc
- Super dynamic language with built-in dynamic concepts from the modern Java engine vs a 3rd party library
- Comparison chart to other languages?
- Coming in future
- Why are most modern languages similar in appearance?
- Common programming metaphors over time are used with similar syntax.
- But under the hood, they are different engines
- Tooling
- IDE
- Community
Is ACF or Lucee embedded in BoxLang?
-
- No
- ACF is closed source
- Lucee - separate development. Chinese wall separation of BoxLang development.
- Can see the full source code edit history in GitHub which shows it is not a fork from Lucee
What about QA on the language?
-
- 6000 automated tests in GitHub
Why did you create it?
-
- A lot of work to make a new compiler etc
- Alternatives not taken
- Suggest features to ACF
- Tried. Too radical a change
- Have done for years. They have their own limitations.
- Tickets exist for these feature requests
- Pull requests to Lucee for a fork
- Looked at this for several months
- Lack of docs from the lead of the Lucee open-source project
- Major architecture differences with a fresh start
- Tickets exist for these features for years
- Suggest features to ACF
- New JVM language without the emotional baggage of taggy CF
Fast release cycles
-
- Weekly release cycles
- Lucee monthly releases
- ACF annual release plus as needed hotfixes
- CI process to immediate deployment
- CommandBox can run different versions of BoxLang, just like it does for ACF and Lucee
What are you looking forward to at CF Summit?
-
- Seeing other CFer
- Teaching REST class
- Ok to ask questions on the side and let’s respect Adobe CF conference is focused on ACF.
Addendum - What is OSGi
OSGi, or Open Service Gateway Initiative, is a Java framework that allows developers to create and deploy modular software programs and libraries. It's based on a set of specifications that define a component system for Java, and includes a standard for building modular components called bundles.
Here are some benefits of OSGi:
- Loose coupling
- OSGi focuses on loose coupling of functions, which allows for modular functionalities that can be easily moved between source codes.
- Dynamic component model
- OSGi implements a dynamic component model that allows applications to be remotely installed, started, stopped, updated, and uninstalled without requiring a restart.
- Microkernel architecture
- OSGi utilizes the concepts of a microkernel architecture, also known as a plug-in architecture.
- Reusable components
- OSGi allows developers to create applications from smaller, reusable, and collaborative components.
The OSGi Alliance was originally responsible for managing the OSGi framework, but in early 2021 the Eclipse Foundation took over the OSGi specification.
Mentioned in this episode
- TeraTech’s BoxLang overview article
- BoxLang Download - free download and paid options, plus lots of language info
- BoxLang Full source code repo on GitHub plus docs and 1000s of test cases
- Try BoxLang - similar to TryCF site to try out BoxLang code without having to install it first
- BoxLang book - full docs and examples to get you going fast.
Listen to the Audio
[powerpress]
Bio
Luis Majano
Luis Majano is a Computer Engineer who has been developing and designing software systems since 2000. During economic instability and civil war, he was born in San Salvador, El Salvador, in the late 70s. He lived in El Salvador until 1995 and then moved to Miami, Florida, where he completed his Bachelor of Science in Computer Engineering at Florida International University.
He is the CEO of Ortus Solutions, a consulting firm specializing in web development, BoxLang, Java development, and open-source professional services. He is the creator of ColdBox, ContentBox, CommandBox, WireBox, TestBox, LogBox, and anything "Box," and he contributes to over 250 open-source projects. He has a passion for learning and mentoring developers so they can succeed with sustainable software practices and the usage and development of open-source software. You can read his blog at www.luismajano.com
Luis is passionate about Jesus, tennis, golf, volleyball, and anything electronic. Random Author Facts:
- He played volleyball in the Salvadorean National Team at the tender age of 17
- His favorite books are The Lord of the Rings and The Hobbit (Geek!)
- His first computer was a Texas Instruments TI-99 that his parents gave him in 1986. After some time digesting his very first BASIC book, he had written his own tic-tac-toe game at the age of 9. (Extra geek!)
- He has a geek love for circuits, microcontrollers, and overall embedded systems.
- He has, as of late, become a fan of organic gardening.
Links
Brad Wood
Brad grew up in southern Missouri and after high school majored in Computer Science with a music minor at MidAmerica Nazarene University (Olathe, KS). Today he lives in Kansas City with his wife and three girls. Brad enjoys all sorts of international food and the great outdoors. Brad has been programming ColdFusion since around 2002 and has used every version of CF since 4.5. He is a software engineer at Ortus Solutions, lead developer of CommandBox CLI, and open source contributor.