尊敬的 微信汇率:1円 ≈ 0.046166 元 支付宝汇率:1円 ≈ 0.046257元 [退出登录]
SlideShare a Scribd company logo
The Future is
Dynamic
LED BY
Luis F. Majano
LUIS F. MAJANO
Your Host
• CEO Ortus Solutions
• Computer Engineer
• Creator of all things box!
• Documentation Weirdo!
@lmajano @ortussolutions
We had a secret!!
BoxLang is a modular dynamic language for the JVM, aiming
to make your development more productive, expressive,
functional, and available everywhere.
DYNAMIC : MODULAR : PRODUCTIVE
WHY?
Why not just fork or collaborate?
Why build a new language?
Why now?
State of BoxLang
• Started on July 2023
• Open Beta on May 16 (< 1 Month)
• Pull Requests: 55
• Downloads: 3000+
• Repositories: 30
• Modules Completed: 20
• Modules in Development: 4
• Modules in Planning: 15
• Commits: 500+
• Contributors: 15+
• Modules in Development
• bx-encryption
• bx-orm
• bx-pdf
• bx-zip
• Modules in Planning
• bx-charts
• bx-legacy-ui
• bx-login
• bx-feeds
• bx-forms
• BoxLang +/++ Modules in Dev/Plannnig
• bx-couchbase
• bx-exchange
• bx-ftp
• bx-ldap
• bx-mongodb
• bx-redis
• bx-search
• bx-spreadsheet
• bx-elasticsearch
• bx-websockets
✓Modules Completed
✓ bx-compat
✓ bx-derby
✓ bx-esapi
✓ bx-hypersql
✓ bx-image
✓ bx-mail
✓ bx-mariadb
✓ bx-mssql
✓ bx-mysql
✓ bx-oracle
✓ bx-postgresql
✓ bx-unsafe-evaluate
✓ bx-wddx
State of BoxLang
CFML Compatibility
• Dual Parser: 98%
• Core BIFS: 96% (404/420)
• Core Tags: 100% (60/60)
• Target Core Completion: July 2024
BIFS Tags
1.0.0 Release -> Fall 2024
DYNAMIC : MODULAR : PRODUCTIVE
Goals & Vision
Goals & Vision
• Be dynamic, modular, lightweight, and fast
• Be 100% interoperable with Java
• Be modern, functional, and
fl
uent
(Think mixing CFML, Node, Kotlin, Java, and
Clojure)
• Modularity at its core
• Take advantage of the modern JVM
• TDD: Fully tested source code
• Be able to support multiple runtimes
• Have multiple transpilers
CFML -> BoxLang,
Groovy -> BoxLang
X -> BoxLang
• IDE and Tools
• All of our libraries needed to run
• Compete in today’s language environments
Key Features
Multi-Runtime Architecture
Multi-Runtime Architecture
Any OS
Docker MiniServer CommandBox Servlet Lambda Azure Android WebAssembly
Coming Soon Coming Soon Coming Soon
6 MB
9 MB 6 MB
15 MB
15 MB
160 MB
AWS Lambda Runtime
try.boxlang.io
Wanna play?
• try.boxlang.io
• Internet playground for BoxLang
• First Production BoxLang application
• Powered by our AWS Lambda Runtime
• Skinnable
• Embeddable on any Site (Soon)
AWS Lambda Runtime
• Every Try.BoxLang.io request can
fi
re up its very own Lambda request
• That means:
• We never have to worry about how many instances we have
• We never have to worry about queueing
• We never have to worry about bad actors accessing other people’s
fi
les
• We can easily update our Lambda runtime and all instances will be
running new code
• Lambdas have tiers too (staging, production, development)
• Scale up as big or as small as we want
Coming Soon!
• You will be able to see the Abstract Syntax Tree (AST) for your code
• You will be able to see the console/system output
• Ability to load code from GIST links
• +/++ Features
• Ability to Save to ForgeBox
• Create Projects like repli.it
• Install Modules
Strict Dependency Graph
Strict Dependency Graph
• Core to be small and focused
• Only add third-party libs if extremely necessary
• Rely on the JDK as much as possible
• Lower surface attack area
• Extremely small distribution (6MB)
• Extend via Modules with their dependencies
commons-io
Antlr
javaparser/asm
commons-lang
jackson-jr
slf4j
logback
Hikari
BoxLang Framework
BoxLang Framework
RUNTIME
Application
Service
Async
Service
Cache
Service
Component
Service
Datasource
Service
Function
Service
Interceptor
Service
Module
Service
Scheduler
Service
Enterprise Caching Engine & Aggregator
Enterprise Caching Engine & Aggregator
• Inspired by CacheBox
• Enterprise Caching Engine
• Extensible
• Custom providers
• Custom object stores
• Listeners
• Stats
• Powers all internal caching
Scheduling & Task Framework
Scheduling & Task Framework
• Inspired by ColdBox Async
• Schedulers are portable,
fl
uent, and human
• Write them in BoxLang or Java
• Task & Completable Futures framework from the JDK
• Access to any executor in Java
• Run schedules at the OS
• Importer from Adobe/Lucee (Soon)
• Task Visualizer (BoxLang Admin, BoxLang Debugger)
BoxLang Admin
BoxLang Admin (In Development)
• Quasar Administrator
• Progressive Web App
• Desktop Version
• Android/iOS
• Works locally or can be deployed on a server
• Manages your OS install
• Manages your Multi-Site via CommandBox
• Tons of features coming…
BoxLang Tooling
Tooling Overview
Tooling Overview
• BoxLang IDE
• Language Debugger & LSP
• Run classes with a main()
• Run Scripts
• Run / Manage Servers
• Code Converters, Code Formatters
• Code Quality
• Visualizers
Tooling Overview
• CLI Tools
• REPL: CLI code execution
• Shebang Scripts: #!/usr/bin/env boxlang
• File Runner: Run
fi
les
• Schedule Runner: Run schedulers
• Transpiler: Convert CFML to BoxLang
• Compiler: BoxLang to Bytecode
• Feature Audit: BIF and Tag report usage
• Packager: Compile and package your modules or BoxLang apps
Tooling - BoxLang IDE
• Modern development
fl
ow
• Inline documentation
• Webservers panel
• Works for BL and CFML
• Run BL/CF code directly within VSCode
• Debugger & Language Server
• Committed to ongoing support and development -
new features are on the way!
Tooling - BoxLang Debugger
• Purpose built
• Integrates with VSCode via Microsoft’s DAP
• Can debug both the CLI runtime and web
server
• You’ll never use writeDump() again!
Tooling - BoxLang Language Server
• Built with BoxLang!
• The BoxLang runtime was built with the LSP in mind
• Full access to the BoxLang syntax parser/compiler
• Access to all BoxLang con
fi
guration, datasources,
mappings, etc…
• Extensible via BoxLang modules
• Foundational for modern language toolchains
• Intellisense
• Static analysis
• More coming soon…
Demo Time
🤞
Tooling
Tooling - Roadmap
• v0.9.17 = Current Release
• Near future
• Communication between the debugger and language server
• Static code analysis/type hinting (Experimental)
• BoxLang Server management (Experimental)
• Incorporate CommandBox VSCode extension
• +,++ version of debugger
• Language server plugins
ARCHITECTURE
With Brad Wood
Modern Dynamic Language
Modern Dynamic Language
• Dynamically typed just like CFML, but we go further…
• JDK21+ Minimum
• Fully JSR-223 Compliant
• Clojure + BoxLang in development by Sean Cor
fi
eld
• No re
fl
ection, we use InvokeDynamic for everything
• DynamicObject: Any Object can be Dynamic!
• All OO Constructs
• Interfaces, superinterfaces and default method implementations
• Abstract classes and methods
• Static scope and methods on classes and interfaces
• Use all-new JDK features and types
• Collection of Dynamic Casters and Helpers
Java Interop
Java Interop
• Interact with Java naturally
• It’s just part of the language; no more
separation
• Type inference, auto-casting, type
promotions and coercion
• Long -> Doubles, Doubles ->Longs, etc
• BoxLang Function -> Java Lambdas
• You can import, extend, implement, annotate
from Java
Java Interop
Java Interop
• Concept of object resolvers: java, bx, custom
• New BoxLang Scripting: MyScript.bxs
• Components become Classes: MyClass.bx
• All bx/bxm/bxs are runnable via the OS
• Classes can have a main() runnable
convention
• BoxLang annotations
Runnable Classes
Pure Functions + Immutable Classes
• Support not only closures (=>) but pure functions (->)
• No side e
ff
ects, no carry-over contexts, pure speed
• Especially for asynchronous programming
• New Immutable classes:
• Arrays, Structs, and Queries
• Great for async safety, read-only snapshots, speed and
more.
Multi-Parsers
Multi-Parsers : BoxLang + CFML + ???
• Our way to split with the old and bring in the new
• Transpile CFML into BoxLang
• BoxLang is a NEW clean slate
• Compat module for Adobe/Lucee
• Multi-Step Compiler
• Bx -> Java Source -> ByteCode (DebugMode)
• Bx -> Bytecode (Almost done)
• In Planning
• Groovy to BoxLang
• ??? To BoxLang
Choose your path wisely!
.cfc, .cfm
.bx, bxs, bxm
BL-AST
BL-AST
• AST Visitors for custom tooling
• Feature Audits
• Transpiler
• Pretty Printer
• Code Quality
• getClassMetadata()
Event-Driven Language
Event-Driven Language
• Interceptors for the language, application, and request
• The best way to scale the language
• Listen to the entire or speci
fi
c language life-cycles
• Modules can listen/collaborate events
• boxAnnounce(), boxAnnounceAsync() : CompletableFuture
Event Channels
Event Producers
Event
Event
Event
Event Consumers
Event
Event
Event
Tested & Documented
Tested & Documented
• TDD/BDD at the core of the language
• 3500+ Tests Already
• Test not only Java but BoxLang
• Native BoxLang Assert constructs built-in
• Fully Documented
• Generated API Docs
• boxlang.ortusbooks.com
Modular Since Birth
Modular Needs
Modern Runtimes Have Various Needs!
( and CFML/PHP/Python/Ruby/Etc paradigms are outdated )
• Web Applications - HTTP Request/Response Data
• Tasks and Queues - Watchers, Event Handling, Async
• Lambda and CLI - fast start and blazing speeds!
• iOS/Android - Low resource footprint, event handling
• Web Assembly – Transpilation and Sandboxing
BoxLang Modules
• Inspired by ColdBox modules, NOT OSGI
• Core Runtime with lightest possible footprint
• Taps into the language life-cycle
• Write them in Java or BoxLang or Both!
• Executable as CLI packages
• Integrates with Maven/Gradle
BoxLang Modular By Design!
• Modular ecosystem, delivered by FORGEBOX
• Core modules for DBMS’, Alternate Runtimes ( e.g. Lambda ), Mail,
Encryption, CFML compatibility and more!
• Write your own functions, components ( tags ), schedulers, JDBC
Drivers, interceptions and more!
• Module has an isolated class loading machinery
• Boundless potential for community contribution and engagement!
• Foment third-party vendors
• FORGEBOX eCommerce Marketplace later this year
BoxLang Extends BoxLang
In
fl
uence core runtime behavior with BIFs,
Member Functions, Tags, Interceptors, and More!
BoxLang Modules
Take control of your own runtime,
in your own language!
PROJET JERICHO
AKA BOXLANG
With Jorge Reyes
• July 2023 - We started Project Jericho
• 4 Team Members
• Part-time development
• 4 on-site workshops
• Less than a year later BoxLang Beta
• We did not want to do something halfway; we went all in
A Story of Focus
The BoxLang Engineering Team
Luis Majano Gavin Pickin Brad Wood Alan Quinlan Dan Card Daniel Garcia Eric Peterson Esme Acevedo
Grant Copley Javier Quintero Michael Born Jon Clausen Jaime Ramirez Jacob Beers
The BoxLang Marketing + Business Team
Cristobal Escobar
Spain
Maria Jose Herrera
El Salvador
Jorge Reyes
Switzerland
Edgardo Cabezas
El Salvador
Veronica Monedero
USA
Jonathan Lainez
El Salvador
• Because it’s hard and we love the challenge!
• Because our customers needed it
• Because we needed it
• We wanted to go places that we could not go
• No bug we can’t
fi
x
• No feature we can’t deliver
• No performance we can’t tune
• THE FUTURE IS OURS
Why BoxLang?
• BoxLang Community (Free & Open Source) Apache 2
• Two Commercial Subscriptions
• BoxLang +
• Professional Support (SLA)
• Enterprise Modules & Features
• BoxLang + +
• Everything in +
• Premium Support
• Custom Builds
Professional Open Source
boxlang.io/plans
BoxLang Roadmap
Visionary Licenses
boxlang@ortussolutions.com
• One-time purchase -> Unlimited Licenses -> 10 years
• Support for 10 years included
• Long-term peace of mind
• Invest in the future
• Limited number available
A Revolution is Coming…Join us now!
boxlang@ortussolutions.com
Backdrop
AI-generated
by DALL-E
“Mad scientist in lab
experiencing Eureka
moment”
THANK YOU

