I've been coding since 1966 and have seen a number of languages come and go and also held up as "THE" language.
When Microsoft came out with Visual Basic 3/4/5/6 (Classic NOT Net), and with VBA as part of their office suite, I jumped on it and never looked back as it could not only develop rapidly, get the power I needed with API calls, and had the ability to maintain a program years later with little effort without fightly with a language syntax that was obsure especially if I had not used it for a bit.

Microsoft forced the move to NET by deprecating both VB Classic and VC++. I think little of NET as it bloated big time IMO.

SO to finish out my last years, I'm looking for a language where I can port over about 20 VB Classic programs without to much
headache, maintain them, and have the language stick around for maybe another 20 years. Based on my reading, even C++ may not be around.

I know everyone has their favorite, but any constructive suggestions would be appreciated.


Nobody can say with any certainty what languages will still be around in 20 years. Even 5 years is difficult with some. If you want to port old VB programs with as little difficulty as possible I suggest just going to vb.net. I think you'll find porting vb to C++ will be much more difficult. A few years back (closer to 20) I had to port a very large and complex program from vb to FORTRAN, and then later on to C. It required a complete rewrite both times and neither experience was pleasant. The positive aspect, however, was that a complete rewrite allowed me to make great improvements in the design.

.NET isn't bloated, get used to it.

If you want something that's going to be around in 20 years, go with PL/1 or Cobol. C too has a good chance of surviving that long.

The main thing that determines longevity is inertia. The only reason people still use Fortran or Cobol is because of inertia. To some extent, C as well, although it is often a practical (minimal) language for small tasks.

Therefore, the languages that are likely to live for at least a couple of decades beyond today are those languages with most weight today, which is essentially C, C++ and Java, and PHP and Python (in their application domains), anything else is somewhat precarious. Also, languages that are tied to a specific company, instead of governed by an open standard, will always be dependent on that companies continued market share and willingness to support the language; this includes, for example, Objective-C (Apple), Go (Google), and .NET (Microsoft). But, of course, you already know this, because you depended on VB (classic)! There is a reason (beyond the technical ones) why the classic paradigm with VB applications was to make the VB code just a thin front-end (GUI) that called the "real" back-end C++ code, because VB could killed anyday (as it was) and that would only mean having to port / re-write some trivial front-end code, while protecting (in time) the real important, "hardcore" code (back-end) that would be very tricky to port.

Microsoft forced the move to NET by deprecating both VB Classic and VC++. I think little of NET as it bloated big time IMO.

It's not true that MS deprecated VC++. In fact, lately, there has been more activity at Microsoft related to C++ than ever before. They certainly hoped to kill C++ with .NET, but they failed, which was very predictable because C# simply cannot compete in the main application areas of C++ (high-performance, system and infrastructure programming).

As for .NET being bloated... big time! I totally agree. (my opinion, don't want to start a war here)

I'm looking for a language where I can port over about 20 VB Classic programs without to much headache, maintain them, and have the language stick around for maybe another 20 years.

That's some hard requirements! As Reverend Jim already said, the only real candidate for the "port without too much headache" requirement is VB.NET. But of course, that leaves your programs being tied to a bloated framework, its OS, and no guarantee of future maintainability (and I hold very little hope for a 20 year period!).

I might suggest Python mainly because it has reached critical mass, and is rapidly becoming a de facto standard high-level language due to it's versatility, portability and connectivity to other important languages (Java, C, C++, etc.). I would say it is a good option that is neither bloated nor tied to any particular technology or company. I don't think it's likely going to go away or be killed any time soon.

But, to be safe, the core parts of your code, where you do all the really critical things, you should definitely commit that code to a standard language, i.e., that is openly governed by a standardization organization (e.g., ISO, ANSI, etc.). That leaves you mainly with C, C++ and Java as (semi-)modern options for the back-end code.

There's an old saying (I don't know who said it first) that goes "I write all my time critical routines in assembler and all my comedy routines in BASIC.".

Having said that, you will usually find me in the vb.NET forum.

Hmm good question... Since dotnet is bloated and so is java but that is just my personal opinion, I would lean toward java as at least least it isn't proprietary (actually I'm unsure.)

Microsoft could move the goal posts at any time they choose... part of why I never liked the idea of developing apps in dotnet as their ridiculous licensing they charge for user CALs.

You say you need to use API calls so I'm guessing win32 stuff. This limits you (linux or mac os) but again this might not interest you. Java would allow simple API calls.

Another option which is gaining popularity all the time is developing web apps... OK you need to host it on the web and it will be a lot slower it won't allow api calls that easily.

Personally, I really like web apps... I haven't written a standard installable app in ages. The way things are moving this is the future.

It all depends though. You wouldn't write a CAD app in a web browser.

isn't it interesting how he thinks vb6 isn't bloated, when it depends on a massive runtime library as well as the entire win32 API to do anything at all?

Yet he considers anything else bloated that also depends on runtime libraries...

It seems that Java is being updated just about every time I turn my Pc on. Is it really that full of bugs?

no, it's not. Oracle has roughly a 2 week cycle of updates, and most of them are so minor they hardly matter.
E.g. here's the release notes for the latest release: http://www.oracle.com/technetwork/java/javase/2col/7u55-bugfixes-2180733.html

17 issues, 3 of them Mac only, 1 specific to Windows 8.1, 2 seems specific to certain Unix variants, one specific to Win32, and most of the others seem rather minor cosmetic issues that most users will never encounter.

And that's just about normal.

The only reason people still use Fortran or Cobol is because of inertia.

Most buisinesses use cobal due to inertia. It's what they have been using, and it's what they're comfortable with. The problem with cobal is it's a terrible language - and the people who write cobol often create illegible and unstructured code. It's only maintained for legacy reasons. (Not too many modern experienced programmers would start a project in cobal.)

I would like to make an argument for Fortran though. It is actively developed and maintained. It remains one of the top choices for numerical computing, and I beleive most supercomputers use fortran. Lots of people start projects in fortran. Heck, gcc includes fortran by default. There also arn't too many alternatives out there for that kind of use.

Back on topic, I dout that C++ will die in 20 years. We still actively use some languages from the 50's, and it looks like they arn't going anywhere. (ie, lisp, fortran). Furthermore, C/C++ is the king of system programming. Before they existed, the usual practice was to use assembly. I'm not sure if they'll be replaced easily. Heck, assembly isn't even "replaced".

FORTRAN has always been the winner for number crunching because it produces the most highly optimized code. C/C++ runs a close second but is still slightly behind. The major reason for FORTRAN's ability to optimize is the result of how C/C++ manages arrays. In C/C++, arrays are managed through pointers. As such, the compiler can not make the assumption that two arrays do not overlap. FORTRAN has true arrays and the compiler can determine that arrays are non-overlapping and can split array calculations over multiple processors. In the 1999 update to the C specification (C99) arrays could be specified as not overlapping so this definitely narrowed the gap.

I have done a lot of different languages over the years, but Python suites my feeble mind the best.

never liked Python. Java and LSL though... And I've always had a soft spot for Pascal.

The one thing about most languages is even if you lose the indentation you can always recreate it. In Python, if you lose the indentation you are pretty much screwed.