Last updated at 2005/07/10 22:53:07 PDT by Temporal

This is the home of the Evlan project.

What is Evlan?
Evlan is (or, will be) a programming language and a virtual machine, similar to Java/JVM or C#/.NET, but with many advantages. While Java and C# are essentially small extensions to the 35-year-old C/C++ software paradigm, Evlan makes a point of being very different. Evlan attempts to take many of the cutting-edge ideas in the programming language world today and combine them into one unified system.

Some of the highlights of Evlan include:

Capability-based Security
Writing secure software is far easier in Evlan than in C or even Java. Because Evlan uses capability-based security, it is entirely possible to write large programs which can be proven to be secure. Furthermore, capability-based software is far easier to contain, allowing you to run programs which you do not trust without having to worry about security. It is practically impossible to write most malware (adware, spyware, viruses, etc.) in Evlan. Meanwhile, most legitimate programs will be only slightly inconvenienced, if at all. Therefore, as an end user, you should desire software that uses capability-based security, and by running software written in Evlan you can meet that desire.

Purely Functional Core
Evlan is, at its core, a purely functional language. In contrast, most popular programming languages (like C, C++, C#, and Java) are imperative. Functional languages are known to encourage cleaner programming practices, require less code, and allow more aggressive optimization. In short, functional programming means reduced development costs and higher-quality code.

Advanced Type System
Evlan's type system is far more expressive than any current popular language. This allows programmers to tell the compiler more about what their code is doing. The compiler can use this information to find bugs in the code, greatly reducing debugging and testing costs. It can also use the information to perform more aggressive optimization, making the software perform better.

Visual Software Assembly
Evlan programs can often be assembled visually, through a GUI, by "hooking up" components like you would "hook up" a VCR, with no actual programming required. This means that end users with no programming experience will often be able to build custom software tailored for their needs. At the same time, experienced software developers will be able to design software at a high level far more quickly.

Architecture Independent
You would expect software written in any modern programming language to run on multiple operating systems and hardware platforms without modification. Evlan goes further. Most popular languages, including Java and C#, are based on a decades-old concept of computer architecture in which a single CPU tries to perform an ordered list of operations very, very fast. This architecture has worked well, but we are quickly approaching hard physical limits on the speeds such systems can achieve. Evlan, on the other hand, is not tied to any such design. If most software were written in Evlan, it would be far easier for hardware manufacturers to experiment with very different architectures, such as massively parallel systems, while still being able to run the same software.

Small and Efficient
Despite all its abilities, Evlan strives to remain small and efficient. As of this writing, the prototype Evlan implementation powering the evlan.org server has been shown to use only a small fraction of the RAM that a typical Java-based server would use. With optimization, Evlan should only get better.

A VM now, an OS later
Evlan can run efficiently on top of several operating systems, next to your existing software. However, in the future, it will be easily possible to run Evlan as its own operating system. Due to the nature of Evlan, an OS designed for no other purpose than to run Evlan programs would be massively smaller and more efficient than current OS's designed to run C-based software.

Flexible Syntax
Evlan is both a programming language and a virtual machine. However, the virtual machine is not tied to the language. It is possible, and in fact quite easy, to write compilers from many different languages to the Evlan VM. There are some limitations -- languages which allow pointer manipulation, like C, simply can't be supported for security reasons -- but most modern languages should be possible to implement.

Evlan is a work in progress. Although a prototype exists which is capable enough to run the evlan.org web server, it is not considered a production-ready system at this time, and it does not implement all of the above features.

evlan.org © Copyright 2003-2005 Kenton Varda
Powered by Io Community Manager, Evlan, and FreeBSD