More Related Content

Similar to TheFutureIsDynamic-BoxLang-CFCamp2024.pdf

The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012
Jan Jongboom
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
E. Camden Fisher
 
Peeling back the Lambda layers
Peeling back the Lambda layersPeeling back the Lambda layers
Peeling back the Lambda layers
Patrick McCaffrey
 
Stackato v2
Stackato v2Stackato v2
Stackato v2
Jonas Brømsø
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
Jonas Brømsø
 
OOP - Lecture02 - Introduction to Java.pptx
OOP - Lecture02 - Introduction to Java.pptxOOP - Lecture02 - Introduction to Java.pptx
OOP - Lecture02 - Introduction to Java.pptx
umairmushtaq48
 
Intro to Crystal Programming Language
Intro to Crystal Programming LanguageIntro to Crystal Programming Language
Intro to Crystal Programming Language
Adler Hsieh
 
CI/CD for Asp.net core apps using Docker
CI/CD for Asp.net core apps using DockerCI/CD for Asp.net core apps using Docker
CI/CD for Asp.net core apps using Docker
Swaminathan Vetri
 
Web technologies for desktop development @ berlinjs apps
Web technologies for desktop development @ berlinjs appsWeb technologies for desktop development @ berlinjs apps
Web technologies for desktop development @ berlinjs apps
Darko Kukovec
 
