This project is read-only.


new name! the new name for the project is rokyt. The name will be official with the 0.2.0 release.


Kew is a powerful but small object-oriented programming language.


The original Kew programming language was developed by Duncan Pierce. The original project seems to have been halted a few years ago. So I have started development to continue the Kew programming language further.


High productivity

Kew has a strong dynamic type system that never gets confused about what type an object has - so no more casting and no more declaring the type of everything, cutting bloat.
Kew provides fast automated garbage collection, saving you from managing memory yourself. Kew programs don't leak memory or crash.
Its simple syntax turns you from a typist back into a programmer and its flexible interpreted/compiled use means you can develop quickly without waiting for the compiler, then compile when you want maximum speed.

An interpreter, JIT virtual machine and native code

Kew's modular compilation/interpretation engines support a combination of:
running Kew source code directly as a script with no compilation step
compiling Kew source to machine-independent bytecode that can be distributed safely and run on a Just-In-Time (JIT) virtual machine
compiling Kew source or bytecode to native code (via your system's C compiler) to produce a DLL / shared library

Object-oriented, based on closures

Kew has both objects and blocks, and both form closures. Closures can be used to great effect to produce simple and logical code. There is no inheritance - implementation sharing through lexical scopes and object composition is so simple it makes the complexity and unmaintainability of inheritance unnecessary.
In addition, Kew is designed to support programming in a functional (stateless) style. But it still has variables for when you need them.

Powerful built-in collections and control constructs

Kew has built-in collections, free conversion among its object types and powerful block-based control structures derived from functional programming.

Good security

Kew has built-in security features: armoring, which allows code to safely share internal data with untrusted code; and sandboxing, which allows untrusted code to be run in an environment where all its access to your network and your files is strictly controlled. The powerful security model makes it good for writing applets.

Fully reflective

everything in Kew is a first-class object: there is nothing that cannot be represented as a object or programmed with; even variables, even messages, even the container that runs the program.


Kew has an expressive module system where modules behave like extended blocks that are loaded by other modules. In Kew, all your code is a module, so even a Kew program can be loaded and used as though it were written to be a library!

Exception handling

Exceptions in Kew aren't just limited to reporting a problem and falling out to some code to handle it - they can call on code that fixes the problem in place, allowing the code to carry on.
Kew has first-class continuations (non-local jumps) built-in which allow you to implement Java-style "jumping" exceptions as well, and to jump out of deeply-nested loops in a single bound.

Embeddable and extensible

Kew has a very small core and consequently a very small minimum footprint. Everything else is loaded on top of this, making Kew ideal for low-memory applications. Kew's well-defined C interface and event-driven processing model also makes it suitable for embedding in applications as a scripting language.

Last edited Feb 3, 2009 at 3:17 AM by chunkie_man123, version 7