Interpreted object oriented language based on Java.

Cali is an object oriented interpreted programming language written in Java. It is an efficiency (glue) language that is loosely typed. Cali has it's own standard library but anyone can create external Java modules to extend Cali. In fact, the entire standard library was written by wrapping Java code.

Some features worth noting:

  • Extensible with Java
  • Object Oriented
  • Loosely typed
  • Can specify argument types in method definition
  • Standard library includes wrapping of JavaFX UI
  • RPC, HTTP container/client, TCP/UDP sockets
  • Can load/execute code dynamically at runtime
/*
 * Extend rpcServer standard library class to host RPC interface. Client
 * allowed to call addToCart and getCart methods.
 */

include console;
include net.rpc;

include rpcDemoObj;							// Include our demo object.

class rpcDemoServer : rpcServer
{
	public main(args)
	{
		rd = new rpcDemoServer();
		console.println('Starting up rpcDemoServer on localhost:9090');
		console.println('Hit ctrl-c to kill the server.');
		console.println('Waiting for calls ...\n');
		rd.start();
	}
	
	cart = [];
	public rpcDemoServer()
	{
		this
			.add('addToCart')
			.add('getCart')
		;
	}
	
	public addToCart(object Item)
	{
		if(Item instanceof 'rpcDemoObj')
		{
			console.println("Adding item '" + Item.getModelName() + "' to cart.");
			this.cart @= Item;
			return true;
		}
		else { throw "Unexpected object exception."; }
	}
	
	public getCart()
	{
		console.println('Returning shopping cart.');
		return this.cart;
	}
}
Information updated 08/26/15
View Comments