[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: LFM + LFSP = LFE?





On Thu, 12 Jun 2003, Scott McKay wrote:

>   - Many organizations rely on some sort of source
>     version control systems, and I have yet to see
>     commercial-grade systems that use something
>     other than flat files.
>   - Who says that "files" are not allowed to obey
>     protocols that allow them to be accessed along
>     axes other than a "stream of bytes"?  The editor
>     I wrote for Harlqn/FunO Dylan treated source
>     files as databases, even though they happened
>     to be stored in flat files that could be checked
>     in to/out of traditional source control systems.

I made a point of saying in my earlier message that being able to
import/export plaintext source code files has a lot of value, particularly
since it allows integration with version control.  I do most of
my development in Squeak; I also use CVS to manage all of my source code.
The cost I currently pay for this is to press a button in Squeak to export
my package every time I want to commit, and import every time after I
update.  If this became onerous it would be easy to automate it further.

Note that this also means that I can always get a text file with my source
code if I wanted to edit it by hand or use grep, etc, on it.  I have
*never* done this.  Any question I want to ask or transformation I want to
do can be much better handled by the Smalltalk environment than by textual
tools that know nothing about the structure of the file.

To give you an example, if I wanted to count the total number of lines of
code in a particular class hierarchy, I would execute

FooClass withAllSubclasses detectSum: [:c | c linesOfCode].

However, it's not true that all version control systems use flat files.
Most commercial smalltalks have built in version control, at the method
level, backed by object or relational databases.  One of the first such
systems, ENVY, was also used I believed in Visual Age for Java.  I'm
currently developing a similar Squeak-based versioning system, since the
limitations of CVS are beginning to grate.