Delphi
-
I have a piece of software written about 8 years ago in Delphi 7, which gives me a modest recurring income. I used Delphi because I needed a solution where all the components were compiled into a single exe file - so I could have a simple and fail safe distribution / deployment process (it was a client requirement.) My clients have since grown larger - the time has come to re-develop the product. But I am at a loss to know what to development environment use. Delphi no longer seems viable. I started with C#, and found it was impossible to create a distribution package that is fail safe. Is it C++ with MS compiler, HTML5, asp.net or what ? I hate the idea of throwing away my Delphi code !
MikePF wrote:
I started with C#, and found it was impossible to create a distribution package that is fail safe.
Reason being of course that your binary deliverable isn't the entire program - it requires at least the same DotNet version installed on the client's PC as you had when you compiled. What you're after is something which can package all the dependencies together. Either as per Delphi by compiling them into your executable, or some installer which includes them into a install.exe file.
MikePF wrote:
Is it C++ with MS compiler, HTML5, asp.net or what ?
Depends. It's not a situation of the language. It's a situation of the libraries you're linking to. Nearly all those require a library to be installed in the client's PC, and not all of them would be available to all versions of Windows or (worse) they might only be available in certain updates or manual installs. E.g. HTML5 would definitely not work in a default XP installation.
MikePF wrote:
I hate the idea of throwing away my Delphi code !
If you want to stick with Delphi-like code, look at Lazarus. http://www.lazarus.freepascal.org/[^] Not 100% Delphi compatible, but I've found that porting code isn't an entire rewrite, and the IDE is a near Delphi 1:1 clone. Mostly it's a situation of library & class names which differ. Still has the capability of compiling to one EXE or dynamically linked DLL's. Added bonus: You can compile the same code to Windows (32 / 64 bit), Linux (32 / 64 bit) or even OSX. Minimal code changing needed unless you're using system-specific libraries. So you might be able to compile to each possibility (even if the client is on a different system). Note though even Delphi's default static linking only links in the Delphi foundation classes - these in turn dynamically linked to the Windows API. Same goes in Lazarus's FPC or any other static linking compiler: you can't statically link all the libs you're using (your program would basically constitute the entire OS). I don't really know of any other stuff which would compile to a single free standing executale. Even in python (or similar) you'd not only need the python engine, but also whatever GUI libs you used to program in (e.g. Qt / wxWidgets / GTK / etc.). Some
-
I have a piece of software written about 8 years ago in Delphi 7, which gives me a modest recurring income. I used Delphi because I needed a solution where all the components were compiled into a single exe file - so I could have a simple and fail safe distribution / deployment process (it was a client requirement.) My clients have since grown larger - the time has come to re-develop the product. But I am at a loss to know what to development environment use. Delphi no longer seems viable. I started with C#, and found it was impossible to create a distribution package that is fail safe. Is it C++ with MS compiler, HTML5, asp.net or what ? I hate the idea of throwing away my Delphi code !
-
Since people were complaining about things, I figured I'd give it a go as well. So far this afternoon, I have written 1 line of code and restarted Delphi XE2 twice due to crashes... X|
The United States invariably does the right thing, after having exhausted every other alternative. -Winston Churchill America is the only country that went from barbarism to decadence without civilization in between. -Oscar Wilde Wow, even the French showed a little more spine than that before they got their sh*t pushed in.[^] -Colin Mullikin
-
Use one of the great Delphi to C# translators and end your pain.
"Courtesy is the product of a mature, disciplined mind ... ridicule is lack of the same - DPM"
Unfortunately, Delphi is the primary language at the place I work, so this isn't an option... :((
The United States invariably does the right thing, after having exhausted every other alternative. -Winston Churchill America is the only country that went from barbarism to decadence without civilization in between. -Oscar Wilde Wow, even the French showed a little more spine than that before they got their sh*t pushed in.[^] -Colin Mullikin
-
Unfortunately, Delphi is the primary language at the place I work, so this isn't an option... :((
The United States invariably does the right thing, after having exhausted every other alternative. -Winston Churchill America is the only country that went from barbarism to decadence without civilization in between. -Oscar Wilde Wow, even the French showed a little more spine than that before they got their sh*t pushed in.[^] -Colin Mullikin
We sell a POS package that was developed in Delphi. I understand. Here is some ammo that may be able to used to sway them: o Delphi is a language that has been going through a long painful sunset since it did not become the "Kill-App" for Linux that it was introduced to be. o Development productivity could be increased several fold with the C# environment. o C# has several better SDK environments available than Delphi, e.g. VS2010, VS2012, etc. o C# has an huge number of extensions to accelerate development and eliminate the need to develop many parts of an App. and complete project. o C# developers are more plentiful than Delphi developer when the project needs more members or needs to replace someone who leaves. o There are several great inexpensive, proven Delphi to C# translators. o Delphi still has the Win 95 themes that make it look outdated. C# does not. o What may be interesting is to take one Delphi App that is not too comprehensive and convert to C# as an experiment. Then give them a report of what it took to do that. Do a demo to let them see how more current it looks, etc. Maybe they will listen if they look at it from a management perspective as well as a technology one. Good luck.
"Courtesy is the product of a mature, disciplined mind ... ridicule is lack of the same - DPM"
-
If your target is still a Win32 EXE there is no reason to use anything beyond Delphi 6. What prevents you from just enhancing your Delphi 7 code? If the target is now a web or mobile app, that's different.
-
MikePF wrote:
I started with C#, and found it was impossible to create a distribution package that is fail safe.
Reason being of course that your binary deliverable isn't the entire program - it requires at least the same DotNet version installed on the client's PC as you had when you compiled. What you're after is something which can package all the dependencies together. Either as per Delphi by compiling them into your executable, or some installer which includes them into a install.exe file.
MikePF wrote:
Is it C++ with MS compiler, HTML5, asp.net or what ?
Depends. It's not a situation of the language. It's a situation of the libraries you're linking to. Nearly all those require a library to be installed in the client's PC, and not all of them would be available to all versions of Windows or (worse) they might only be available in certain updates or manual installs. E.g. HTML5 would definitely not work in a default XP installation.
MikePF wrote:
I hate the idea of throwing away my Delphi code !
If you want to stick with Delphi-like code, look at Lazarus. http://www.lazarus.freepascal.org/[^] Not 100% Delphi compatible, but I've found that porting code isn't an entire rewrite, and the IDE is a near Delphi 1:1 clone. Mostly it's a situation of library & class names which differ. Still has the capability of compiling to one EXE or dynamically linked DLL's. Added bonus: You can compile the same code to Windows (32 / 64 bit), Linux (32 / 64 bit) or even OSX. Minimal code changing needed unless you're using system-specific libraries. So you might be able to compile to each possibility (even if the client is on a different system). Note though even Delphi's default static linking only links in the Delphi foundation classes - these in turn dynamically linked to the Windows API. Same goes in Lazarus's FPC or any other static linking compiler: you can't statically link all the libs you're using (your program would basically constitute the entire OS). I don't really know of any other stuff which would compile to a single free standing executale. Even in python (or similar) you'd not only need the python engine, but also whatever GUI libs you used to program in (e.g. Qt / wxWidgets / GTK / etc.). Some
thanks for your reply irneb. I had a look at Lazarus a while ago, but I am fairly certain it won't be acceptable to the client. They are thinking about the situation where I am not around to maintain the program - so would prefer a more mainstream environment. I think your suggestion of C# for DotNet 2 will be the only real option for me.
-
that was my first thought also - but the client is thinking about the situation where I am knocked over by a bus. I live in Australia, where delphi programmers are few and far between ...
Ah yes, I get that "hit by a bus" question quite often. I usually just tell clients that any programmer that can read English (especially a c# or java programmer) would have no problem taking over on a Delphi app. If they want to move away from Win32, I would move to a browser based app. The choices for development tools are endless and mostly underwhelming. I actually write browser apps by just creating the UI with HTML/CSS/javascript in a txt editor and then I write the server side piece (CGI) using Delphi (so then I still get to use the database and utility code that I've built over the last 15 years).
-
thanks for your reply irneb. I had a look at Lazarus a while ago, but I am fairly certain it won't be acceptable to the client. They are thinking about the situation where I am not around to maintain the program - so would prefer a more mainstream environment. I think your suggestion of C# for DotNet 2 will be the only real option for me.
Painful aint it? As someone else has suggested here any programmer worth their salt should be able to read and alter Delphi/Pascal/Lazarus code. There's nothing mysterious about it, it's not even a functional language - strictly procedural OOP. So even a junior should be capable of getting a bead on what's going on. Usually when some client tells me this, I ask in return: "So can you guarantee that the language you're choosing will be the main used one in 10 years?" So far the only "language" which foots that bill is C (perhaps C++ as well). But that's not the whole story is it? It's only 50%, what about all the libs - I find it near impossible to think a C# programmer would be able to jump into a C windows API program as easily as they'd be able to get into a Delphi one. As for web, sure - that might work if the situation allows for it. But that doesn't negate the situation of choosing a lang/lib combo which might not be "mainstream" in the future.
-
We sell a POS package that was developed in Delphi. I understand. Here is some ammo that may be able to used to sway them: o Delphi is a language that has been going through a long painful sunset since it did not become the "Kill-App" for Linux that it was introduced to be. o Development productivity could be increased several fold with the C# environment. o C# has several better SDK environments available than Delphi, e.g. VS2010, VS2012, etc. o C# has an huge number of extensions to accelerate development and eliminate the need to develop many parts of an App. and complete project. o C# developers are more plentiful than Delphi developer when the project needs more members or needs to replace someone who leaves. o There are several great inexpensive, proven Delphi to C# translators. o Delphi still has the Win 95 themes that make it look outdated. C# does not. o What may be interesting is to take one Delphi App that is not too comprehensive and convert to C# as an experiment. Then give them a report of what it took to do that. Do a demo to let them see how more current it looks, etc. Maybe they will listen if they look at it from a management perspective as well as a technology one. Good luck.
"Courtesy is the product of a mature, disciplined mind ... ridicule is lack of the same - DPM"
dpminusa wrote:
We sell a POS package
Point-of-sale, or piece of sh**? :-\ While most of your points are definitely correct, a few of them don't apply to our (my company's) specific situation. Firstly, I haven't looked into how well these translators work, but we have several million lines of Delphi code, not to mention the several hundred .dfm's (form files) associated with the .pas source files... X| Secondly, our application actually looks fairly modern with a ribbon interface using the DevExpress VCL components. And lastly, doing a conversion experiment wouldn't really work, because we pretty much only develop one giant application, so there is no small Delphi app to experiment with. :sigh:
The United States invariably does the right thing, after having exhausted every other alternative. -Winston Churchill America is the only country that went from barbarism to decadence without civilization in between. -Oscar Wilde Wow, even the French showed a little more spine than that before they got their sh*t pushed in.[^] -Colin Mullikin
-
dpminusa wrote:
We sell a POS package
Point-of-sale, or piece of sh**? :-\ While most of your points are definitely correct, a few of them don't apply to our (my company's) specific situation. Firstly, I haven't looked into how well these translators work, but we have several million lines of Delphi code, not to mention the several hundred .dfm's (form files) associated with the .pas source files... X| Secondly, our application actually looks fairly modern with a ribbon interface using the DevExpress VCL components. And lastly, doing a conversion experiment wouldn't really work, because we pretty much only develop one giant application, so there is no small Delphi app to experiment with. :sigh:
The United States invariably does the right thing, after having exhausted every other alternative. -Winston Churchill America is the only country that went from barbarism to decadence without civilization in between. -Oscar Wilde Wow, even the French showed a little more spine than that before they got their sh*t pushed in.[^] -Colin Mullikin
-
Ok. Just trying to help. Keep it in your ammo file. POS, meant Point of Sale.
"Courtesy is the product of a mature, disciplined mind ... ridicule is lack of the same - DPM"
I definitely appreciate the input. :thumbsup:
The United States invariably does the right thing, after having exhausted every other alternative. -Winston Churchill America is the only country that went from barbarism to decadence without civilization in between. -Oscar Wilde Wow, even the French showed a little more spine than that before they got their sh*t pushed in.[^] -Colin Mullikin
-
I have a piece of software written about 8 years ago in Delphi 7, which gives me a modest recurring income. I used Delphi because I needed a solution where all the components were compiled into a single exe file - so I could have a simple and fail safe distribution / deployment process (it was a client requirement.) My clients have since grown larger - the time has come to re-develop the product. But I am at a loss to know what to development environment use. Delphi no longer seems viable. I started with C#, and found it was impossible to create a distribution package that is fail safe. Is it C++ with MS compiler, HTML5, asp.net or what ? I hate the idea of throwing away my Delphi code !
My advice to you is to take a look at the installation projects available in Visual Studio. I've been using the one that comes out-of-the-box with Visual Studio 2010 for two years now, it's called ClickOnce if you wanna look it up and it's even used by Google on the windows version of Chrome so it's safe to say it's a pretty mature product and it's free for commercial use. This solution works wonders for my 200+ client base because it checks for updated executables on my server upon launch so it makes it that much easier to deploy new code. Just keep in mind this type of project is no longer supported in VS2012 so you may need to look for alternatives or just do like I'm doing now which is build my application in VS2012 and then use VS2010 only to generate the installation package. There are two popular alternatives to ClickOnce: InstallShield LE which is *VERY* limited unless you buy it, and WIX which I never really looked into but may suit your needs. Hope this helps.
--------- Andre Sanches "UNIX is friendly, it's just picky about its friends"