ITB2015 - Keynote by Ortus Solutions
ITB2015 - Keynote by Ortus SolutionsITB2015 - Keynote by Ortus Solutions
ITB2015 - Keynote by Ortus Solutions
Ortus Solutions, Corp
 
Into The Box 2015 Keynote
Into The Box 2015 KeynoteInto The Box 2015 Keynote
Into The Box 2015 Keynote
Ortus Solutions, Corp
 
Container Orchestration for .NET Developers
Container Orchestration for .NET DevelopersContainer Orchestration for .NET Developers
Container Orchestration for .NET Developers
Mike Melusky
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
Andreas Katzig
 
Why ruby and rails
Why ruby and railsWhy ruby and rails
Why ruby and rails
Reuven Lerner
 
ITB2015 - Go Commando with CommandBox CLI
ITB2015 - Go Commando with CommandBox CLIITB2015 - Go Commando with CommandBox CLI
ITB2015 - Go Commando with CommandBox CLI
Ortus Solutions, Corp
 
Why Kotlin?
Why Kotlin?Why Kotlin?
Why Kotlin?
Yongqiang Li
 
Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?
C4Media
 
Modern ClojureScript
Modern ClojureScriptModern ClojureScript
Modern ClojureScript
Wen Chun Lin
 
Hidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script ExtensionsHidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script Extensions
SmartBear
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Conference
 

Similar to TheFutureIsDynamic-BoxLang-CFCamp2024.pdf (20)

The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
 
Peeling back the Lambda layers
Peeling back the Lambda layersPeeling back the Lambda layers
Peeling back the Lambda layers
 
Stackato v2
Stackato v2Stackato v2
Stackato v2
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
 
OOP - Lecture02 - Introduction to Java.pptx
OOP - Lecture02 - Introduction to Java.pptxOOP - Lecture02 - Introduction to Java.pptx
OOP - Lecture02 - Introduction to Java.pptx
 
