Skip to main content

Groovy vs Jactl: An Honest Comparison for Embedded JVM Scripting

· 20 min read
James Crawford
Jactl Creator

Introduction

Java applications often choose to use an embedded scripting language for reasons including the following:

  • to provide a powerful customisation mechanism for users
  • to be able to change runtime behaviour without rebuilding/redeploying the application
  • for providing business rules/logic
  • per-tenant configuration for multi-tenant applications
  • rapid prototyping for new features

When selecting a JVM scripting language there are many options to choose from including Jactl, Groovy, Jython (Python), JRuby (Ruby), JavaScript, and Lua. Out of these, Groovy is probably the most widely used scripting language for Java applications. This article compares Jactl and Groovy in order to show their strengths and weaknesses and when you might choose to use one over the other.

Announcing Jactl 2.3.0

· 3 min read
James Crawford
Jactl Creator

Jactl 2.3.0 is a new release with enhancements and bug fixes.

Due to a missing announcement for release 2.2.0, this release note includes enhancements and bug fixes that were done in 2.2.0 and in 2.3.0.

Announcing Jactl 2.0.0

· 5 min read
James Crawford
Jactl Creator

Jactl 2.0.0 is a major release that fixes a few bugs and adds some new language features. The biggest new feature is powerful pattern matching with destructuring via a new switch expression.

Pattern Matching and Destructuring

· 13 min read
James Crawford
Jactl Creator

The forthcoming Jactl release (2.0.0) introduces switch expressions which provide the same functionality as switch statements/expressions in Java but, in addition, also provides the ability to do powerful pattern matching with destructuring that is common in many functional languages.

Advent Of Code 2023 - Day 9

· 4 min read
James Crawford
Jactl Creator

An easy day where we had to calculate the next number for each of a given set of number series. After stumbling on a stupid mistake with an iterative approach, the recursive approach worked first time and ended up as a much nicer solution.