I used all three in the past. This has something to do with the nature of my job. As a consultant I worked on different projects for end users, and in most of the projects, user has a say in platform, OS and language. This is why I had a taste of all three.
No doubt, COBOL is out:
- COBOL is not for general purpose, it is a "special" language to process files and generate other files, and reports.
- COBOL's effort to support OO is ill-fated, although there is a COBOL-OO standard, but it didn't get any attention, and I don't think any more effort will be put in to revive it.
- On the social side, there are not many jobs available for COBOL programmers.
- However there is one shinning bright spot for COBOL: PeopleSoft. PeopleSoft is one extreamly widely used application, and it is developed in COBOL.
I don't want to draw a clear line between C++ and Visual Basic. Both of them are great languages, and they would give you taste on different aspects of modern computing. You may not like microsoft, and the way they do their business, but this should not affect your judgement about VB.
To be frank, I will feel guilty to suggest you not to learn c++, and at the same time, I will also feel guilty if I suggest you not to learn VB. Really, make a difficult decision, pick one as a course, and learn the other one on your own.
About C++:
- Great at OO.
- c family is a big one: includiong c, c++, java and perl.
- great at network computing (I worked for SUN before, and after that, computer without network is no longer a computer to me.)
- from an educational view, c++ is a good language to get a taste of all the important data structures, like queue, stack, linked list, tree etc. (From this point of view, it replaced PASCAL's function)
- but GUI is not an integrated part of C++, unless we are talking about VC++ (hate microsoft, huh? ;-)
- event-driven is not integrated part of c++. Remember this, one design objective of c/c++ is to make it simple, only support what is really needed.
About VB:
- great GUI support, nobody can say Java's GUI didn't borrow from VB.
- VB is event-driven, and if you say VB is the first event-driven language that get lots of attention, you are not too wrong.
- VB is not a language, but an integrated development environment.
- You would find out where JavaBean comes from.
- Yes, VB only runs on Windows, but lots of concept VB would give you are generic concepts across platform. (Java brought lots of those across)
- VB is not OO, and is OO, half way in between. An OO with a localized taste.
Final point, if you know both C++ and VB, it would be so easy for you to get started with Java. This is my time line: c => (small talk) => c++ => vb => java, and I know how both c++ and VB helped me to understand Java. Perl is just my recent interest.