SlideShare a Scribd company logo
Pre-Release Intro
LED BY
Ortus Team
Codename: Jericho
Keynote Day 1
Starting 9:00am Central
LED BY
Luis F. Majano
WELCOME
#ITB2024
Day 1
@GOINTOTHEBOX @ORTUSSOLUTIONS
LUIS F. MAJANO
Your Host
• CEO Ortus Solutions
• Computer Engineer
• Creator of all things box!
• Documentation Weirdo!
@lmajano @ortussolutions
Two most important
Facts to know…
Wifi
@MarriotBonvoy_Conference
Bathrooms
Thank Our Sponsors
Thank Our Speakers
Eric Peterson
USA
Gavin Pickin
USA
Esme Acevedo
USA
Brad Wood
USA
Cristobal Escobar
Spain
Thank ITB Committee
Maria Jose Herrera
El Salvador
Jorge Reyes
Switzerland
Edgardo Cabezas
El Salvador
Recordings
• Free access to all attendees
• 2-3 Weeks after ITB
• www.cfcasts.com
HAPPY BOX
6:30PM
• Tomorrow after the last session!
• Must be present to win!
• RaffleBox!
Don’t miss out!
• My name is Jericho, what’s yours?
The Social Minute
Today Is No Ordinary Day!
We have been keeping a se
Trailer Here
BoxLang is a modular dynamic language for the JVM, aiming to make your
development more productive, expressive, functional, and available
everywhere.
DYNAMIC : MODULAR : PRODUCTIVE
BETA
Goals & Vision
• A new evolution
• 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
Strict Dependency Graph
Strict Dependency Graph
• Core to be small and focused
• Only add a third party if extremely necessary
• Rely on the JDK as much as possible
• Lower surface attack area
• Extremely small distribution
• Extend via Modules with their own 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
• Schedulers are portable,
fl
uent, and human
• Task & Completable Futures framework from the
JDK
• Access to any executor in Java
• Run schedules as cron jobs; no server is needed
• Write them in BoxLang or Java
Professional Open Source + Subscriptions
• BoxLang Community (Free & Open Source)
• Apache 2
• Two Commercial Subscriptions
• BoxLang +
• Support
• Enterprise Modules & Features
• BoxLang + +
• Increased Support
• Custom Builds
• Dedicated Engineer
Professional Open Source
ARCHITECTURE
With Brad Wood
Modern Dynamic Language
Modern Dynamic Language
• Dynamically typed just like CFML, but we go further…
• JDK21+ Minimum
• JSR-223 Compliant
• No re
fl
ection, we use InvokeDynamic for everything
• DynamicObject: Any Object can be Dynamic!
• Type inference, auto-casting, type promotions
• Interface and superclass default method promotions
• Use all new JDK features and types
• Collection of Dynamic Casters and Helpers
Java Interop
Java Interop
• Interact with Java with no bridges
• It’s just part of the language; no more separation
• You can import, extend, implement, annotate, etc
• Execute BoxLang within Java and Java within BoxLang
• 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() convention
Java Interop
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
• Future > Groovy to BoxLang, ??? To BoxLang
• CFTranspiler CLI Tooling
• Feature Audit Tool
• Multi-Step Compiler
• BX -> Java -> ByteCode (DebugMode)
• Bx -> Bytecode (Almost done)
Choose your path wisely!
.cfc, .cfm
.bx, bxs, bxm
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
Event Channels
Event Producers
Event
Event
Event
Event Consumers
Event
Event
Event
Tested & Documented
Tested & Documented
• TDD/BDD at the core of the language
• 3000+ Tests Already
• Test not only Java but BoxLang inline
• Native BoxLang Assert constructs built-in
• Fully Documented
• Generated API Docs
• boxlang.ortusbooks.com
TOOLING
With Jacob Beers
Tooling Overview
• BoxLang IDE
• Language Debugger & LSP
• Executable scripts within the IDE
• Run Scripts and Servers
• Converters
• Visualizers
• CLI Tools
• REPL
• BoxLang Unix Scripting
• Script, Module, and Schedule Runners
• Convert CFML to BoxLang
• BoxLang to Bytecode
• Package BoxLang apps & modules
Tooling - IDE
• Modern development
fl
ow
• Inline documentation
• Inline web server with debugging
• Run BL/CF code directly within VSCode
• Debugger
• Language Server
• Committed to ongoing support and development - new
features are on the way!
Tooling - 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 - Language Server
• Already powering the extension!
• 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 tools
• Intellisense
• static analysis
• More coming soon…
Demo Time
🤞
Tooling
Tooling - Roadmap
• Near future
• Communication between the debugger and language server
• Static code analysis/type hinting
• Extension based CommandBox + BoxLang Server management
• Community engagement!
• +,++ version of debugger
• Language server plugins
MODULES
With Jon Clausen
Modular Needs
Modern Runtimes Have Various Needs!
( and CFML 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!
• 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!
Demo Time
🤞
Modules
TRY
With Gavin Pickin
Wanna play?
• try.boxlang.io
• Internet playground for BoxLang
• First Production BoxLang application
• Powered by our AWS Lambda Runtime
• Skinnable
• Embeddable on any Site
• +/++ More Features Coming Soon
How did we build Try BoxLang in under 48 Hours?
• I will be presenting a Secret Session looking at how Try BoxLang
was built…
fi
nal session on Day 2
• Quick Rundown
• Monaco Editor (VSCode) Web Component
• But we had several architectural design decisions to make
• Should we spin up a docker container per request?
• Should we have 5, 10, 20 replicas on Docker Swarm?
• Do we pass the code to a Docker Image with the CLI running?
• Should we make an image with an API and return code from
the API?
AWS Lambda Runtime
• Every Try.BoxLang.io request can
fi
re up its very own Lamba 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
• Scale up as big or as small as we want
What can you try?
• You can Try BoxLang code
• You can Try CF Code running in BoxLang
• You can see the evaluated results
• You can see the bu
ff
er output
• Copy Paste URLs to load code
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
TryBoxLang in the BoxLang IDE
• We want to make trying BoxLang even more accessible, so we’re working
on integrating it into the VSCode BoxLang IDE as a Window.
• Select code sections and use the command palette or shortcuts to open it
in Try.BoxLang.io instead of copying and pasting.
• Select code sections and save to ForgeBox
• The adventure has just started…
THE FUTURE IS
DYNAMIC
With Luis Majano
Key Features
• Open Beta Today!
• Final Release Fall 2024
• Need you to test and run!
• Limited Visionary Licenses
• One Price = Unlimited Licenses & Updates Forever
• For visionary companies/individuals that believe and
want to support the project
• sales@boxlang.io
• We are committed to the future
• It’s time for a revolution!
What’s Next!
THANK YOU

More Related Content

Similar to ITB2024 - Keynote Day 1 - Ortus Solutions.pdf

Command box
Command boxCommand box
Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019
graemerocher
 
Hidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script ExtensionsHidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script Extensions
SmartBear
 
The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012Jan Jongboom
 
Intro To CommandBox CLI,Package Manager, Server at the Japan CFUG
Intro To CommandBox CLI,Package Manager, Server at the Japan CFUGIntro To CommandBox CLI,Package Manager, Server at the Japan CFUG
Intro To CommandBox CLI,Package Manager, Server at the Japan CFUG
Ortus Solutions, Corp
 
Building an Event Bus at Scale
Building an Event Bus at ScaleBuilding an Event Bus at Scale
Building an Event Bus at Scale
jimriecken
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
Jonas Brømsø
 
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
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentation
Lois Patterson
 
Lois Patterson: Markup Languages and Warp-Speed Documentation
Lois Patterson:  Markup Languages and Warp-Speed DocumentationLois Patterson:  Markup Languages and Warp-Speed Documentation
Lois Patterson: Markup Languages and Warp-Speed Documentation
Jack Molisani
 
Stackato v4
Stackato v4Stackato v4
Stackato v4
Jonas Brømsø
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and Domino
Paul Withers
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talksRuslan Meshenberg
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
Amazon Web Services
 
Portable Class Library Deep Dive
Portable Class Library Deep DivePortable Class Library Deep Dive
Portable Class Library Deep Dive
James Montemagno
 
CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development
LetsConnect
 
Future of Kotlin - How agile can language development be?
Future of Kotlin - How agile can language development be?Future of Kotlin - How agile can language development be?
Future of Kotlin - How agile can language development be?
Andrey Breslav
 
Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?
GetInData
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
AWS Vietnam Community
 

Similar to ITB2024 - Keynote Day 1 - Ortus Solutions.pdf (20)

Command box
Command boxCommand box
Command box
 
Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019
 
Hidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script ExtensionsHidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script Extensions
 
The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012
 
Intro To CommandBox CLI,Package Manager, Server at the Japan CFUG
Intro To CommandBox CLI,Package Manager, Server at the Japan CFUGIntro To CommandBox CLI,Package Manager, Server at the Japan CFUG
Intro To CommandBox CLI,Package Manager, Server at the Japan CFUG
 
Building an Event Bus at Scale
Building an Event Bus at ScaleBuilding an Event Bus at Scale
Building an Event Bus at Scale
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
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?
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentation
 
Lois Patterson: Markup Languages and Warp-Speed Documentation
Lois Patterson:  Markup Languages and Warp-Speed DocumentationLois Patterson:  Markup Languages and Warp-Speed Documentation
Lois Patterson: Markup Languages and Warp-Speed Documentation
 
Stackato v4
Stackato v4Stackato v4
Stackato v4
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and Domino
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
Portable Class Library Deep Dive
Portable Class Library Deep DivePortable Class Library Deep Dive
Portable Class Library Deep Dive
 
CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development
 
Future of Kotlin - How agile can language development be?
Future of Kotlin - How agile can language development be?Future of Kotlin - How agile can language development be?
Future of Kotlin - How agile can language development be?
 
Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
Enterprise messaging
Enterprise messagingEnterprise messaging
Enterprise messaging
 

More from 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
 
Secure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionSecure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusion
Ortus Solutions, Corp
 
Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023
Ortus Solutions, Corp
 
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdfITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
Ortus Solutions, Corp
 
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdfITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
Ortus Solutions, Corp
 
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdfITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
Ortus Solutions, Corp
 
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdfITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
Ortus Solutions, Corp
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
Ortus Solutions, Corp
 
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdfITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
Ortus Solutions, Corp
 
ITB_2023_CBWire_v3_Grant_Copley.pdf
ITB_2023_CBWire_v3_Grant_Copley.pdfITB_2023_CBWire_v3_Grant_Copley.pdf
ITB_2023_CBWire_v3_Grant_Copley.pdf
Ortus Solutions, Corp
 
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdfITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
Ortus Solutions, Corp
 
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdfITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
Ortus Solutions, Corp
 
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdfITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
Ortus Solutions, Corp
 
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdfITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
Ortus Solutions, Corp
 
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdfITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
Ortus Solutions, Corp
 

More from Ortus Solutions, Corp (20)

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
 
Secure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionSecure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusion
 
Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023
 
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdfITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
 
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdfITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
 
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdfITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
 
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdfITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
 
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdfITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
 
ITB_2023_CBWire_v3_Grant_Copley.pdf
ITB_2023_CBWire_v3_Grant_Copley.pdfITB_2023_CBWire_v3_Grant_Copley.pdf
ITB_2023_CBWire_v3_Grant_Copley.pdf
 
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdfITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
 
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdfITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
 
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdfITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
 
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdfITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
 
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdfITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 

ITB2024 - Keynote Day 1 - Ortus Solutions.pdf

  • 1. Pre-Release Intro LED BY Ortus Team Codename: Jericho
  • 2. Keynote Day 1 Starting 9:00am Central LED BY Luis F. Majano
  • 4. LUIS F. MAJANO Your Host • CEO Ortus Solutions • Computer Engineer • Creator of all things box! • Documentation Weirdo! @lmajano @ortussolutions
  • 5. Two most important Facts to know… Wifi @MarriotBonvoy_Conference Bathrooms
  • 8. Eric Peterson USA Gavin Pickin USA Esme Acevedo USA Brad Wood USA Cristobal Escobar Spain Thank ITB Committee Maria Jose Herrera El Salvador Jorge Reyes Switzerland Edgardo Cabezas El Salvador
  • 9. Recordings • Free access to all attendees • 2-3 Weeks after ITB • www.cfcasts.com
  • 11. • Tomorrow after the last session! • Must be present to win! • RaffleBox! Don’t miss out!
  • 12. • My name is Jericho, what’s yours? The Social Minute
  • 13. Today Is No Ordinary Day! We have been keeping a se
  • 15. BoxLang is a modular dynamic language for the JVM, aiming to make your development more productive, expressive, functional, and available everywhere. DYNAMIC : MODULAR : PRODUCTIVE BETA
  • 16. Goals & Vision • A new evolution • 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
  • 21. Strict Dependency Graph • Core to be small and focused • Only add a third party if extremely necessary • Rely on the JDK as much as possible • Lower surface attack area • Extremely small distribution • Extend via Modules with their own dependencies commons-io Antlr javaparser/asm commons-lang jackson-jr slf4j logback Hikari
  • 25. Enterprise Caching Engine & Aggregator • Inspired by CacheBox • Enterprise Caching Engine • Extensible • Custom providers • Custom object stores • Listeners • Stats • Powers all internal caching
  • 26. Scheduling & Task Framework
  • 27. Scheduling & Task Framework • Inspired by ColdBox • Schedulers are portable, fl uent, and human • Task & Completable Futures framework from the JDK • Access to any executor in Java • Run schedules as cron jobs; no server is needed • Write them in BoxLang or Java
  • 28. Professional Open Source + Subscriptions
  • 29. • BoxLang Community (Free & Open Source) • Apache 2 • Two Commercial Subscriptions • BoxLang + • Support • Enterprise Modules & Features • BoxLang + + • Increased Support • Custom Builds • Dedicated Engineer Professional Open Source
  • 32. Modern Dynamic Language • Dynamically typed just like CFML, but we go further… • JDK21+ Minimum • JSR-223 Compliant • No re fl ection, we use InvokeDynamic for everything • DynamicObject: Any Object can be Dynamic! • Type inference, auto-casting, type promotions • Interface and superclass default method promotions • Use all new JDK features and types • Collection of Dynamic Casters and Helpers
  • 34. Java Interop • Interact with Java with no bridges • It’s just part of the language; no more separation • You can import, extend, implement, annotate, etc • Execute BoxLang within Java and Java within BoxLang • 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() convention Java Interop
  • 35. 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.
  • 37. 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 • Future > Groovy to BoxLang, ??? To BoxLang • CFTranspiler CLI Tooling • Feature Audit Tool • Multi-Step Compiler • BX -> Java -> ByteCode (DebugMode) • Bx -> Bytecode (Almost done) Choose your path wisely! .cfc, .cfm .bx, bxs, bxm
  • 39. 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 Event Channels Event Producers Event Event Event Event Consumers Event Event Event
  • 41. Tested & Documented • TDD/BDD at the core of the language • 3000+ Tests Already • Test not only Java but BoxLang inline • Native BoxLang Assert constructs built-in • Fully Documented • Generated API Docs • boxlang.ortusbooks.com
  • 43. Tooling Overview • BoxLang IDE • Language Debugger & LSP • Executable scripts within the IDE • Run Scripts and Servers • Converters • Visualizers • CLI Tools • REPL • BoxLang Unix Scripting • Script, Module, and Schedule Runners • Convert CFML to BoxLang • BoxLang to Bytecode • Package BoxLang apps & modules
  • 44. Tooling - IDE • Modern development fl ow • Inline documentation • Inline web server with debugging • Run BL/CF code directly within VSCode • Debugger • Language Server • Committed to ongoing support and development - new features are on the way!
  • 45. Tooling - 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!
  • 46. Tooling - Language Server • Already powering the extension! • 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 tools • Intellisense • static analysis • More coming soon…
  • 48. Tooling - Roadmap • Near future • Communication between the debugger and language server • Static code analysis/type hinting • Extension based CommandBox + BoxLang Server management • Community engagement! • +,++ version of debugger • Language server plugins
  • 50. Modular Needs Modern Runtimes Have Various Needs! ( and CFML 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
  • 51. 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
  • 52. 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! • Boundless potential for community contribution and engagement! • Foment third-party vendors • FORGEBOX eCommerce Marketplace later this year
  • 53. BoxLang Extends BoxLang In fl uence core runtime behavior with BIFs, Member Functions, Tags, Interceptors, and More!
  • 54. BoxLang Modules Take control of your own runtime, in your own language!
  • 57. Wanna play? • try.boxlang.io • Internet playground for BoxLang • First Production BoxLang application • Powered by our AWS Lambda Runtime • Skinnable • Embeddable on any Site • +/++ More Features Coming Soon
  • 58. How did we build Try BoxLang in under 48 Hours? • I will be presenting a Secret Session looking at how Try BoxLang was built… fi nal session on Day 2 • Quick Rundown • Monaco Editor (VSCode) Web Component • But we had several architectural design decisions to make • Should we spin up a docker container per request? • Should we have 5, 10, 20 replicas on Docker Swarm? • Do we pass the code to a Docker Image with the CLI running? • Should we make an image with an API and return code from the API?
  • 59. AWS Lambda Runtime • Every Try.BoxLang.io request can fi re up its very own Lamba 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 • Scale up as big or as small as we want
  • 60. What can you try? • You can Try BoxLang code • You can Try CF Code running in BoxLang • You can see the evaluated results • You can see the bu ff er output • Copy Paste URLs to load code
  • 61. 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
  • 62. TryBoxLang in the BoxLang IDE • We want to make trying BoxLang even more accessible, so we’re working on integrating it into the VSCode BoxLang IDE as a Window. • Select code sections and use the command palette or shortcuts to open it in Try.BoxLang.io instead of copying and pasting. • Select code sections and save to ForgeBox • The adventure has just started…
  • 65. • Open Beta Today! • Final Release Fall 2024 • Need you to test and run! • Limited Visionary Licenses • One Price = Unlimited Licenses & Updates Forever • For visionary companies/individuals that believe and want to support the project • sales@boxlang.io • We are committed to the future • It’s time for a revolution! What’s Next!