Intro to Crystal Programming Language
Intro to Crystal Programming LanguageIntro to Crystal Programming Language
Intro to Crystal Programming Language
 
CI/CD for Asp.net core apps using Docker
CI/CD for Asp.net core apps using DockerCI/CD for Asp.net core apps using Docker
CI/CD for Asp.net core apps using Docker
 
Web technologies for desktop development @ berlinjs apps
Web technologies for desktop development @ berlinjs appsWeb technologies for desktop development @ berlinjs apps
Web technologies for desktop development @ berlinjs apps
 
ITB2015 - Keynote by Ortus Solutions
ITB2015 - Keynote by Ortus SolutionsITB2015 - Keynote by Ortus Solutions
ITB2015 - Keynote by Ortus Solutions
 
Into The Box 2015 Keynote
Into The Box 2015 KeynoteInto The Box 2015 Keynote
Into The Box 2015 Keynote
 
Container Orchestration for .NET Developers
Container Orchestration for .NET DevelopersContainer Orchestration for .NET Developers
Container Orchestration for .NET Developers
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
 
Why ruby and rails
Why ruby and railsWhy ruby and rails
Why ruby and rails
 
ITB2015 - Go Commando with CommandBox CLI
ITB2015 - Go Commando with CommandBox CLIITB2015 - Go Commando with CommandBox CLI
ITB2015 - Go Commando with CommandBox CLI
 
Why Kotlin?
Why Kotlin?Why Kotlin?
Why Kotlin?
 
Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?
 
Modern ClojureScript
Modern ClojureScriptModern ClojureScript
Modern ClojureScript
 
Hidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script ExtensionsHidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script Extensions
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
 

More from Ortus Solutions, Corp

How to Make a Living as a (ColdFusion) Freelancer?
How to Make a Living as a (ColdFusion) Freelancer?How to Make a Living as a (ColdFusion) Freelancer?
How to Make a Living as a (ColdFusion) Freelancer?
Ortus Solutions, Corp
 
What’s New in ContentBox 6 by Ortus Solutions.pdf
What’s New in ContentBox 6 by Ortus Solutions.pdfWhat’s New in ContentBox 6 by Ortus Solutions.pdf
What’s New in ContentBox 6 by Ortus Solutions.pdf
Ortus Solutions, Corp
 
cbq - Jobs and Tasks in the Background by Ortus
cbq - Jobs and Tasks in the Background by Ortuscbq - Jobs and Tasks in the Background by Ortus
cbq - Jobs and Tasks in the Background by Ortus
Ortus Solutions, Corp
 
Demonstrating Monitoring Solutions for CF and Lucee
Demonstrating Monitoring Solutions for CF and LuceeDemonstrating Monitoring Solutions for CF and Lucee
Demonstrating Monitoring Solutions for CF and Lucee
Ortus Solutions, Corp
 
Ortus Solutions - Headless Content for the Win!
Ortus Solutions - Headless Content for the Win!Ortus Solutions - Headless Content for the Win!
Ortus Solutions - Headless Content for the Win!
Ortus Solutions, Corp
 
Build a Complex Web Form with RuleBox and TestBox
Build a Complex Web Form with RuleBox and TestBoxBuild a Complex Web Form with RuleBox and TestBox
Build a Complex Web Form with RuleBox and TestBox
Ortus Solutions, Corp
 
Reactive CFML with CBWIRE v4 by Ortus Solutions
Reactive CFML with CBWIRE v4 by Ortus SolutionsReactive CFML with CBWIRE v4 by Ortus Solutions
Reactive CFML with CBWIRE v4 by Ortus Solutions
Ortus Solutions, Corp
 
Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...
Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...
Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...
Ortus Solutions, Corp
 
Managing and Controlling Data Proliferation.pdf
Managing and Controlling Data Proliferation.pdfManaging and Controlling Data Proliferation.pdf
Managing and Controlling Data Proliferation.pdf
Ortus Solutions, Corp
 
Write More Durable Code: Principles and Techniques
Write More Durable Code: Principles and TechniquesWrite More Durable Code: Principles and Techniques
Write More Durable Code: Principles and Techniques
Ortus Solutions, Corp
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
Ortus Solutions, Corp
 
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Ortus Solutions, Corp
 
Revolutionizing Task Scheduling in CFML!
Revolutionizing Task Scheduling in CFML!Revolutionizing Task Scheduling in CFML!
Revolutionizing Task Scheduling in CFML!
Ortus Solutions, Corp
 
CBDebugger : Debug your Box apps with ease!
CBDebugger : Debug your Box apps with ease!CBDebugger : Debug your Box apps with ease!
CBDebugger : Debug your Box apps with ease!
Ortus Solutions, Corp
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
Ortus Solutions, Corp
 
Ortus Government.pdf
Ortus Government.pdfOrtus Government.pdf
Ortus Government.pdf
Ortus Solutions, Corp
 
Luis Majano The Battlefield ORM
Luis Majano The Battlefield ORMLuis Majano The Battlefield ORM
Luis Majano The Battlefield ORM
Ortus Solutions, Corp
 
Brad Wood - CommandBox CLI
Brad Wood - CommandBox CLI Brad Wood - CommandBox CLI
Brad Wood - CommandBox CLI
Ortus Solutions, Corp
 

More from Ortus Solutions, Corp (20)

