[plt-scheme] SGDL PDE
Roby,
> I wonder, why did you decide to implement a new PDE rather than
> building of DrScheme? Although many of the things on your list aren't
> in DrScheme, it is possible to add all of them, without even modifying
> DrScheme's source.
Good question. There are a number of reasons:
- I began developing a very simple application in order to learn some of the
DrScheme collections (MrEd, framework, web-server). As I added features,
it took the form of a real whole PDE (support for editor buffers, project
tree,
etc.). Now it's core infrastructure is very similar to NetBeans' one
(you have nodes, actions, cookies, buffers, low-level services, etc.).
It's pretty clean and independant from any type of projet.
- I wanted some features to be project-aware. For example, the syntax
validation tool detects symbols not defined in the whole project, not just
in
the current file, without relying on any module system. Also, we have a tool
that checks source file dependencies in order to generate the proper
sequence of calls to 'load' for loading the project in our 3D rendering
engine. All this is done in order to be as R5RS compliant as possible,
without
relying on any Scheme system-specific feature.
- Deploying (packaging, testing, documenting, etc.) an application is a
time-consuming task, as you certainly know. It usually takes me less time
designing/coding the application than deploying it in a commercial setting.
I didn't want to add to the latter task. Building our own PDE means that we
can stick with a particular version of DrScheme, with worrying that users
will ask to upgrade it to another version. It also means that we only have
to document the features we develop. Otherwise, we'd have to integrate both
sets of documentation. And the look and feel, and style would differ. Also,
building on a stripped down version of DrScheme was not very attractive.
- Modifying DrScheme and selling those modifications means that you have to
make those modifications freely accessible. We did not want that for some
reasons. We may later revise this position. But in the meantime, we decided
to develop everything from scratch.
Dominique Boucher