I've been programming in VB6 since '99, full time since '03. It looks as though I am going to have to make a decision as to what language I choose next. VB.net looks promising and I have taken to it like a duck to water - I really like OOP! I have also tried c#, again I like it as well but I find the syntax a little harder to read (my eyes aren't what they used to be ). With that said I really don't want to move to .Net for 2 main reasons.
1) dot net isn't compiled. Unless you have some third party tool to obfuscate the code, your IP may not be protected.
2) It is slow - or at least I find it slower than stuff I have written in VB6 (I think this goes back to 1)
I write software for the mining industry that interacts with their CAD systems and geological modeling systems. My programs are mainly dll activeX controls that plugin to the CAD and GEO tools. Right away, speed is an issue (3d vector calculations, matrix calculations, Finite Element Analysis, Genetic Algorithms). It doesn't have to be super fast - just fast enough so they don't have time to take a coffee break!
Recently I have been going over some of my older code and I have been able to make dramatic speed improvements (these were possible because I hadn't coded the routines optimally in the past - lack of experience). What I have found over the years is that 80% of the work that I do is interacting with the user (i.e getting input, validating input, writing files, interacting with databases, etc.) and that doesn't require a heavy duty language like c++.
I have been thinking about this switch long and hard for the past year or two since I found out that support for VB6 would be discontinued. I thought that vb.net would be where I should go but there are too many problems around protecting my work (not from pirating, but my algorithms). I then got the idea that maybe a mixture of c++ (for the back end) and vb.net for the GUI would be the way to go. I think that might be over kill. I would prefer one general purpose language as opposed to a mash up of two or more. That, IMHO would lead to a maintenance nightmare for the poor soul that has to maintain the project if they only have a .Net background.
So my question to you all is, should I focus on .Net because it is the fashionable thing to do or should I approach another language altogether? I am open to alternatives, but it needs to be relatively popular.
I downloaded a copy of Turbo Delphi last night and I like what I see (I was able to navigate around the IDE relatively easily and Hello World was a snap).
Any opinions on Delphi?
Does it have the staying power?
Will it be ready for 64bit?
Can it be used from .Net and can it use .Net components?
Can it create activeX dlls that would work from VB6 apps?
Cheers and Thanks,