How to Make a Living as a (ColdFusion) Freelancer?
How to Make a Living as a (ColdFusion) Freelancer?How to Make a Living as a (ColdFusion) Freelancer?
How to Make a Living as a (ColdFusion) Freelancer?
 
What’s New in ContentBox 6 by Ortus Solutions.pdf
What’s New in ContentBox 6 by Ortus Solutions.pdfWhat’s New in ContentBox 6 by Ortus Solutions.pdf
What’s New in ContentBox 6 by Ortus Solutions.pdf
 
cbq - Jobs and Tasks in the Background by Ortus
cbq - Jobs and Tasks in the Background by Ortuscbq - Jobs and Tasks in the Background by Ortus
cbq - Jobs and Tasks in the Background by Ortus
 
Demonstrating Monitoring Solutions for CF and Lucee
Demonstrating Monitoring Solutions for CF and LuceeDemonstrating Monitoring Solutions for CF and Lucee
Demonstrating Monitoring Solutions for CF and Lucee
 
Ortus Solutions - Headless Content for the Win!
Ortus Solutions - Headless Content for the Win!Ortus Solutions - Headless Content for the Win!
Ortus Solutions - Headless Content for the Win!
 
Build a Complex Web Form with RuleBox and TestBox
Build a Complex Web Form with RuleBox and TestBoxBuild a Complex Web Form with RuleBox and TestBox
Build a Complex Web Form with RuleBox and TestBox
 
Reactive CFML with CBWIRE v4 by Ortus Solutions
Reactive CFML with CBWIRE v4 by Ortus SolutionsReactive CFML with CBWIRE v4 by Ortus Solutions
Reactive CFML with CBWIRE v4 by Ortus Solutions
 
Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...
Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...
Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...
 
Managing and Controlling Data Proliferation.pdf
Managing and Controlling Data Proliferation.pdfManaging and Controlling Data Proliferation.pdf
Managing and Controlling Data Proliferation.pdf
 
Write More Durable Code: Principles and Techniques
Write More Durable Code: Principles and TechniquesWrite More Durable Code: Principles and Techniques
Write More Durable Code: Principles and Techniques
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
 
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
 
Revolutionizing Task Scheduling in CFML!
Revolutionizing Task Scheduling in CFML!Revolutionizing Task Scheduling in CFML!
Revolutionizing Task Scheduling in CFML!
 
CBDebugger : Debug your Box apps with ease!
CBDebugger : Debug your Box apps with ease!CBDebugger : Debug your Box apps with ease!
CBDebugger : Debug your Box apps with ease!
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Ortus Government.pdf
Ortus Government.pdfOrtus Government.pdf
Ortus Government.pdf
 
Luis Majano The Battlefield ORM
Luis Majano The Battlefield ORMLuis Majano The Battlefield ORM
Luis Majano The Battlefield ORM
 
Brad Wood - CommandBox CLI
Brad Wood - CommandBox CLI Brad Wood - CommandBox CLI
Brad Wood - CommandBox CLI
 

Recently uploaded

Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Vince Scalabrino
 
Folding Cheat Sheet #6 - sixth in a series
Folding Cheat Sheet #6 - sixth in a seriesFolding Cheat Sheet #6 - sixth in a series
Folding Cheat Sheet #6 - sixth in a series
Philip Schwarz
 
OpenChain Webinar - Open Source Due Diligence for M&A - 2024-06-17
OpenChain Webinar - Open Source Due Diligence for M&A - 2024-06-17OpenChain Webinar - Open Source Due Diligence for M&A - 2024-06-17
OpenChain Webinar - Open Source Due Diligence for M&A - 2024-06-17
Shane Coughlan
 
Trailhead Talks_ Journey of an All-Star Ranger .pptx
Trailhead Talks_ Journey of an All-Star Ranger .pptxTrailhead Talks_ Journey of an All-Star Ranger .pptx
Trailhead Talks_ Journey of an All-Star Ranger .pptx
ImtiazBinMohiuddin
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
Anand Bagmar
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
michniczscribd
 
The Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdf
The Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdfThe Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdf
The Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdf
kalichargn70th171
 
Refactoring legacy systems using events commands and bubble contexts
Refactoring legacy systems using events commands and bubble contextsRefactoring legacy systems using events commands and bubble contexts
Refactoring legacy systems using events commands and bubble contexts
Michał Kurzeja
 
Independent Call Girls In Kolkata ✔ 7014168258 ✔ Hi I Am Divya Vip Call Girl ...
Independent Call Girls In Kolkata ✔ 7014168258 ✔ Hi I Am Divya Vip Call Girl ...Independent Call Girls In Kolkata ✔ 7014168258 ✔ Hi I Am Divya Vip Call Girl ...
Independent Call Girls In Kolkata ✔ 7014168258 ✔ Hi I Am Divya Vip Call Girl ...
simmi singh$A17
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
Alina Yurenko
 
What’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 UpdateWhat’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 Update
VictoriaMetrics
 
Solar Panel Service Provider annual maintenance contract.pdf
Solar Panel Service Provider annual maintenance contract.pdfSolar Panel Service Provider annual maintenance contract.pdf
Solar Panel Service Provider annual maintenance contract.pdf
SERVE WELL CRM NASHIK
 
Folding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a seriesFolding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a series
Philip Schwarz
 
Photo Copier Xerox Machine annual maintenance contract system.pdf
Photo Copier Xerox Machine annual maintenance contract system.pdfPhoto Copier Xerox Machine annual maintenance contract system.pdf
Photo Copier Xerox Machine annual maintenance contract system.pdf
SERVE WELL CRM NASHIK
 
