> Just to echo Aaron's remarks there a bit - Has anyone tried Energize ?
> This is a C/C++ environment based around Emacs which has a truly excellent
> integration between the compiler and the editor.
>
> It is a great example of the sort of things one wants from a development
> environment.
I was quite interested when I saw the demo video of Energise - for
those that don't know, it is an incremental compiler (native code, not
VM) and linker for C++ (which is more difficult to do than for Pop
because of the global effect of changes in macros and class
definitions). In some ways it was slicker than the VED/Pop11
combination, while lacking a same-language customisable editor or the
ability to compile and execute code imbedded in the documentation
files. However two things put me off, apart from the price. Firstly,
the sales types said they would have to come and configure it for our
projects. Secondly, a speaker at ECUG with a 300000 line project said
they had had severe problems when they had it in on review.
Another possible problem which I wouldn't be able to check without
running it, is that it gets its speed advantages by only recompiling
code (at the function level) that is genuinely affected by a change -
but for some commonly occuring changes in the header file, this might
still mean most of the project. For a large project such as the one
above, that could mean an 20 hour process because the AT&T compiler
engine used is *slow*.
Given the choice, I think I'd go for other, less clever, technology
such as Borland's fast parser (recursive descent rather than yacc
based - if anyone can tell me why that's faster I'd be interested),
precompiled headers and fast linker. I think the idea of incremental
compilation is great, but it only really works on strongly localised
languages such as BASIC and Forth, or ones in which global effects are
insulated by a layer of indirection such as Pop11 and Lisp. I just
wish there were an efficient (sorry, but it would have to be
non-garbage collecting and have stack-based objects to sell to me)
C-based OO language which was designed for IC. C++ is a step in the
wrong direction as far as this goes.
Nedd Ludd
(Scott Wheeler)
|