LavaPE is a programming environment for the experimental object-oriented programming language Lava.
The pure point-and-click nature of Lava programming and the concise representation of programs as declaration trees with small chunks of executable code simplify programming, and ease comprehension.
The new Lava language attempts to combine the advantages of either, and also to propose solutions to a number of fundamental problems that are hard to solve and that have been more or less ignored therefore by other languages so far.
Clearly this cannot be achieved by essentially combining individual features of Java and Visual Basic and by adding further features. A completely new language had to be developed from scratch.
Lava attempts to overcome the "ancient" programming technology that is based on text editors and that requires detailed knowledge and meticulous observation of the syntactic rules of the respective language.
Structure editing has many advantages over text editing and has the potential to considerably increase the programmers' productivity.
The conceptual framework of object-orientation can still be improved considerably in several respects:
· Interfaces and implementations should be strictly separated. (Remember Modula-2 and Ada!)
· Two categories of objects, state and value objects, should be distinguished.
· A unified view of object- and component-orientation should be provided.
· "Genericity" and design patterns should be supported properly.
· The necessity of "type-casts" should be overcome.
The general conceptual framework of programming languages calls for additional improvements:
· The data flow of programs can be clarified by "single-assignment" just as the control flow has been clarified by abandoning "go to".
· We need an application-level pointer notion to distinguish "constituents" and "acquaintances" of objects.
· "Embedded SQL" should be finally replaced by seamlessly integrated expressive means for database access,
· Multi-threading, transactions, and synchronization should be treated in a purely declarative way.
· Programming languages should become "organization-aware" and "security-aware".
What's New in This Release:
· Release 0.9.0 turns Lava into a language (the first one?) that completely prevents inadvertent access to uninitialized variables and null objects already at programming time by complete static initialization checks.
· The new optional initialize clause of the declare construct will facilitate the creation/initialization of collections of Lava objects with mutual/circular/forward references.
· The semi-automatic Lava GUI generator allows you now to assign event handlers to certain basic GUI events.
In a hurry? Add it to your Download Basket!
What's New in This Release:
- The user interface of the Lava Programming Environment LavaPE and of the Lava interpreter is no longer based on the MDI (Multiple Document Interface) concept but on tabbed and splitter widgets, which provide more neatly arranged, non-overlapping windows. The state/value object distinction has been slightly revised once more. "Virtual types" may be declared "final" now. Lava has been ported to Mac OS.