PLE research directions

Some future directions for language research, collected from the PLE pages:

Introduction to Linguistics
Languages should continue to get simpler yet more powerful. The best languages will probably continue to be designed by small groups or individuals via many design iterations.

Language interpreters are programs themselves. If implemented as software libraries, interpreters can include bindings to themselves. This could provide an elegant form of reflection.

Sather lecture notes
Types and values should be unified. The increasing complexity of type-languages, when kept distinct from value-languages, mandates it. Types as values has traditionally been tabooed for efficiency reasons, but modern compilation technology and languages which do not emphasize efficiency (like scripting languages) open new doors.

Explicit efficiency vs. reuse tradeoffs should go the way of C's "register" annotation. Compilers should be able to figure out when a method can be non-virtual.

Forwarding has benefits over inheritance, and could very well replace inheritance.

Haskell lecture notes
Mainstream languages should embrace functional style and functional optimization technology. This should make pure functional languages unnecessary.

Lambda-Prolog lecture notes
Unification and constraints are useful tools but do not make good, simple building blocks for a language. Instead, they should be provided by standard library calls.

Life lecture notes
Combining ideas from different language camps is a profitable exercise. However, the resulting language should not be a patchwork.

Scripting is not necessarily the correct paradigm for a glue language. Better glue languages can be designed directly from the goals of component software.

Object management
The lack of object management is a major oversight of contemporary languages. Now that companies like Microsoft and IBM have fleshed out the implementation details, we should begin designing object management into our languages.

Thomas Minka
Last modified: Thu Mar 9 14:27:20 EST 2000