Erotic Call Girls Bangalore🫱9079923931🫲 High Quality Call Girl Service Right ...
Erotic Call Girls Bangalore🫱9079923931🫲 High Quality Call Girl Service Right ...Erotic Call Girls Bangalore🫱9079923931🫲 High Quality Call Girl Service Right ...
Erotic Call Girls Bangalore🫱9079923931🫲 High Quality Call Girl Service Right ...
meenusingh4354543
 
Hands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion StepsHands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion Steps
servicesNitor
 
Introduction to Python and Basic Syntax.pptx
Introduction to Python and Basic Syntax.pptxIntroduction to Python and Basic Syntax.pptx
Introduction to Python and Basic Syntax.pptx
GevitaChinnaiah
 
Enhancing non-Perl bioinformatic applications with Perl
Enhancing non-Perl bioinformatic applications with PerlEnhancing non-Perl bioinformatic applications with Perl
Enhancing non-Perl bioinformatic applications with Perl
Christos Argyropoulos
 
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical OperationsEnsuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
OnePlan Solutions
 

Recently uploaded (20)

bgiolcb
bgiolcbbgiolcb
bgiolcb
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
 
Folding Cheat Sheet #6 - sixth in a series
Folding Cheat Sheet #6 - sixth in a seriesFolding Cheat Sheet #6 - sixth in a series
Folding Cheat Sheet #6 - sixth in a series
 
OpenChain Webinar - Open Source Due Diligence for M&A - 2024-06-17
OpenChain Webinar - Open Source Due Diligence for M&A - 2024-06-17OpenChain Webinar - Open Source Due Diligence for M&A - 2024-06-17
OpenChain Webinar - Open Source Due Diligence for M&A - 2024-06-17
 
Trailhead Talks_ Journey of an All-Star Ranger .pptx
Trailhead Talks_ Journey of an All-Star Ranger .pptxTrailhead Talks_ Journey of an All-Star Ranger .pptx
Trailhead Talks_ Journey of an All-Star Ranger .pptx
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
 
The Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdf
The Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdfThe Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdf
The Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdf
 
Refactoring legacy systems using events commands and bubble contexts
Refactoring legacy systems using events commands and bubble contextsRefactoring legacy systems using events commands and bubble contexts
Refactoring legacy systems using events commands and bubble contexts
 
Independent Call Girls In Kolkata ✔ 7014168258 ✔ Hi I Am Divya Vip Call Girl ...
Independent Call Girls In Kolkata ✔ 7014168258 ✔ Hi I Am Divya Vip Call Girl ...Independent Call Girls In Kolkata ✔ 7014168258 ✔ Hi I Am Divya Vip Call Girl ...
Independent Call Girls In Kolkata ✔ 7014168258 ✔ Hi I Am Divya Vip Call Girl ...
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
 
What’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 UpdateWhat’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 Update
 
Solar Panel Service Provider annual maintenance contract.pdf
Solar Panel Service Provider annual maintenance contract.pdfSolar Panel Service Provider annual maintenance contract.pdf
Solar Panel Service Provider annual maintenance contract.pdf
 
Folding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a seriesFolding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a series
 
Photo Copier Xerox Machine annual maintenance contract system.pdf
Photo Copier Xerox Machine annual maintenance contract system.pdfPhoto Copier Xerox Machine annual maintenance contract system.pdf
Photo Copier Xerox Machine annual maintenance contract system.pdf
 
Erotic Call Girls Bangalore🫱9079923931🫲 High Quality Call Girl Service Right ...
Erotic Call Girls Bangalore🫱9079923931🫲 High Quality Call Girl Service Right ...Erotic Call Girls Bangalore🫱9079923931🫲 High Quality Call Girl Service Right ...
Erotic Call Girls Bangalore🫱9079923931🫲 High Quality Call Girl Service Right ...
 
Hands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion StepsHands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion Steps
 
Introduction to Python and Basic Syntax.pptx
Introduction to Python and Basic Syntax.pptxIntroduction to Python and Basic Syntax.pptx
Introduction to Python and Basic Syntax.pptx
 
Enhancing non-Perl bioinformatic applications with Perl
Enhancing non-Perl bioinformatic applications with PerlEnhancing non-Perl bioinformatic applications with Perl
Enhancing non-Perl bioinformatic applications with Perl
 
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical OperationsEnsuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
 

