What's hotter than Java?

Lava*)


an experimental object-oriented rapid application development (RAD) language
with type parameters ("virtual types"), refactoring, and extensive static checks,
that prevent inadvertent access to uninitialized variables and null objects
already at programming time.

The Lava programming environment LavaPE replaces text editors
completely by structure editors.

It provides an inheritance notion not only for single classes, but also for packages
(= collections of related classes, which may have type parameters, too).

See also the pertinent Wikipedia article and the articles linking to Lava.

Lava is an OpenSource project. The Lava sources are managed at

Get LavaPE at SourceForge.net. Fast, secure and Free Open Source software downloads



Release 0.9.4 of Lava/LavaPE is ready for download.

Release 0.9.4 is based on Qt 5.1.1 now; Qt 4 isn't supported any longer. A number of broken links has been fixed in the online documentation.

The demand for new software grows continuously. Existing software has to be changed and adapted to new requirements in ever shorter intervals. On the other hand, the possibilities to recruit foreign programmers or to increase the number of qualified domestic programmers are limited. Rather, we shall be able to cope with this challenge only

img if the productivity (or simply: the speed) of the programming process

img and if program quality, comprehensibility, and, as a consequence, program maintainability

can be decisively improved.

This means that we cannot stay with the presently popular programming languages like Java and Visual Basic. We have to aim for greatly improved programming languages and RAD programming environments that fulfill the following requirements:

img They relieve programmers from clerical and error-prone work, and in particular:

img they replace text-editing with structure-editing throughout the program development process.

img They prevent or detect errors already at programming time wherever possible, for instance the omnipresent dangers

img They are easy to learn and get along with a minimum number of orthogonal concepts.

img They support Lego-like composition and restructuring/refactoring of programs.

img They allow us to compose programs from small functions and classes that can be understood by themselves

img and decisively facilitate program comprehension in this way.

img They support smooth incremental transition from OO analysis to OO design and implementation.

img They unify what should not be separated ("embedded SQL")

img and separate what should not be intermingled ("interfaces and implementations").

img They facilitate reuse of certified components and proven design patterns *)

img from clearly documented component libraries,pattern libraries and pattern languages *).

The productivity of the software development process will be increased considerably in this way, and the costs of software maintenance and continuous adaptation to changing requirements will be reduced decisively.

The experimental programming language Lava and the associated LavaPE programming environment are based on a systematic analysis of all those problems that currently impair the simplicity of languages and tools and that in this way obstruct the productivity of programmers, and they offer solutions to quite a number of these problems.

The overall approach of the Lava/LavaPEproject is to combine an uncompromising point-and-click programming style with a more consistent, largely simplified and unified object-, component-, and pattern-oriented conceptual framework.

A particularly attractive feature of LavaPE is that it is perfectly point-and-click:

These and many other features make Lava particularly suited also for teaching object-oriented programming (and, to some extent, also OO analysis and design).

However, Lava isn't just the easy way of programming. According to the motto less syntax, more semantics Lava attempts to shift the programmer's attention and efforts away from the meticulous observance of complex syntactic rules towards a higher degree of "structured programming" and program comprehensibility. As a natural consequence, this requires also a higher degree of discipline, more conscious consideration, and it also involves more fine-grained semantic distinctions in the Lava language. The latter, in turn, enable more detailed consistency checks and facilitate the comprehension of the roles that the various Lava entities play in the respective application context. More thorough consideration is required, for instance, with respect to

For descendants of Ch. Morgenstern's "Mr. Korf", who like it short, here is a condensed list of the most outstanding features of Lava. You may also download our Lava project summary (1 page)

LavaProjectSummary.pdf (~90KB, in English)
LavaProjektBlatt.pdf (~125KB, in deutsch)

from our download page where you can find also some more comprehensive papers on Lava.

Before you download the Lava/LavaPE software (which includes the documentation) you may want to look into the web-based version of the documentation (JavaScript must be enabled): Ape destroys blue balloon

loupeLava Online Documentation

and hopefully you won't view Lava as a blue balloon thereafter (and this documentation as little more than Fish's Night Song) . . .

(But we would also be content if Lava would have the same effect on you as Korf's novel kind of joke.)


It is quite clear that Lava, which is currently being developed by two persons only, cannot compete with commercial products like Java and Visual Basic as to the comprehensive functionality, support, maintenance, documentation, training, etc..

LavaPE is now in a state where you can use it to produce little Lava programs and play around with them in order to assess the new Lava concepts and the new Lava look-and-feel of object- and component-oriented program development in pure point-and-click style.If you would like to discuss the Lava design with us or if you would even like to contribute one or the other component to the Lava development, then don't hesitate to contact us.


Imprint / Contact


Lava auf Deutsch?