EJB design: XML extensibility applied to Java
I would like you to tell me what you think about a project I posted on sourceforge.net a few months ago: the JEX project.
- Posted by: Patrick Bernard
- Posted on: March 13 2003 15:02 EST
JEX (Java Extension) is a programming language based upon Java with built-in extensibility. With JEX, a project is an XML document describing the various libraries, classes, methods, etc... JEX provides a set of XSLT transformations to generate the Java class files following the JVM specification. JEX programmers can write JEX projects or work at a higher level and provide a XSLT transformation to translate down to the JEX specification (defined by a XML Schema). See the examples with UML and Design Patterns.
I am an old programmer (first started last century in 1980 while at school). I have seen many programming languages passing by and I am tired of rewriting everything from scratch every time.
I would like Java to be the last language. To achive this goal we need a much faster evolution. JEX is here to offer this language evolutivity by letting the programmer add the structures he/she needs - when needed.
Let me know what you think about JEX.
Sounds interesting technically. However why not just write libraries and reuse them? Unless you are talking about adding language features such as: Structs, Enums, Generics, etc.
If that is the case then I would argue that any language that allows anyone to add whatever constructs they want at any time is doomed to failure. Because with each change you have created a new language.
blah, blah, blah
So far every major language is defined as a line where each revision (Java1.1, 1.2...) is a point.
My plan is to define the JEX language as a tree. The standard comittee (myself for now) sets the root. Anyone can then draw a line from the root or any existing endpoint to a new point (which defines a new language - simple to learn from the existing origin).
If a branch of the tree gets too heavy (very popular starting point for new projects), the standard comittee will integrate it too the root.
A bit like the internet naming system. A standard instance controls the top level names (.com, .net...). Some other instance defines lower levels (for instance a corporation, can decide to add some specific constructs to Java).
And so on.
I am trying to reduce the stress on programmers by avoiding the jump from a language to the next generation, by making the transition smoother.