|
Maybe a code generator thing in the age of NX bit, like the original SOAP component.
|
|
|
|
|
Might be cheaper to build it anew, then to figure out why there's all this weird legacy-code.
The converter would choke on my "uDebug" unit, because the debug-files in .NET look a bit different from the map-files in Delphi. As long as the code is straightforward, conversions "may" work, but anything out of the ordinary will fail.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Eddy Vluggen wrote: As long as the code is straightforward
I burst my spleen, laughing too hard!!!
|
|
|
|
|
Not for many years - it's the kind of thing you don't attempt more than once.
Whenever you find yourself on the side of the majority, it is time to pause and reflect. - Mark Twain
|
|
|
|
|
It's funny because everyone one of us who've experienced code conversion are all just like, "Well, yes, but I wish I didn't have that experience." It's just old wounds to think about now. Nothing else.
|
|
|
|
|
glennPattonWork wrote: Delphi to C# Conversion
What do you have access to? Does this thing convert from Delphi source, or a compiled program originally written in Delphi? Big difference.
|
|
|
|
|
We have the source code and the single remaining author...
|
|
|
|
|
glennPattonWork wrote: and the single remaining author
Wait! And "single remaining author" hasn't already rewritten it!?!
To the gallows with "single remaining author"!!
|
|
|
|
|
You know how these Delphi ghouls are, they refuse to program in any other language than Delphi
|
|
|
|
|
They have good reason to stick.
|
|
|
|
|
Just kidding
I must say that I find Delphi a bit too costly, but there's Lazarus as an open source alternative, the interesting thing is that you can develop cross-platform applications with it and it has a forms designer (seems a rarity nowadays).
|
|
|
|
|
Yup. The one person I know who does Delphi gets paid well above the market rate, to the extent that he can't afford to bail for a newer platform, for being one of 8(? unless there's another user than his employer) people in his city who still use the stuff. The gotcha is that the lack of any plan B that'd sustain his current lifestyle if his current employer ever goes under is a huge stressor.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
best you can email the ispirer people and check with them..mention what delphi version the project is running on etc and request a trial and see..
Caveat Emptor.
"Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
|
|
|
|
|
Not a bad idea I will run it past those in charge...
|
|
|
|
|
What version of Delphi? I may have a co-worker who might want to take the job on as some contract work.
|
|
|
|
|
Place I used to work at used such tools twice. Once from [insert obscure language I forget the name of] to VB.NET, and then from VB to C#.
I wasn't there when it took place, but from what I heard (and saw in the code) results were mixed.
The resulting code would most of the time compile, and also most of the time do mostly what it was supposed to do (although some debugging was required), but the big problem was the readability and maintainability of the code.
It would use almost none of the specific language features (probably because it would make conversion a lot more complex), ignore best practices, make variables global that didn't need to be, and all kinds of headaches ranging in size from minor annoyance to "I swear to god I will set fire to my computer".
To be fair, that took place around 15 or more years ago, so maybe there are better converters today, but I doubt it.
At best, it's a start point from where you can develop the new version. Depending on size and complexity of your code base and requirements, it might be faster, cheaper and more future proof to redo the system from scratch in your tech stack of choice, rather than try and convert the existing code base.
|
|
|
|
|
Before you do anything else I'd recommend P2V'ing the physical box into a virtual machine - so if it fails you can still work on the code. Personally I use VM's for all my development environments now - going back to Visual Studio 6 - so if I ever have to revisit some old bit of code I just spin up the old VM and the project is usually still in the MRU list. Many of the old VM's are XP but you can generally just stop them having internet access so they are pretty safe especially if only spun up on demand.
|
|
|
|
|
We did a project for machine translation of a large software system originally written in Pascal into a proprietary systems language (in the Pascal/Algol class, but with a number of syntax differences and a number of added features).
The primary reason for doing this was to protect the system from theft: If some competitor got hold of the source code, the effort of utilizing it (i.e. translating it into some other language) would hopefully be so high that it would be considered not worth it.
Our conclusion after completion of the work was quite clear: We would have saved a lot of effort if we had placed a printout of the original Pascal code in the manuscript holder and manually typed in the translation line by line.
The auto-translator had no clue about the semantics of the code. Whenever it was in doubt, it generated new variables, labels and other constructs. For all practical purposes, all comments were ruined - they were there, but often misplaced because the original composite statement had been broken into pieces and reassembled in a different way; if the translator couldn't decide where to attach the comment, it was put at the bottom of the function. Obviously, the translator didn't make use of the extensions of the target language, as there was nothing in the input calling for these facilities...
Cleaning up the result was a tedious chore, and for a long time, there were still traces of the translator's bad semantic understanding of the application semantics. We could have used the translator for subsequent projects, but we never did. We saved work by doing it by hand.
We could have spent effort in trying to improve the translator. If there were a thousand projects waiting to be translated, it might have been worth it, but there was not, and we were already sick of it after the first job it had done - and the job it crated for us in cleaning up.
|
|
|
|
|
Even with code conversion, you still need to consider other important platform/runtime things like memory management, app lifecycle, error handling, etc.
Converters are great for getting the equivalent syntax/type/class/method, but if you rely on it as a whole-project solution... you're going to get very intimate with the debugger
Even when converting code in the same framework/runtime, like https://converter.telerik.com does, there are newer features in C# that VB doesn't have yet (e.g. Pattern matching).
Lance | Microsoft MVP - Windows Development
|
|
|
|
|
I use them daily and am writing one. They depend greatly on the power and flexibility of target language. Most do a terrible job at preserving comments and don’t try and do well on simple code. The better ones give up when they find something they don’t understand or do a partial translation leaving the original code as a comment. The bad ones just translate to garbage that will not compile. On evolving languages like C# translators have trouble keeping up. On dead languages they are usually very good and going to C# is a plus since it is very powerful and has many features you need.
|
|
|
|
|
Since the converter you link to has a free demo license available, get it and give it a try. That's the best way to see what will happen.
I do agree with the general answer here though: It would probably be better, faster, cheaper to just rewrite in the new target language.
|
|
|
|
|
Having been down this road with various languages over the years, my advice is this:
Hire a really smart software engineer (not just a coder) who can figure most anything out on their own. The best ones to look for are former Navy Nucs who became software engineers.
You will get better conversion results in about the same time you could auto-convert, clean up the conversion, fix all the OOA/OOP mistakes, fix any inherited bugs, and get a production version out.
|
|
|
|
|
Problem is Budget, every one wants new toys, only those working on new flashy things get it. Despite our side of the business keeping every one going a few years ago.
|
|
|
|
|
Take the hard drive out; add it to a new machine; run it as a D: drive (or E: etc.).
Run compatibility mode (when necessary).
Add a Win 7 or 8 virtual machine if necessary.
Get the latest Delphi compiler.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
I did a similar project, going from Pascal to C two years ago, about 20,000 LOC.
I developed a set of C macros that simulated much of Pascal, E.g., "IF" and "If" translated to the C "if".
Then went through it by hand to fix the things that couldn't be handled with macros. Conversion was done under the Qt environment and now the app runs on both Windows and Linux.
Took about 500 hours to complete with testing. Wasn't esoteric, but got the job done and protected the logic and user GUI from changes.
PM me if your interested in more info.
|
|
|
|