Fog Creek Software
Discussion Board

Is a source management system useful for Delphi?


Please excuse my bad English. I am very drawsy and English is not my native language.

I would like to ask you a question, but at first, please bear with me - I'd like to write a little theory:

Software development is divided into many worlds. For example, there is the C and C++ world. There is also the Delphi world, which is vastly different. There is a Java world. Etc.

Let's take Python, for example. People claim that Python is a great productivity improvement, and that Python programmers are extremely productive compared to other programmers.

I have learned Python pretty well, and, indeed, it is AMAZINGLY productive, when compared to C++. :-) Using Python is a great productivity boost.

But, when I compared it with Delphi.. well, I could write the "guts" of the application faster in Python, but the gained time was quickly consumed when I made the GUI part of the application, and doing this in Python took 3 times more than doing it in Delphi.

So - the phrase "Using Python increases your productivity" is very true in the C++ world, but definitely untrue in the Delphi world.

When saying something, people usually talk about the C++ world, because a lot of development is done in C++.

I have heard many times that a source code management system like CVS or MS Visual Source Safe is extremely useful for developers, and that it helps productivity a lot.

My question is - is this affirmation true only in the C++ world, or is it also true in the Delphi and RAD world?

Currently, source management in my (3 developers) company is performed like this:

1. We try to keep the product as modular as possible.

We have naming conventions for modules - all source files of module ABC have a name starting with "ABC", so it's very easy to select and manage a whole module using Windows Commander (which is a good Norton Commander clone for Windows).

2. Every module is "owned" by someone, who is the only one who has the right to modify that module.

3. If I need to modify a module for which I have ownership, I modify it right away, work on it, and when it is complete, I update the "master source" which we keep on a network share.

4. If I need to modify a module for which I don't have ownership, then I talk to the developer who has ownership, and take the ownership of the module from him (he can let me do this immediately, OR ask me to wait until he's done with the module, OR perform the modification for me).

5. Daily backups are performed on the "master source", burned to CD, and stored off-site (I usually take them home).

So, can a source management system improve our productivity, compared with this system which is already in use?

Which source management system is best for Delphi developers?

Which source management system is the most productive? (in the Delphi world, dropping to a command line shell to run arcane command lines is not considered productive)

Michael K.
Sunday, May 4, 2003

First, if you like programming the "guts" of an app in Python but still prefer doing the UI in Delphi (and who wouldn't), I've got the perfect thing for you:  "Python Delphi".  It's written specifically to let you do just that.  I discovered it a number of months ago when someone mentioned it here on JoS.  Still haven't used it but it looks cool:

Second, yes, a source code control system will give you things you don't have with your current setup.  If you want something to integrate into the Delphi IDE you might want to investigate SourceConnexion, which integrates most popular sytems into the Delphi IDE:

Herbert Sitz
Sunday, May 4, 2003

In Delphi, I use FreeVCS, and have been pretty happy with it. It's free (recently taken up by Project JEDI), reasonably full featured, and integrates with Delphi if you want.

Tim Sullivan
Sunday, May 4, 2003

Thank you, Tim and Herbert, for your replys. I shall look into both alternatives.

Another thing I would like to mention is that we often work on "crippled" versions of the program.

For example, I have ownership of the module M, and in order to develop it as quickly as possible, I need to do destructive modifications to the rest of the program (like, for example, perform a minimum necessary actions, then start module M directly, or feed module M some hard-coded fake data, in order to test it better).

So, I copy the master source, modify it (cripple it the way I need it in order to work faster), work on module M, and when the module is finished, update the master source only with the sources of module M.

Can a source control system do this?

Thank you!

Michael K.
Sunday, May 4, 2003

Yes Michael K.  Any decent source control system will let you branch the source and pull it for whatever reason, you can then keep that testing branch live and merge later changes in the main development into that testing branch.

Simon Lucy
Monday, May 5, 2003

Michael K

If you prefer to program entirely in Python, rather than mixing it with Delphi, you might take a look at the Boa Constructor IDE. To quote:

    "A RAD GUI building Python IDE.
    It is built on wxWindows, wxPython and Python.
    Boa Constructor as an IDE Boa was inspired by and aspires to Delphi."

There's also PyCard, which is a brilliant tool for knocking together quick-and-dirty solutions.

David Roper
Tuesday, May 6, 2003

Thank you for the information.

I have already used BOA Constructor. Great software, but it's in very early beta stages.

I haven't worked with it for an year, tough.

I shall also try out PyCard, or PythonCard.

Michael K.
Friday, May 9, 2003

*  Recent Topics

*  Fog Creek Home