Julian Script Engine (JSE) can either run as a standalone application, or as a Java Runtime extension. In either case, Java 8+ is required.
To launch the engine with a script file, run jse.sh -f script.jul
To launch interactive console, run jse.sh -i
To use Julian as a Java Runtime extension, see here.
To develop Julian in Eclipse IDE, follow this tutorial.
To add as an Apache Maven or Gradle dependency, go to the bottom of this page.
class MyClass : ParentClass, InterfaceA { // Declare class with parent class and interface.
private int v = 5;
MyClass(v, s) : super(s){ // Calling ParentClass's constructor
this.v = v;
}
int getValue(){
return value + MyClass.BASE;
}
static const int BASE = 10; // static members
void funa(){} // Implementing InterfaceA
ParentClass funa(int v){ // Method overloading
return this; // Refer to current instance
}
}
Julian is designed with a primary goal from its inception - help programmers to quickly externalize the business logic by converting managed code into scripts with minimal efforts.
It's not an easy task to port, in a massive fashion, your managed code to scripts. If we look at those major JVM languages today, none of them is really close to Java. The conversion efforts are not only limited to adopting new syntax, but they also lie in the cost of a course-change in thinking process due to the philosophical differences between the languages.
Adding to this is the reality that most backend engineers are usually more familiar and comfortable with Java/C#. To learn a new language that differs in archetype would require days if not weeks; to master them to the extent that one can confidently implement any sufficiently complex business model would be an even more intimidating task to achieve.
This is where Julian comes to rescue. Essentially an interpretive implementation of the core features of Java/C#, it's the perfect target script language you would like to migrate business code to. Even more, the server programmers may keep the same mental model and design methodology when they work with Julian.
To use as an Apache Maven dependency, add the following to pom.xml
:
<dependency> <groupId>info.julang</groupId> <artifactId>JSE</artifactId> <version>0.1.34</version> </dependency>
To use as a Gradle dependency, add the following to build.gradle
:
dependencies { implementation("info.julang:JSE:0.1.34") }