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
Command box
devObjective
 
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 2012
Jan 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 talks
Ruslan 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
 
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
 

More from Ortus Solutions, Corp

Intro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AIIntro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AI
Ortus Solutions, Corp
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
Ortus Solutions, Corp
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
Ortus Solutions, Corp
 
BoxLang Developer Tooling: VSCode Extension and Debugger
BoxLang Developer Tooling: VSCode Extension and DebuggerBoxLang Developer Tooling: VSCode Extension and Debugger
BoxLang Developer Tooling: VSCode Extension and Debugger
Ortus Solutions, Corp
 
How to debug ColdFusion Applications using “ColdFusion Builder extension for ...
How to debug ColdFusion Applications using “ColdFusion Builder extension for ...How to debug ColdFusion Applications using “ColdFusion Builder extension for ...
How to debug ColdFusion Applications using “ColdFusion Builder extension for ...
Ortus Solutions, Corp
 
Web Hosting with CommandBox and CommandBox Pro
Web Hosting with CommandBox and CommandBox ProWeb Hosting with CommandBox and CommandBox Pro
Web Hosting with CommandBox and CommandBox Pro
Ortus Solutions, Corp
 
Revolutionizing Task Scheduling in ColdBox
Revolutionizing Task Scheduling in ColdBoxRevolutionizing Task Scheduling in ColdBox
Revolutionizing Task Scheduling in ColdBox
Ortus Solutions, Corp
 
Disk to Cloud: Abstract your File Operations with CBFS
Disk to Cloud: Abstract your File Operations with CBFSDisk to Cloud: Abstract your File Operations with CBFS
Disk to Cloud: Abstract your File Operations with CBFS
Ortus Solutions, Corp
 
How to Break Your App with Playwright Tests
How to Break Your App with Playwright TestsHow to Break Your App with Playwright Tests
How to Break Your App with Playwright Tests
Ortus Solutions, Corp
 
Securing Your Application with Passkeys and cbSecurity
Securing Your Application with Passkeys and cbSecuritySecuring Your Application with Passkeys and cbSecurity
Securing Your Application with Passkeys and cbSecurity
Ortus Solutions, Corp
 
Schrodinger’s Backup: Is Your Backup Really a Backup?
Schrodinger’s Backup: Is Your Backup Really a Backup?Schrodinger’s Backup: Is Your Backup Really a Backup?
Schrodinger’s Backup: Is Your Backup Really a Backup?
Ortus Solutions, Corp
 
Design system: The basis for a consistent design
Design system: The basis for a consistent designDesign system: The basis for a consistent design
Design system: The basis for a consistent design
Ortus Solutions, Corp
 
ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...
ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...
ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...
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
 

More from Ortus Solutions, Corp (20)

Intro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AIIntro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AI
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
 
BoxLang Developer Tooling: VSCode Extension and Debugger
BoxLang Developer Tooling: VSCode Extension and DebuggerBoxLang Developer Tooling: VSCode Extension and Debugger
BoxLang Developer Tooling: VSCode Extension and Debugger
 
How to debug ColdFusion Applications using “ColdFusion Builder extension for ...
How to debug ColdFusion Applications using “ColdFusion Builder extension for ...How to debug ColdFusion Applications using “ColdFusion Builder extension for ...
How to debug ColdFusion Applications using “ColdFusion Builder extension for ...
 
Web Hosting with CommandBox and CommandBox Pro
Web Hosting with CommandBox and CommandBox ProWeb Hosting with CommandBox and CommandBox Pro
Web Hosting with CommandBox and CommandBox Pro
 
Revolutionizing Task Scheduling in ColdBox
Revolutionizing Task Scheduling in ColdBoxRevolutionizing Task Scheduling in ColdBox
Revolutionizing Task Scheduling in ColdBox
 
Disk to Cloud: Abstract your File Operations with CBFS
Disk to Cloud: Abstract your File Operations with CBFSDisk to Cloud: Abstract your File Operations with CBFS
Disk to Cloud: Abstract your File Operations with CBFS
 
How to Break Your App with Playwright Tests
How to Break Your App with Playwright TestsHow to Break Your App with Playwright Tests
How to Break Your App with Playwright Tests
 
Securing Your Application with Passkeys and cbSecurity
Securing Your Application with Passkeys and cbSecuritySecuring Your Application with Passkeys and cbSecurity
Securing Your Application with Passkeys and cbSecurity
 
Schrodinger’s Backup: Is Your Backup Really a Backup?
Schrodinger’s Backup: Is Your Backup Really a Backup?Schrodinger’s Backup: Is Your Backup Really a Backup?
Schrodinger’s Backup: Is Your Backup Really a Backup?
 
Design system: The basis for a consistent design
Design system: The basis for a consistent designDesign system: The basis for a consistent design
Design system: The basis for a consistent design
 
ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...
ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...
ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...
 
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
 

Recently uploaded

Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
Awais Yaseen
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 

Recently uploaded (20)

Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 

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!