34 ms·
I used Envy from 1992 to 1993 on a prototype project to replace Sybase SQL server. It impressed me deeply for two reasons. 1.) It was directly embedded in the
by hodgesrm 9y ago
I used Envy from 1992 to 1993 on a prototype project to replace Sybase SQL server. It impressed me deeply for two reasons.
1.) It was directly embedded in the development environment. Just saving a method would check in the change automatically and make it sharable across the team. This was at a time when most people either not using source control at all or wrestling with cumbersome systems like SCCS. Combined with Smalltalk's built-in dev environment, it is still the easiest source control system I have ever worked with, as least from the developer perspective.
2.) More interestingly, Envy also made metadata about the code base and versions of code easily accessible. Not everyone knows this now, but Smalltalk was unique in that the entire environment above the level of the VM was built in Smalltalk itself and not only available for introspection but for modification. For instance, even execution stack frames were objects that you could see and edit directly to change their behavior. (Not a good idea I soon learned.)
Getting to the point, you could easily introspect every change to code and by combining introspection of classes and methods quickly determine which changes were happening where. We built a test framework that could list the changes since the last run, then compute dependencies and run an appropriate selection of test cases to check. This cut down test time by 90% or more for new changes. Because the dev environment was pure Smalltalk it was easy for us to integrate this this back into the tools so that it was available just by pressing a button.
Many of the ideas of Smalltalk such as VMs, self-documenting methods and classes, and auto-compilation made their way into other languages and products. However, I have never encountered anything quite like Envy since. It displayed the same level of transcendent innovation for developer productivity that characterized the original Xerox PARC windowing system for desktops.