[XPS-devel] Summary of recent discussions...
Status: Alpha
Brought to you by:
raspencer
From: Saem G. <sae...@sh...> - 2004-12-15 22:07:09
|
This is a summary of recent discussions between Reid and Saem. If any particular topic interests you or you have questions about them, start a new thread with that being the focus. First off, the project isn't dead. There is also an underlying tone of a little bit of urgency, lest we're left behind, jetbrains is already working on MPS (http://www.onboard.jetbrains.com/articles/04/10/lop/). The aim is the to make programming easier for non-programmers, such that they can not only be experts in their field but express that expertise to develop a computer program. There are issues on the tool side as well. Both Reid and Saem agree that the format of programs and source code, the way they're stored and the IDEs that edit them need work. Programs and libraries of reusable components should be stored in a database of some form. IDEs should be more powerful such that they can be more than a faster means to edit text, rather they should provide a lot of helpful suggestions based upon how and what you're doing. Reid agree, but feels the benefits of such aren't as dramatic as Saem. Instead, Reid feels that there will be greater benefit from an IDE working on a more macro scale and helping the user combine larger components. I think in this matter, there is room for both, creation versus derivation. It was agreed that programs are created best with an iterative or evolutionary process. However as the things went further down discussing software engineering it was decided that it was too tangential a discussion to persue. This would be revisited, however. The two issues slowing down XPS right now are LLVM going to 1.5 for portability features and linking syntax with semantics and generating efficient code. Both agreed that having languages work with each other is going to be key. The issue is how much cooperation is going to be allowed. Saem proposed a C interface which most language can work with. Reid, basically agreed and thought that there should be a few common things (strings and data structures) and the rest should be met with you can't do that in XPS from XYZ. Saem put forth the use templates and macros for translation of higher level source to core XPL. This allows one to fairly easily define syntax and semantics. Reid countered with having far too many layers for transformation and that code transformation isn't particularly good in terms of optimization unless the user does a lot of heavy lifting. Reid wanted a way to easily extend the compiler to understand new languages and language features natively by the compiler. Saem agreed and templates and macros fell from being the main thrust of extension. Namespaces and versioning came up. Fortunately, namespaces were already addressed even at the workspace level. This should hopefully avoid domain specific terminology collisions. Versioning is still unresolved. Reid and Saem agreed that versioning must be solved by the programming system; however, Reid wasn't sure he wanted he wanted it in the language or visible by the user, while Saem wanted it as a first class citizen in the form of changesets and incorporated into referencing components and code. Reid countered that there are companies which have versioned on per character and that mess should be avoided and a DSL might be up to solving the problem. Reid felt that it might be best if interfaces and implementation were versioned, that and they should play nicely from development, testing, integration, staging and production scenarios. Inheritance and it's pros and cons in terms of describing semantics was considered. Saem initially thought that this would be enough. Reid countered with an example, showing that fuzzy logic is more than a double and specialization/categorization wouldn't really cut it, in fact composition would be superior in most cases. Reid added that categorization would be completely ineffectual in terms of dealing with completely new types of semantics and that is likely the larger issue, creating semantics. |