Aloha All !
OK, I am looking for some feedback on this. Do you guys think i should go with VB6 or something new ? Or some type of Hybrid ?
1) I have some new code that needs to be created. It will be installed in windows XP, Vista and 7 computers. (in addition to needing to fix some older VB6 stuff anyway)
2) This code needs to interface with a database. Currently all of our data is in MS SQL on a web server, off site (on the web)
3) I am already intimately familiar with VB6 and have designed code in it for years. Using VB 6 I can turn one of these projects out in about 2 weeks (or less depending on how manic i get)
4) I don't mind learning something new (I already know 8 languages/tools) BUT... i HATE change only for the sake of change without actual and measurable improvement. If i am going to invest into learning something new there better be damn strong arguments as to how much better, easier, faster the product will be. I see too many programmers constantly re-inventing the wheel but never actually making the product any better, instead just introducing new bugs with a new language.
5) Budget is limited to non existent
6) Budget and time factor, I am not going to spend $999.99 to purchase a new programming language then spend the next 2 months trying to finger it out, to then try to spend an additional 3 months to actually design the new code. when i can build it in VB6 in about 2 weeks.
If it's a one-time thing, you could try locating a trial-version or a borrowed copy of Studio 2005(? has VB6), as I notice you're looking for in another thread.
You might find it more and more difficult to continue with VB6 in the long run. 16-bit code and OCX controls are deprecated and completely unsupported in the current 64-bit operating systems -- so avoid running Windows 2008 R2 (64-bit) if you need to run the old stuff. This comes into play if you're establishing a Terminal Server.
Plain old 32-bit Windows 2008 Server works fine as a Terminal Server, and is the last of the 32-bit Server Operating Sytems in Microsoft's current lineup.
The downside of "current" flavors of VB is that they all depend on .NET to do the dirty work; whereas (IIRC) VB6 was the last to support native Win32 APIs. It's a learning curve, but not so bad if you're already familiar with Java. Much of .NET's function signatures have roots in Java's APIs, with only minor camel-case changes. I'm not a VB programmer (most of my windows code is done in MSVC), but my understanding is that VB won't allow you to get out of the .NET Sandbox.
In other words, I don't believe there's a "mixed mode" for Visual Basic (to gain access to Win32 APIs), as there is for Visual C. It's all "managed code" in .NET.
Regarding software costs.. I'm assuming you're already an MS Open or Charity-specific Volume Licensee. Is there an option to pick up a recent copy of Visual Studio under that program? It might save you a lot. Otherwise, it may be cheaper to contract that task out to a developer who already has the needed license. $X Hourly for a one-time update beats $1K license any day. :-)
One last thing regarding improvements in .NET -- if you're doing heavy OLTP stuff, you'll find the new way of accessing databases (with built-in connection pooling) to be superior to the old ADODB way. Plus, LINQ queries are fantastic to work with -- if you've done COBOL, you'll appreciate how LINQ attempts to be "Embedded SQL" on Steroids. Well worth the learning effort for DB programming.
You could always look at Java. The platform is free, and they have a lot of free and open source development environments and tools. It will take a little getting used to if your accustomed to developing on microsoft platforms, but for your intentions it may turn out to be a simple endeavour. It get's a little hairy when you're doing enteprise (server) development but for desktop you should be fine.
My suggestion would be downloading the latest JDK and Eclipse. The beauty of using the Java platform is that the VM can run on almost any platform without needing any code changes or recompilation. There are both 64 bit and 32 bit flavours. The only trick is ensuring you have the right java runtime environment installed on the target machines (i.e for a 64bit windows 7 machine, ensure you have at least JRE 1.6.0_14 but your apps should behave identically on all platforms given they have the correct runtime environment installed.
Dan Leuck and his company IKayzo have actually developed a framework for punching out desktop designs using SWING quite simply and effectively:
Cost wise, it's probably your best bet.