Future |
The plan is for GOO to evolve in a number of dimensions. First of all, GOO's design is incomplete. Parameter lists and dispatch will be improved to allow methods of differing numbers of required parameters and named parameters. Lisp lists will most likely be deprecated and program fragments will be represented by a richer data structure which can capture source locations and hygiene information. This will be accomplished with minimal impact on macro definitions and WYSIWYG program construction and destructuring facilities. The module system will be improved to include in the very least renaming and selective imports. Finally, GOO will support a more complete loopless programming protocol inspired by Waters' series [5].
Secondly, the overall mission is to crank the implementation until its performance is competitive with Java while at the same time maintaining low-latency interactivity. The basic approach involves incremental whole program optimization using simple dynamic compilation combined with partial evaluation. One important optimization will be side effect analysis combined with a generalized box/unbox optimization to remove unnecessary creation of immutable enumerators and packers for instance. Similar analyses and optimizations will be employed to optimize loopless programming patterns involving map and fold.
Future |