TheFutureIsDynamic-BoxLang-CFCamp2024.pdf

  • 1. The Future is Dynamic LED BY Luis F. Majano
  • 2. LUIS F. MAJANO Your Host • CEO Ortus Solutions • Computer Engineer • Creator of all things box! • Documentation Weirdo! @lmajano @ortussolutions
  • 3. We had a secret!!
  • 4.
  • 5. BoxLang is a modular dynamic language for the JVM, aiming to make your development more productive, expressive, functional, and available everywhere. DYNAMIC : MODULAR : PRODUCTIVE
  • 7. Why not just fork or collaborate? Why build a new language? Why now?
  • 8. State of BoxLang • Started on July 2023 • Open Beta on May 16 (< 1 Month) • Pull Requests: 55 • Downloads: 3000+ • Repositories: 30 • Modules Completed: 20 • Modules in Development: 4 • Modules in Planning: 15 • Commits: 500+ • Contributors: 15+
  • 9. • Modules in Development • bx-encryption • bx-orm • bx-pdf • bx-zip • Modules in Planning • bx-charts • bx-legacy-ui • bx-login • bx-feeds • bx-forms • BoxLang +/++ Modules in Dev/Plannnig • bx-couchbase • bx-exchange • bx-ftp • bx-ldap • bx-mongodb • bx-redis • bx-search • bx-spreadsheet • bx-elasticsearch • bx-websockets ✓Modules Completed ✓ bx-compat ✓ bx-derby ✓ bx-esapi ✓ bx-hypersql ✓ bx-image ✓ bx-mail ✓ bx-mariadb ✓ bx-mssql ✓ bx-mysql ✓ bx-oracle ✓ bx-postgresql ✓ bx-unsafe-evaluate ✓ bx-wddx State of BoxLang
  • 10. CFML Compatibility • Dual Parser: 98% • Core BIFS: 96% (404/420) • Core Tags: 100% (60/60) • Target Core Completion: July 2024 BIFS Tags
  • 11. 1.0.0 Release -> Fall 2024 DYNAMIC : MODULAR : PRODUCTIVE
  • 13. Goals & Vision • Be dynamic, modular, lightweight, and fast • Be 100% interoperable with Java • Be modern, functional, and fl uent (Think mixing CFML, Node, Kotlin, Java, and Clojure) • Modularity at its core • Take advantage of the modern JVM • TDD: Fully tested source code • Be able to support multiple runtimes • Have multiple transpilers CFML -> BoxLang, Groovy -> BoxLang X -> BoxLang • IDE and Tools • All of our libraries needed to run • Compete in today’s language environments
  • 16. Multi-Runtime Architecture Any OS Docker MiniServer CommandBox Servlet Lambda Azure Android WebAssembly Coming Soon Coming Soon Coming Soon 6 MB 9 MB 6 MB 15 MB 15 MB 160 MB
  • 19. Wanna play? • try.boxlang.io • Internet playground for BoxLang • First Production BoxLang application • Powered by our AWS Lambda Runtime • Skinnable • Embeddable on any Site (Soon)
  • 20. AWS Lambda Runtime • Every Try.BoxLang.io request can fi re up its very own Lambda request • That means: • We never have to worry about how many instances we have • We never have to worry about queueing • We never have to worry about bad actors accessing other people’s fi les • We can easily update our Lambda runtime and all instances will be running new code • Lambdas have tiers too (staging, production, development) • Scale up as big or as small as we want
  • 21. Coming Soon! • You will be able to see the Abstract Syntax Tree (AST) for your code • You will be able to see the console/system output • Ability to load code from GIST links • +/++ Features • Ability to Save to ForgeBox • Create Projects like repli.it • Install Modules
  • 23. Strict Dependency Graph • Core to be small and focused • Only add third-party libs if extremely necessary • Rely on the JDK as much as possible • Lower surface attack area • Extremely small distribution (6MB) • Extend via Modules with their dependencies commons-io Antlr javaparser/asm commons-lang jackson-jr slf4j logback Hikari
  • 27. Enterprise Caching Engine & Aggregator • Inspired by CacheBox • Enterprise Caching Engine • Extensible • Custom providers • Custom object stores • Listeners • Stats • Powers all internal caching
  • 28. Scheduling & Task Framework
  • 29. Scheduling & Task Framework • Inspired by ColdBox Async • Schedulers are portable, fl uent, and human • Write them in BoxLang or Java • Task & Completable Futures framework from the JDK • Access to any executor in Java • Run schedules at the OS • Importer from Adobe/Lucee (Soon) • Task Visualizer (BoxLang Admin, BoxLang Debugger)
  • 31. BoxLang Admin (In Development) • Quasar Administrator • Progressive Web App • Desktop Version • Android/iOS • Works locally or can be deployed on a server • Manages your OS install • Manages your Multi-Site via CommandBox • Tons of features coming…
  • 32.
  • 33.
  • 36. Tooling Overview • BoxLang IDE • Language Debugger & LSP • Run classes with a main() • Run Scripts • Run / Manage Servers • Code Converters, Code Formatters • Code Quality • Visualizers
  • 37. Tooling Overview • CLI Tools • REPL: CLI code execution • Shebang Scripts: #!/usr/bin/env boxlang • File Runner: Run fi les • Schedule Runner: Run schedulers • Transpiler: Convert CFML to BoxLang • Compiler: BoxLang to Bytecode • Feature Audit: BIF and Tag report usage • Packager: Compile and package your modules or BoxLang apps
  • 38. Tooling - BoxLang IDE • Modern development fl ow • Inline documentation • Webservers panel • Works for BL and CFML • Run BL/CF code directly within VSCode • Debugger & Language Server • Committed to ongoing support and development - new features are on the way!
  • 39. Tooling - BoxLang Debugger • Purpose built • Integrates with VSCode via Microsoft’s DAP • Can debug both the CLI runtime and web server • You’ll never use writeDump() again!
  • 40. Tooling - BoxLang Language Server • Built with BoxLang! • The BoxLang runtime was built with the LSP in mind • Full access to the BoxLang syntax parser/compiler • Access to all BoxLang con fi guration, datasources, mappings, etc… • Extensible via BoxLang modules • Foundational for modern language toolchains • Intellisense • Static analysis • More coming soon…
  • 42. Tooling - Roadmap • v0.9.17 = Current Release • Near future • Communication between the debugger and language server • Static code analysis/type hinting (Experimental) • BoxLang Server management (Experimental) • Incorporate CommandBox VSCode extension • +,++ version of debugger • Language server plugins
  • 45. Modern Dynamic Language • Dynamically typed just like CFML, but we go further… • JDK21+ Minimum • Fully JSR-223 Compliant • Clojure + BoxLang in development by Sean Cor fi eld • No re fl ection, we use InvokeDynamic for everything • DynamicObject: Any Object can be Dynamic! • All OO Constructs • Interfaces, superinterfaces and default method implementations • Abstract classes and methods • Static scope and methods on classes and interfaces • Use all-new JDK features and types • Collection of Dynamic Casters and Helpers
  • 47. Java Interop • Interact with Java naturally • It’s just part of the language; no more separation • Type inference, auto-casting, type promotions and coercion • Long -> Doubles, Doubles ->Longs, etc • BoxLang Function -> Java Lambdas • You can import, extend, implement, annotate from Java Java Interop
  • 48. Java Interop • Concept of object resolvers: java, bx, custom • New BoxLang Scripting: MyScript.bxs • Components become Classes: MyClass.bx • All bx/bxm/bxs are runnable via the OS • Classes can have a main() runnable convention • BoxLang annotations Runnable Classes
  • 49. Pure Functions + Immutable Classes • Support not only closures (=>) but pure functions (->) • No side e ff ects, no carry-over contexts, pure speed • Especially for asynchronous programming • New Immutable classes: • Arrays, Structs, and Queries • Great for async safety, read-only snapshots, speed and more.
  • 51. Multi-Parsers : BoxLang + CFML + ??? • Our way to split with the old and bring in the new • Transpile CFML into BoxLang • BoxLang is a NEW clean slate • Compat module for Adobe/Lucee • Multi-Step Compiler • Bx -> Java Source -> ByteCode (DebugMode) • Bx -> Bytecode (Almost done) • In Planning • Groovy to BoxLang • ??? To BoxLang Choose your path wisely! .cfc, .cfm .bx, bxs, bxm
  • 53. BL-AST • AST Visitors for custom tooling • Feature Audits • Transpiler • Pretty Printer • Code Quality • getClassMetadata()
  • 55. Event-Driven Language • Interceptors for the language, application, and request • The best way to scale the language • Listen to the entire or speci fi c language life-cycles • Modules can listen/collaborate events • boxAnnounce(), boxAnnounceAsync() : CompletableFuture Event Channels Event Producers Event Event Event Event Consumers Event Event Event
  • 57. Tested & Documented • TDD/BDD at the core of the language • 3500+ Tests Already • Test not only Java but BoxLang • Native BoxLang Assert constructs built-in • Fully Documented • Generated API Docs • boxlang.ortusbooks.com
  • 59. Modular Needs Modern Runtimes Have Various Needs! ( and CFML/PHP/Python/Ruby/Etc paradigms are outdated ) • Web Applications - HTTP Request/Response Data • Tasks and Queues - Watchers, Event Handling, Async • Lambda and CLI - fast start and blazing speeds! • iOS/Android - Low resource footprint, event handling • Web Assembly – Transpilation and Sandboxing
  • 60. BoxLang Modules • Inspired by ColdBox modules, NOT OSGI • Core Runtime with lightest possible footprint • Taps into the language life-cycle • Write them in Java or BoxLang or Both! • Executable as CLI packages • Integrates with Maven/Gradle
  • 61. BoxLang Modular By Design! • Modular ecosystem, delivered by FORGEBOX • Core modules for DBMS’, Alternate Runtimes ( e.g. Lambda ), Mail, Encryption, CFML compatibility and more! • Write your own functions, components ( tags ), schedulers, JDBC Drivers, interceptions and more! • Module has an isolated class loading machinery • Boundless potential for community contribution and engagement! • Foment third-party vendors • FORGEBOX eCommerce Marketplace later this year
  • 62. BoxLang Extends BoxLang In fl uence core runtime behavior with BIFs, Member Functions, Tags, Interceptors, and More!
  • 63. BoxLang Modules Take control of your own runtime, in your own language!
  • 65. • July 2023 - We started Project Jericho • 4 Team Members • Part-time development • 4 on-site workshops • Less than a year later BoxLang Beta • We did not want to do something halfway; we went all in A Story of Focus
  • 66. The BoxLang Engineering Team Luis Majano Gavin Pickin Brad Wood Alan Quinlan Dan Card Daniel Garcia Eric Peterson Esme Acevedo Grant Copley Javier Quintero Michael Born Jon Clausen Jaime Ramirez Jacob Beers
  • 67. The BoxLang Marketing + Business Team Cristobal Escobar Spain Maria Jose Herrera El Salvador Jorge Reyes Switzerland Edgardo Cabezas El Salvador Veronica Monedero USA Jonathan Lainez El Salvador
  • 68. • Because it’s hard and we love the challenge! • Because our customers needed it • Because we needed it • We wanted to go places that we could not go • No bug we can’t fi x • No feature we can’t deliver • No performance we can’t tune • THE FUTURE IS OURS Why BoxLang?
  • 69. • BoxLang Community (Free & Open Source) Apache 2 • Two Commercial Subscriptions • BoxLang + • Professional Support (SLA) • Enterprise Modules & Features • BoxLang + + • Everything in + • Premium Support • Custom Builds Professional Open Source boxlang.io/plans
  • 71. Visionary Licenses boxlang@ortussolutions.com • One-time purchase -> Unlimited Licenses -> 10 years • Support for 10 years included • Long-term peace of mind • Invest in the future • Limited number available
  • 72. A Revolution is Coming…Join us now! boxlang@ortussolutions.com Backdrop AI-generated by DALL-E “Mad scientist in lab experiencing Eureka moment”
  翻译: