The Java Application Development Environment


Welcome to JADE the Java Application Development Environment. What we have here is one of those quests to achieve something that many feel is a fruitless exercise, a workstation environment that can displace Microsoft.


The idea for JADE came about in early 2000 when I was trying to figure out how to write some applications for my own use on the systems I had available at the time. The two choices were;

What I wanted was a system that was geared toward a small number of users (less than 10), had a strong set of address space protections to prevent system crashes from bad programmers, and was fast and extensible.

In spite of the crap Microsoft takes for windows, there are some things there you have to respect. And perhaps the most interesting thing is the DLL system. Windows is not so much an OS as it is a DLL loader. There are DLL's for everything and DLLs are a lot like objects. They export methods, they have data types, and they have some limited re-usability.

Microsoft also has a window system that isn't pretending its going over the network every time it puts a pixel on the screen. X11 was a great idea back in the 70's when the "server class" machine was sitting in a refrigerated room somewhere, now its just a stupid idea. My 1Ghz Celeron out performs the biggest Sun server of the day when X was born. A much better example of a window system was the Amiga's Intuition package. Now that was pretty fast and wrote right to the metal.

Finally there are calling conventions. My system uses Java, if you write your code in Java it will just compile and run on my system. If you write in C, C++, C#, BASIC, Visual BASIC, COBOL, or Python, well you'll have to go through some level of indirection to run on the machine. Tough. [ed - Can you see why Chuck has such a hard time getting people interested? :-)]

Architectural Layering

In a nutshell, JADE is a compiled Java environment that runs on top of  ECOS as the boot environment.  The GCJ compilation environment continues to support interpreted Java but generally it compiles Java into machine code. This makes it very fast code (as fast as C++ compiled code). Further, when you compile java.lang.* you find that even if you are interpreting the top level object (whatever it is) it runs pretty quickly. I would have used the HotSpot compiler but that's not a license I can afford yet.

The compiled base kernel is less than 3 MB compressed and about 7.5MB when decompressed into RAM. That leaves plenty of space for heaps and such on a 128MB system.

Too much of the code currently uses information that is under non-disclosure/licensing agreements. That is why you can't download it and play with it, sorry. If I can convince the major players to come up with some reasonable and non-discriminatory licensing terms that will change. Or if Sun or IBM decided to sponsor the work that would help too :-).

Back to Chuck's Java Stuff