views:

646

answers:

6

I'm interested in finding something out. In Delphi the default since the begining when buying components has been to be able to purchase them with source (even if it might be a slightly more expensive option). This made sense in Delphi for a number of reasons, firstly Borland led the way by providing the full source of the VCL with every install of Delphi, but also having the source was considered essential since when you upgraded Delphi you had to recompile and sometimes Authors went out of business.

I'm interested in finding out whether any Delphi component writers out there have ever had reason to regret selling their component 'with source'? Has someone tried to release a competing product based on your code, or passed it off as their own?

The reason I ask is because it still seems to be the exception rather than the norm to provide a 'with source' option when purchasing an ActiveX control or a .NET assembly. Maybe a reassurance that people don't want the source for nefarious purposes might convince more component writers to allow source code to be purchased along with the component.

+3  A: 

Unless the component writer is using some form of obfuscation the source for any .Net assembly can be obtained by using reflector.

I've used this on assemblies from Microsoft as well as other vendors to track down problems in their code. In some cases I went ahead and patched the problem and recompiled it; but do that at your own peril.

Chris Lively
This may be practical if you want to find how they did one specific thing, but it is very impractical if you want to completely rebuild the source code for the application.
Yaakov Ellis
I'm not sure why you think it's impractical. Usually everything is compiled down into just a couple of assemblies which are very easy to rip apart.
Chris Lively
What method do you use to recompile the source that you don't have? I have never done this, but I can't imagine that you are copying code out of reflector...
Ed Swangren
Load the assembly into reflector. Right click on the assembly and select Export. It will recreate an entire project for you. At that point you can modify whatever you need then use visual studio to recompile the assembly.
Chris Lively
A: 

Isn't this of mainly historical interest? Nowadays I can get free, open source software that can do almost anything that paid-for software can. I firmly believe that except for some vertical markets, and a few very big horizontal market players, paid-for software is not the place to be. This goes double for Delphi software, unhappily.

anon
There are a lot of good open source / free components for Delphi, but you really ought to evaluate some of the top of the line paid component suits for Delphi. They are worth the money.
Jim McKeeth
I agree. Eureka Log is well worth my money, as is DevExpress. They make me much more productive. And since my time is worth actual money, I can quantify this and prove it saves me money.
Mick
For bigger and more complex suites the open-source is either not available or too buggy and may drop out of use in next Delphi version (for whatever reasons)
Riho
@Riho: That's a non-sequitur - enough commercial component sets stopped being updated for newer Delphi versions during the last years as well. At one time even DevExpress contemplated to get out of the Delphi business altogether.
mghie
@Mick: +1 DevEx. Ask it's thousands of customers about whether their stuff is worth paying for. @Riho: Not necessarily true, any more than it would be true for some .NET components and a new version of the framework.
Ken White
A: 

I have an issue especially with .Net skinning libraries. I have found none good enough that would include the code for a fairly economic price. I'm talking about prices that go over the $1000USD price line, which I think it´s astronomic for a freelance developer, for just a piece of software. But, those things that are harder to implement in each language are the most expensive as well, so there is a relation between those two factores in the difficulty of implementing something similar your self. I know this is no answer for your question, but my own view of things.

TuxMeister
A: 

I don't have personal experience with this, but I do know that source code watermarking is available and some vendors have used it. Not sure how successful it would be.

I have never heard news of anyone releasing a competing product with source code from another commercial vendor. It does however happen frequently with open source ones though.

Jim McKeeth
+7  A: 

I have personal experience with this. I used to sell a component and function library for Delphi (Clipper Functions for Delphi, AKA CFD); we went from version 1 in '96 to version 5 in 2000 when I took a job that wouldn't allow moonlighting. We had 5000+ registered users at the end; I still provide quite a few of them with free updates and occasional bug fixes.

I never had any reason whatsoever for not making source available. In fact, there was no option to purchase CFD without source. I wouldn't buy any commercial Delphi component library that my app would depend on without source, for the very reasons you cite (recompiling with new Delphi releases and vendors going away).

Ken White
I suppose you mean "I never had any reason whatsoever for *not* making source available"? :-)
onnodb
+1  A: 

For all Delphi components which I developed over the past 10 years, full source code was always included. It would however be a big advantage to have a compatible binary (DCU) format (similar to Java and .NET) in Delphi for trial versions, or for low cost 'personal editions' - versions which do not attract the real commercial developers, because of the missing source code. Compiling DCUs for Delphi 5,6,7,2006, 2007 and 2009 is possible (if the Delphi licenses are there), but managing so many different code versions requires a lot of work for automatic build and packaging systems ...

mjustin