Demands to provide a VisualAge part offering syntax based structured code presentations (based on Scintilla) pop up from time to time, but are not realized up to know for obvious reasons.
Architecturally its like demanding a fundament on top of the roof of a house. Is like a hen - egg problem. Or to ask for a part encapsulating the VM underneath, running the whole contruct above. Or asking for multiple inheritance.
The existant code manipulation is the target of the tool environment (EtWindows etc) where the VisualAge Part world is built upon, under the implicit general requirement, that any tool support has to be removable underneath later on, at the end of the development phase, providing a runable application without development artefacts (the process of packaging) or to create a runtime image.
And another reason of this is its complexity. For a fullfillment, such a part would depend on too many things, thus being not being maintainable economically. The trend here is even that this becomes worse recently, by integration of AI (and the whole infrastructure to provide this) underneath to support coding.
A short survey of this aspect:
- Scintilla is not a widget in isolation, it is nurtured with language descriptions (rules, grammar), depends on DLLs etc., given from outside. This depends on all the syntax language details.
Smalltalk is here rock-steady, little fluctuations here since decades, but compare this to other languages and there frequent changes. - The feature depends heavily on graphic capabilties of the OS and this is in conflict to the strive of platform independency of Smalltalk. This is a permanent issue (e.g. Windows multi monitor, Wayland instead of X-Motif etc.).
- All code panes in the development depend on this and sometimes this fails persistently (since the beginning of its introduction). As a compromies, formatting is not offered everywhere.
Any encapsulation of this complex issues in a Visualage part endangers the break down of the existing complexity of the visual programming approach. To give an example (imagine consequences by yourself):
given the EtBrowser structure (base coding support), add Q&A tools (formatting, etc), add colored representations, add generator support (VisualAge e.g.) think about the in a mess cyclic dependencies with polynomial explosion (widget with /without formatting, widget per OS and OS graphic support system, hardware).
Given some strict base concepts (like strict hierarchical prerequisites) wont let you solve this.
To achieve the given existing reaslisation, the Scintily Support was added as a removable plug in, wherever it was needed, but not as a standalone application which could be selected as a prerequisite.
Given this, providing such a part would structurally imply that all the development related things (compiler, debugging, etc) would be forcibly integrated in any application making use of such a (ficticious) code view part.
Sometimes that succeeds, but up to know this is a nogo in packaging, on the way to provide a runtime image.
In the past, I remember this as night mare. To find out the reasons why the development enviroment was magically included in the packaged image, although it should not.
To make it clear - the color code support in the development is extremly helpful and a valuable benefit.
However the path how that has been achieved cannot be easely applied to or taken over in other architectural structures (like the VA part universum).
Kind regards
M