Tuesday, January 19, 2010

The Future of ASF+SDF and The Meta-Environment

Many of you have noticed; Rascal is in full swing while development on the ASF+SDF Meta-Environment has slowed down. In this post we will inform you what the plans are and provide some motivation.


The short story
is that Rascal is the successor of ASF+SDF and the Rascal Meta-Environment (based on IMP) is the successor of The ASF+SDF Meta-Environment. The ASF+SDF Meta-Environment will be distributed and maintained still, but most of our effort will be spent on Rascal.

The future of Rascal will be discussed in detail in a future post, as well as the future of the "PDB Values" (program database values) library/plugin that is used in the Rascal implementation.

The future of ASF+SDF is limited to small bug fixing. We will not make any changes to ASF+SDF anymore. Rascal has (if not will have) all the features of ASF+SDF so it has become obsolete. We might fix some bugs on request, but only if time permits. The distribution of the source code of ASF+SDF will continue as long as possible (at least a few years). Binary distributions will be made available if time permits. Note that ASF+SDF and SDF are used in the implementation of Rascal.

The future of SDF is guaranteed for now. We will continue to maintain SDF as we have done in the past years. This means all bugs will be fixed and releases will be made when necessary. SDF has a large user group who we would like to keep satisfied. We are open to feature suggestions and enhancements, but we explicitly solicit for help in implementing them. Let us know if you have an affinity with SDF and its algorithms and you want to contribute. We are also open to suggestions for new approaches to parsing.

The Meta-Environment lives on as The Rascal Meta-Environment. The features of the Meta-Environment as a language-parametric IDE are largely made obsolete by Eclipse and Eclipse IMP. By connecting Rascal to IMP we have constructed a new Meta-Environment: The Rascal Meta-Environment. The brand name "Meta-Environment" will therefore live on in this product. As time progresses, more and more grammarware and language workbench features of the ASF+SDF Meta-Environment will be ported to the Rascal Meta-Environment.

The future of ToolBus is not yet completely clear. The latest version of the ToolBus - ToolBusNG - is scheduled to survive. It may or not may be used as a part of the Rascal Meta-Environment. The C version of the ToolBus is out of service.

The future of the ATerm libraries is guaranteed. The ATerm libraries are to be maintained indefinitely. They have found widespread use which merits a continued investment. Few extensions or enhancements are to be expected. This statement also holds for the shared-objects library. The ATerm libraries are not used as the basic symbolic data representation and computation vehicle for Rascal. Instead Rascal is based on IMP's PDB values, which are a superset of the ATerm data-type including sets, relations and maps for example. You may expect more information on PDB values in a future post.

The future of JJTraveler is undecided. Although we have maintained it for a while and it is used by the ATerm library, we have received limited feedback. We expect hardly any enhancements or extensions to JJTraveler. Type-safe tree traversal (and other data-structures) is a feature of Rascal. Most of our own code that needs such a feature will therefore be written in Rascal.

There is no future for ApiGen. ApiGen is a tool that is used in implementing and bootstrapping the ASF+SDF Meta-Environment. As such it will be maintained while the ASF+SDF Meta-Environment is online. Apigen will not be distributed or maintained for development outside of this purpose. Although ApiGen is an extremely useful tool for ATerm programming, we feel its error reporting capability and usability does not warrant further distribution. Rascal provides an alternative way of manipulating symbolic data (like ATerms) in a high-level and type-safe manner. We expect Rascal code to replace all our C/Java+ATerm based code in the future.

Thank you! We are proud to contribute to the ASF+SDF Meta-Environment and happy to keep it online for the near future. Thank you for your use, applications, support and research in the past 10 years! We hope that we have given you a clear picture of what to expect from us with respect to ASF+SDF and related software. Look out for Rascal, its the future of The Meta-Environment!

The Meta-Environment Team