Who might be interested in Lava?
To give yourself an answer to this question you should take the following facts into account:
-
Lava is an experimental programming language whose primary purpose is to demonstrate the superiority of structure editing tools, in combination with a number of advanced language features that together may help us to reduce the complexity of application programming and to considerably increase the productivity of programmers in this way:
- Minimum language learning effort by using structure editors rather than text editors.
- Ease of program editing by point-and-click operations; text entry only for comments, constants and new identifiers.
- No syntactic errors; other formal errors are either prevented, likewise, or reported immediately at the moment when they occur.
- Improved object, component, genericity and other concepts that are at least worth to be investigated and tried out in an experimental language like Lava .
- The Lava development is still in an early state; Lava cannot yet be used for serious software production projects. But for the same reason the Lava development is still open and can still be influenced by people who are interested in the general approach of the Lava project and who would like to contribute to its further development and refinement. For instance:
- Lava lends itself as a test-bed for experimenting with new methods of program analysis and program synthesis, program transformation and generative programming, since a Lava program is constructed directly as a kind of Abstract Syntax Tree (AST); it is stored as a serialized AST, and it is interpreted as an AST by the Lava interpreter. So you need not invest into a compiler and apply modifications to it if you are interested in the above-mentioned topics but you can immediately use the AST representation of Lava programs.
A particular kind of program transformation or code generation would be the generation of graphical abstractions of existing Lava programs, for instance all kinds of UML diagrams that might be useful to illustrate specific aspects of a Lava program. These would be very welcome supplements to our existing Lava programming environment.
Taking all this into account, a short answer to the above question could be:
Lava might be of interest
- to people who are generally interested in the further development of programming languages, particularly of object-oriented languages with support for components and design patterns,
- to people who appreciate the principle approach of Lava and would like to influence its further development, or to contribute additional features, or to work on features whose implementation is still missing, or to port
Lava/LavaPE to other platforms,
- to people who teach object-oriented programming and who would like to benefit from the advantages mentioned in 1. above. The current state of Lava should suffice for small sample programs, and we would be very happy if remaining deficiencies of Lava or its implementation would be revealed this way.