News

Visual Basic or C++

Discussion in 'Other Off Topic Forum' started by mjgermane, Nov 18, 2003.

  1. mjgermane

    mjgermane Formula Junior

    Jan 21, 2003
    507
    The company I work for is going to pay for me to get trained on software development. I already know a little bit of C++, but none of VB. What are the pros and cons of each. I can't find anything too informative on the internet. Thanks in advance.
     
  2. Evolved

    Evolved F1 Veteran
    Rossa Subscribed

    Nov 5, 2003
    8,206
    Pittsburgh, PA
    I would argue learning software development is not about learning one langauge or another but if its language classes you want to take learn C++ .


    VB6 is a good platform. .NET hasn't taken off and most likely won't for a long time.


    Of the students we run through our diploma mill the ones with solid C++ understanding get jobs.


    VB6 is object based and C++ is truely object oriented. .net is also object oriented.
     
  3. rob lay

    rob lay Administrator
    Staff Member Admin Owner Miami 2018

    Dec 1, 2000
    49,320
    Southlake, TX
    Full Name:
    Rob Lay
    They don't have a Java class?, that would be better than both.

    I agree with Oppie. A C++ programmer can do anything, a vB programmer no.
     
  4. dan360

    dan360 F1 Rookie

    Feb 18, 2003
    2,669
    Boston
    As an employer of SW engineers, I can tell you that C++ and VB programmers are different breeds and Java programers are almost like a different religion.

    VB - Great all purpose language, easy to write.
    C++ - Much lower level, more technical, harder.
    Java - similar to C++ but in my experience, there are more "less good" Java programmers out there.

    I'd say learn C++, then Java, then C#/.NET/VB.

    IMHO:
    All windows native apps are basically going to get written in .NET (etc).
    All Web Apps are getting written in Java
    All Application servers are written in C++ or Java depending on your religious belief system.

    It depends what type of app you're going to write as to which is the right tool, but if you understand the lowest most detailed programming architectures, then you can easily understand simpler ones.

    One caveat, being a software engineer is ALL about experience and the teams you've worked with. I personally don't really employ any engineer with less than 5 year real application experience. You need that long of making mistakes before you become adept!
     
  5. PSk

    PSk F1 World Champ

    Nov 20, 2002
    17,673
    Tauranga, NZ
    Full Name:
    Pete
    Do the C++ course, but like others have said a course of software engineering would be better, as once you understand the basic theory of software engineering you can code just about anything.

    Also you do not need to do a course for VB ... it is so easy to pick up that, well ... er, do the C++ course.

    Pete
     
  6. Mike328

    Mike328 F1 Rookie

    Oct 19, 2002
    2,655
    Boulder, CO
    Full Name:
    Mike
    For studying programming (and to some extent, computer science), there is a definitive hierarchy here, and it has to do with how high level the language is--i.e., how much it "abstracts" or shields/hides you from.

    C++ is without room for argument the lowest-level language mentioned here. The key concept is the exposure of "pointers," which is a concept very fundamental to computer science. I will argue the programmers who understand their data structures the most deeply--those with the most solid grasp (even more solid than they need)--learned and practiced their data structures with C++.

    Java hides the programmer from pointers. There are other abstractions as well. Java "the platform" also includes a rich collection / library of classes or "modules" providing a significant amount of functionality. String handling will always be easier in Java. This is another great language to learn programming with.

    VB is the highest level of the three. (By Highest Level, I don't mean hardest or most complex--I mean the "simplest" on the outide.) VB hides so many details away from the user, and also provides a lot of rich functionality (string handling, collections, etc.).

    I learned my data structures with C++. I learned true object oriented programming (OOP) with Java. I've shipped my most significant Web Applications with Java technology, and my most significant locally executed "desktop" applications with VB.

    VB is an extraordinary language that, when in the right hands of an experienced programmer--can be made to do very powerful and important things. VB gets a bad rap, since it's very "Accessible," and therefore so many new programmers are drawn to it. These young programmers as a group tend to write "young" code--inefficient, sloppy, difficult to maintain, etc. That's what gives VB a bad rap. (Any strong programmer can work around its shortcomings and capitalize on its capabilities).

    I strongly agree that Java is most appropriate (IMO) for web development, and VB is very appropriate (Java can do OK, too) for locally executed Windows-only based desktop applications that are User Interface and/or Database oriented in nature. It's going to be hard to do anything as a new programmer in C++ in terms of an actual, visible product on the desktop (with a UI, for example). C++ does well for server stuff and for building components that will eventually be used and integrated into larger (locally executed, desktop) applications.

    Having worked at Microsoft in multiple capacities, I was fed (and indeed evagelized/preached) .NET for a while. The syntax and class/module structure is like a slightly improved Java. The .NET platform itself is a bit different. .NET is without question currently the easiest way to "build" web applications via a "form editor", assuming you're running Microsoft servers (via ASP.NET)...

    mjgermane, you've got to figure out what your goals are. If you really want to make a longer-term committment to studying programming and computer science, C++ will give you the strongest foundation.

    If you want to build applications for your company... VB might be the way to go.

    And if you want to do Java, that's awesome; Java is a solid language and platform and you won't go wrong with it. It probably represents the best compromise of all three languages if you had to just pick one.

    My $0.02.
     
  7. adamr

    adamr Formula Junior

    Aug 16, 2002
    720
    Chicago
    Another note on C++ being a low level language - If you want to get into threading, templates, and design patterns you'll find yourself involved in some very interesting discussion.... Not to say other languages do not have these, just that C++ is pretty raw and can give you a more classic down to the metal experience than the other languages presented here.... heck, just learn some assembler!
     
  8. Artherd

    Artherd F1 Veteran

    Jun 19, 2002
    6,588
    Bay Area, CA
    Full Name:
    Ben Cannon
    C/C++ is real programing, everything else is a shell or pseudo-programing junk.

    If you know C++ you can learn any of the others in a weekend.

    Best!
    Ben.
     
  9. Mike328

    Mike328 F1 Rookie

    Oct 19, 2002
    2,655
    Boulder, CO
    Full Name:
    Mike
    Artherd,

    I refuse to get fiesty in this thread, but what you proclaim above is an immature and naive stance on programming languages and computer science.

    It is easy to argue that C and C++ -- and their exposure of pointers -- is very much real programming. I strongly agree with this.

    I strongly *disagree* that everything else is a "shell" or pseudo-programming "junk."

    The more forward-looking computer scientists will rightfully move that everything "else" is primarily composed of higher level languages, collections of functionality, or both; and that in order to progress society and their interaction with computers, we will need increasingly higher-level languages providing increasingly rich *functionality*.

    Progressive and successful software deveopers, more and more concerned with providing useful software, no longer really care about "pointers." We already know what they are and what they mean and how to use them, and we're tired of it.

    The discipline of programming, realizing that C++ just takes too long to build an application that meets the current "bar" of what society expects in a piece of software, has moved forward to higher level languages and paradigms.

    Now that's not say C++ isn't useful; because of its rigor and precision when properly employed (by a knowledgeable developer), there's C++ code in many critical applications (military and satellites, for example).

    Any tool user should know the appropriate uses and limitations of the tools in their kit, know what I mean!? :)
     
  10. Mike328

    Mike328 F1 Rookie

    Oct 19, 2002
    2,655
    Boulder, CO
    Full Name:
    Mike
    And on a final note, Artherd isn't completely off in his post.

    What he's trying to say when he notes that you can learn any other language in a "weekend" after learning C++, is that C++ is very fundamental and hides very little. This allows you to clearly see the programming constructs that are going on, and affords a student a very string foundation to build their computer science careers on.

    In that sense--since through learning C++, you really understand the fundamental constructs of programming (loops, pointers, recursion, basic data structures)--you already have core programming knowledge that gets "Translated" when you learn a different language.

    Maybe not in a weekend, but if you know C++, learning VB will not be so much a computer science challenge as it will a syntax and "what function do I use to do this or that" one.
     
  11. becker

    becker Formula Junior

    Feb 20, 2001
    298
    Arlington VA
    Full Name:
    Becker Cuéllar
    Just adding one more thingie I've seen sometimes(very often) the end client wants a VB app but some of the features requires APIs, creating a DLL, subclassing and stuff like that and I've seen very good VB guys struggling a bit with this simply because they didn't learn C/C++ first. On the other hand the C++ dev just breezes through this even using VB.

    Remember on VB you have not much choice but to take the properties/methods given by the tool in most cases is good enough but in some cases there are not easily available hooks to change some properties of the controls to meet the requirements, it's here where the C++ knowledge helps.
     
  12. Artherd

    Artherd F1 Veteran

    Jun 19, 2002
    6,588
    Bay Area, CA
    Full Name:
    Ben Cannon

    Absolutely. There are certinly very valid uses for what I call shell-junk :)
    I even use Perl (definately a shell and highly inefficent cycle wise) for many things where C is just not needed and too much to deal with to get done on time.

    My biggest point is to learn C as a fundamental basis for what programing is, and then apply your skils to the others. You will then be able to see what they hide (disadvantages) and what they simplify and accelerate (advantages) and make an educated decision.

    PS: I probally should have said that the only real programing is in Assembler. ;)

    Best!
    Ben.
     
  13. adamr

    adamr Formula Junior

    Aug 16, 2002
    720
    Chicago
    WhooHooo!! Another vote for assembler:)
     
  14. icars

    icars Formula Junior

    Mar 28, 2002
    855
    Plano Texas
    Full Name:
    Rodney Haas
    Object Oriented Assembly of course ;)


    The real answer is it depends on what you want to do. For business programming, I would do the following:

    C++ data structures. It's a good way to thoroughly learn data structures. This does come in handy.


    The C++ market however is slowly drying up. In Business programming C# / .net is the upcoming thing. Most companies are heading that direction but may not be there yet.

    Java would also be good, knowing Java & C++ makes an easy jump to C#.

    Basically you want to make sure that you are will versed in language constructs. Jumping languages is no big deal.

    Forgot to mention very important and not mentioned here. You need to take some DB classes SQL Server & Oracle if possible.

    Of course without saying HTML, DHTML, XML, CSS
     
  15. mfennell70

    mfennell70 Formula Junior

    Nov 3, 2003
    557
    Middletown, NJ
    You know what they say: "it depends".

    I did a bunch of straight C last year developing a driver. Real Programmers debug through a serial cable. :)

    In my experience, the hard stuff (big distributed systems, servers, networking, etc) continues to be C++ all the way. I suspect (er...hope) that low level will continue to be in demand as more and more people with only higher level programming experience come into the marketplace. Admittedly, all my experience is in networking (collaboration, VoIP, etc ) and military, so my POV is skewed by that.
     

Share This Page