Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Which language would be most helpful?

by mrpilot (Curate)
on Feb 02, 2003 at 04:39 UTC ( #231943=perlmeditation: print w/ replies, xml ) Need Help??

Greetings Great Perl Monks,

Next semester I will begin to take my programming classes in working towards my computer science degree. My choices are: C++, COBOL, and Visual Basic. No Perl classes sadly. My question is this, which language would be the most beneficial to learn while I am learning perl (through this website and the Learning Perl books)? Also, what advice would you give to a beginning (and very novice) programmer?

Thanks!

-MrPilot

Comment on Which language would be most helpful?
Re: Which language would be most helpful?
by Zaxo (Archbishop) on Feb 02, 2003 at 04:53 UTC

    Easy call, C++ is by far the closest to Perl in spirit and scope. Both are modern general purpose languages (unlike COBOL) based on C syntax and independent of OS (unlike VB).

    I recommend a good grounding in formal logic for preparation to program.

    After Compline,
    Zaxo

      I recommend a good grounding in formal logic for preparation to program.

      I couldn't agree with you more. I've tutored first and second year computer science students. In first year we started by learning Java. Second year starts with formal logic and C and Perl. Formal logic seems to have helped everyone I've tutored. They can see why their programs don't work, and avoid many of the "logic bugs" in their programs. I think it puts programmers into a better frame of mind.

Re: Which language would be most helpful?
by Coruscate (Sexton) on Feb 02, 2003 at 04:56 UTC

    1. Visual Basic--, Visual Basic--, Visual Basic--
      -> Avoid it unless you are forced to use it.
    2. COBOL - I can't comment on this one. Someone else?
    3. (C++)++. If it's between these 3 options, go with C++
      -> If you need to learn one language, make it C++
      -> You'll want to learn C++ first, because after C++,
      -> anything else should be easy :)
    4. Perl++++++++++++++++ (Not an option, but still...)
      -> Force your college/university to offer classes in
      -> Perl! lol.
    


          C:\>shutdown -s
          >> Could not shut down computer:
          >> Microsoft is logged in remotely.
        

Re: Which language would be most helpful?
by pg (Canon) on Feb 02, 2003 at 06:22 UTC
    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:
    1. COBOL is not for general purpose, it is a "special" language to process files and generate other files, and reports.
    2. 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.
    3. On the social side, there are not many jobs available for COBOL programmers.
    4. 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++:

    1. Great at OO.
    2. c family is a big one: includiong c, c++, java and perl.
    3. great at network computing (I worked for SUN before, and after that, computer without network is no longer a computer to me.)
    4. 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)
    5. but GUI is not an integrated part of C++, unless we are talking about VC++ (hate microsoft, huh? ;-)
    6. 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:
    1. great GUI support, nobody can say Java's GUI didn't borrow from VB.
    2. 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.
    3. VB is not a language, but an integrated development environment.
    4. You would find out where JavaBean comes from.
    5. 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)
    6. 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.
      > No doubt, COBOL is out

      Yes, but if you have good COBOL knowledge, you find a job in nearly every mainframe related project. Every kid knows C or Java, but Mainframe knowledge, which include COBOL and REXX, is rare and needed for some decades. Beside the countless legacy applications, there are lots of new programms, interfaces, batch-jobs still written in COBOL. Many Codegenerator produce COBOL code for the mainframe and C for the PC. But, it is a terrible language.

      I have programmed in more than a dozen programming languages, but I never managed to write an acceptable bit of VisualBasic. This language tends from my point of view to destroy any programming style, I hate it and still have to use it. I would avoid it for education purposes.

      From your alternatives C++ gives you the chance to learn everything you need from the basics, depends on the teacher and you.

      To learn OO take smalltalk, that will influence (positivly) every piece of code you write in the future. But if you get the chance try out some assembler, which will give you some understandig how the languages/computer work.

      And it came to pass that in time the Great God Om spake unto Brutha, the Chosen One: "Psst!"
      (Terry Pratchett, Small Gods)

Re: Which language would be most helpful?
by Marza (Vicar) on Feb 02, 2003 at 06:42 UTC

    C++ for sure! Depending on what you want to do. I work for an EDA company and all the engineers use it.

    Cobol???? That still in use? ;-) If you want mainframes or business then that is where you would find it. I don't want to know it. Don't know of anybody programming it anymore.

    Visual Basic? Well I have worked a couple jobs and have not found it used yet. It has a large following however. I would pick this over Cobol.

    Might I suggest Python? Many of the Engineers use it for running their test cases and job builds. In fact I was ordered to learn it as well.

    I am surprised you school does not offer Perl.

      Cobol???? That still in use?

      You'll actually be surprised at how many legacy systems are still actually using COBOL. It might be old and it's certainly not buzzword compliant but it's still being used. We use it at work for our legacy fulfillment system.

      I am surprised you school does not offer Perl.

      Perl isn't all that common in schools the last time I checked. That's not to say that some schools do not offer it but the vast majority will offer C/C++ or Java. In fact I'm surprised that Java is not mentioned in the OP's list.

      -- vek --
Re: Which language would be most helpful?
by webfiend (Vicar) on Feb 02, 2003 at 15:16 UTC

    If you want to get a better handle on Perl-related concepts, I'd say go with C/C++. I revisited C after a couple of years messing with Perl, and was amazed at how much easier C was than the first time I'd tried. Most of the Perl functions that we've learned have a direct counterpart in the C standard library. Also, many cross-platform GUI libraries are written in C++ (Examples: wxWindows, Qt, FLTK). Even if you spend most of your time using the Perl bindings for one of those toolkits, an understanding of C++ will help in building a better grasp of the "translation" from C++ to Perl.

    VB is good because ... ummm ... I've never used it, so I couldn't tell you. I imagine the interface to it would make it very easy for you to build GUI apps, and that means you would be able to work your way through fun pointy-clicky applications earlier than with C++.

    COBOL is good because ... well, no. COBOL isn't very nice to me at all. I know some folks who swear by it, but I've only ever swore at it. However, every state office over here (Washington state) makes heavy use of COBOL. So you could always get a job working for the government :-)

    Go to the local library, or look around online for information about each of these languages. Decide which one looks more interesting or less intimidating, and take that class. Go. Learn. Have fun.


    "All you need is ignorance and confidence; then success is sure."-- Mark Twain
Re: Which language would be most helpful?
by data64 (Chaplain) on Feb 02, 2003 at 16:16 UTC

    I am suprised that Java is not an option. C++ is definitely very popular, although lately some developers have been using Java instead. C++ still has its niche eg: developing for handhelds, system level programming, writing ISAPI/NSAPI filters, Activex controls and so on. VB is for user interface development, although you can develop back-end components in it if you really wanted to (they tend to be a little slower than C++).

    As far as VB is concerned, it depends on whether it is VB 6.0 or VB.NET. .NET is very similar to Java and is much easier to learn than C++. You will be tied to M$ platforms and be careful that you don't get seduced by their slick marketing brainwashing while using their products. VB 6.0 is not bad. It lacks certain OO features ie. it only has inheritance of interface and no implementation inheritance. (Java does both of the above, C++ only has the later).

    One other point to note is a non-technical one. There will always be a whole lot more VB "developers" around. Especially, ppl who just did a 2 week course from some shady tech. training institute. Learning C++ takes much more effort, so you will have a little less competition when applying for C++ jobs.(Same institutes as above also offer "Unix with C++" courses but it is much easier to spot people who "graduate" in that.

    Just for fun see Favourite Languages on Slashdot. However, don't take the poll results too seriously.


    Just a tongue-tied, twisted, earth-bound misfit. -- Pink Floyd

      ...it only has inheritance of interface and no implementation inheritance. (Java does both of the above, C++ only has the later).

      C++ supports implementation inheritance if you use pure virtual base classes (which is a good thing to do, by the way). Another way that C++ can do something like implementation inheritance is via generic programming (templates), which Java has yet to support.

      I recommend C++ because it is multi-paradigm. It can be used for procedural, object-oriented, and generic programming... just like perl.

Re: Which language would be most helpful?
by mrpilot (Curate) on Feb 02, 2003 at 17:42 UTC
    Wow. Thanks for all the advice. I am currently leaning the most towards C++, for many of the reasons mentioned here. The only mention of perl-related instruction that I've heard is that in some of the web development classes (which I will probably take some), do teach some perl as the language for writing CGI applications. However, there are no formal perl classes. I think I might also take one or two VB classes as well, to try and have some well-rounded programming experience.

    -MrPilot
Re: Which language would be most helpful?
by Abigail-II (Bishop) on Feb 02, 2003 at 18:08 UTC
    Well, if you are going to pick a language just to benefit your Perl learning, and you just have the three mentioned languages to choose from, pick C++. (Better choices would be C, sh, AWK and Python).

    However, if I were presented with those languages, and I had to pick one, I'd pick Cobol. Why? Because it isn't used as much as C++ or VB. Those languages you can learn for yourself, there are lots of books about them, gcc compiles C++, VB comes with the most popular OS. But it's harder to learn find resources to learn Cobol.

    Furthermore, everyone quickly says that Cobol is rubbish. But it's good to know your heritage. Cobol was among the first high level programming languages, created in a time even assemblers weren't common place. Grace Hopper was one of the major designers/developers of Cobol. We wouldn't have languages like C, Perl or Java if it wasn't for those pioneer languages like Cobol. Even if it doesn't satisfy todays standards.

    Abigail

      There's also the fact that there are still a lot of COBOL systems out there.

      Businesses tend not to like rewriting their codebase from scratch in another language, so there is a surprising amount of COBOL work out there. I've also heard from a couple of people that it's harder to recruit good COBOL coders these days (for obvious reasons) so it may start paying more $$$ too.

        On the flip side of this, I once had a man lurking in front of a Wallgreens say to me "I'm a COBOL programmer. Got any change?" ;>
        I would also like to note just as an additional data point that our local .edu has replaced C++ with Java for the entry-level CS programming class. This irritates me, but as I am merely a newbie myself, I cannot coherently state why, just as I can add little to the original question.

        --pvck
Re: Which language would be most helpful?
by gjb (Vicar) on Feb 02, 2003 at 21:32 UTC

    You might want to have a look at this thread as well since it deals with a similar topic.

    This was my opinion at the time, and I stick with it where algorithms & data structures are concerned. The patterns and XP stuff is probably too advanced for now.

    Just my 2 cents, -gjb-

      Well, I am currently taking a (required) class called "Intro to Program Design", in it we are currently learning now to properly design programs, by first making flowcharts, psuedocode, etc. And making sure that your code is properly indented, logical, and readable. (I'm not sure if that's what you meant...but...) And thanks for the link to the other thread, I'll give it a good read.

      -MrPilot
Re: Which language would be most helpful?
by Elian (Parson) on Feb 02, 2003 at 23:22 UTC
    Interesting collection of comments. But...

    Go for COBOL. Seriously. While lots of people slag on the language, that's a bit rude, as the language is generally older than any of its detractors.

    Learning COBOL won't necessarily teach you that much about computer languages, but what it will teach you is how to handle a large class of real-world problems that C++ and VB won't. (And when you do get stuck trying to solve those problems with C++ and VB, you'll know why they're a bad idea)

    COBOL is a very good language for its niche, which is business data processing. It's not a sexy niche, but it's a huge one, and more importantly it's a necessary one.

      Since I've never looked into COBOL seriously I'd like to have some examples of that large class of problems C++ and VB can't handle, it sounds interesting (no irony here).

      Regardless of this point: bear in mind that many businesses simply don't have COBOL around anymore, so yes, you'll be going for a niche. Personally I consider that to be a bad start of a career.

      Just my 2 cents, -gjb-

      Update:
      My measure for COBOL's "evolutionary success" is the number of job ads in Belgian publications that require COBOL skills vs. those that require C++/Java. Moreover, I don't think COBOL is part of the curriculum of any CS education in Belgium.

      Another point of interest: a former colleague of mine who has a degree in physics managed to get a job done in COBOL without too much trouble, but he'd still be hard pressed to do anything OO related. The scope of C++ is more general than that of COBOL, which means that one should get in touch with a broader range of concepts and ideas while studying it.

      A very important point made by Elian: one is much more motivated to study when something is interesting and the typical COBOL application might be kind of dull.

        many businesses simply don't have COBOL around anymore
        I strongly disagree. Every large financial or supply-chain client I've worked with has COBOL in place for order entry and/or accounting functions. It's still used heavily for data-intensive "business back-end" systems.

        If you qualify what kind of businesses you mean (by line or by size), I may be more inclined to agree, but that's a pretty broad statement you're making.

        As for what the questioner originally asked, I don't think any of the choices will make Perl easier to learn, but I do think learning COBOL will teach TIMTOWTDI better than the others.

        Since I've never looked into COBOL seriously I'd like to have some examples of that large class of problems C++ and VB can't handle, it sounds interesting (no irony here).
        Actually, is's fairly dull. COBOL is designed for business use (that's what the B in the acronym is from) and it excels at doing business and financial tasks. COBOL has good facilities for handling money. It doesn't, for example, make the horrible error of trying to do financial calculations with floating point numbers. (Important safety tip: Don't try to do decimal math with a representation that can't handle base-10 fractions)
        Regardless of this point: bear in mind that many businesses simply don't have COBOL around anymore, so yes, you'll be going for a niche. Personally I consider that to be a bad start of a career.
        All computer languages target a niche. You are, however, badly misjudging the amount of COBOL in use as well as the amount being written brand new. There's an enourmous amount in every major (and most minor) financial institutions, as well as most places that have major financial departments. (Which includes the AP, AR, and payroll departments) It's also in a lot of other places you might not expect.

        It wouldn't, quite bluntly, surprise me to find that there's more new COBOL code being written than C++ code. By a factor of two or more. (Probably more) There's certainly an order of magnitude or four more COBOL in use than C++.

Re: Which language would be most helpful?
by Wysardry (Pilgrim) on Feb 03, 2003 at 02:38 UTC

    It really depends on your reasons for learning a programming language.

    COBOL is very structured and probably the closest to English in its syntax. Learning that would at least help you to think in logical blocks.

    It is however less widely used outside of business applications.

    Visual Basic is the easiest to learn, but you aren't likely to gain as much insight into how program code is constructed.

    It is also limited to Windows systems.

    C is the most widely used, and the most unforgiving of errors. It can be very frustrating at first, as it is all too easy to cause your machine to reset with an errant variable value.

    If you can get the hang of coding nearer the machine level, then C is the most powerful of the three, and can even be integrated with Perl to a certain extent.

    The best advice I can give you is to learn about program design techniques and planning before getting too deeply involved in any language. (This should be part of the course anyway.)

    Once you understand program flow concepts, learning how to code them in a particular language will be much easier, and with careful planning you will spend less time debugging.

    __________
    "Every program has at least one bug and can be shortened by at least one instruction -- from which, by induction, one can deduce that every program can be reduced to one instruction which doesn't work." -- (Author Unknown)

Re: Which language would be most helpful?
by beretboy (Chaplain) on Feb 03, 2003 at 03:29 UTC
    For the sake of all that is holy, avoid VB and COBOL like the plauge!!! C++ wins, no contest.

    "Sanity is the playground of the unimaginative" -Unknown
Re: Which language would be most helpful?
by jepri (Parson) on Feb 03, 2003 at 04:10 UTC
    VB was great in a way because I recall screaming in rage at 3am when I finally realised what Object Orientated programming was, and why VB was not OO. Never went back

    I learned C++ most recently, and was quite suprised at how much like perl it was. Shame I still have to do some of my code in C :)

    Where is all this going? You will probably learn more 'real' programming doing C++, and that knowledge will be transferrable to other languages (like perl!) but doing VB will get you familiar with the Microsoft developer environment, which is not a bad place to be (although it does chafe a little at times).

    But I'm sure it will be easier to go from C++ to VB than vice versa.

    ____________________
    Jeremy
    I didn't believe in evil until I dated it.

Re: Which language would be most helpful?
by BrowserUk (Pope) on Feb 03, 2003 at 04:54 UTC

    My initial reaction to this coincided pretty much exactly with Zaxo's reply. C-like syntax and a mixture of OO and procedural style--hands-down favorite. I also thought that the exposure to the true nature of storage, the need to convert between types--number->string->number--would be good in that it would assist the OP in understanding what, exactly, each statement of his later perl programs are doing. This is always good to understand even if 95% of the time you don't really need to know. The crutch:) of a Garbage Collector to prevent the hours I spent trying to track down memory allocation/deallocation errors when I first used C is a bonus.

    As the thread has progressed, I've weakened from a "definately C++" to a "probably C++ but.." stance. The source of my indecision is the question, "What will he learn from the exposure to one of these other languages?".

    I should say up front I have a distaste for all 3 languages on offer.

    I dislike C++ for it's needlessly over-specific semantics and ultimately futile, over-tight, type control.

    I dislike COBOL, for it's verbose, parochial syntax, it's very manual and very pedantic storage specification. The way it forces me to think about and describe every single aspect of both my storage requirements and my algorithms in long (and long-winded) monolithic step-by-step fashion.

    I dislike VB, (which I have had very little exposure to by choice), not so much on the basis of the language itself, nor even because of the source of the language. My biggest problem with VB its that it makes programming almost too easy! The point being that it allows people to get into programming without much in the way of understanding of the lower levels. This is a problem in many high-level languages, but VB's accessability has meant that it has single-handedly convinced many people, coders and management alike, that there is no need for formal training nor an in-depth understanding of the bits and bytes of hardware, nor the nuts and bolts of algorithm design. The result is that it has contributed greatly to the de-valueing of the programmers art.

    By which I mean, that in many instances, coding skills have become a commodity product. Imagine the release of AI-Doctor v1.1 Suddenly, anyone with the hardware and the ability to read an on-line manual can set up shop as a doctor. They asked the patient a series of questions as prompted by AI-Doctor, and after a few seconds (and perhaps a call back to the central, online case histories DB, out pops a diagnosis (97.32% probability), a prognosis (94.21% probability) and a recommended course of treatment (brand-name drugs only "from our partners XXX Drug CO.). After all, 95% of the skill of a doctor is in recognising, & corrollating symptoms and recalling treatments, so why not?

    The statistic in that last statement is made up, but the sentance is essentially true. Does this mean that an AI program with a huge DB, fast search algorithm and near instant, total recall should replace the Doctor? I assume everybody will agree with me when I say NO. (NO! NO! NO!). The question is "Why not?". With something like health there is always the emotional component involved:

    "I want my doctor to be flesh and blood like me not some damn machine! That way, if he recommends cutting in to me, he at least has a concept of what pain is."

    might be a typical reaction to this kind of suggestion. However, there was -- and still is in some quarters. I have a cousin who actively avoids airlines that use AirBus planes because he "wants a human being in control not some damn computer" -- a similar resistance to the use of computers in fly-by-wire flight control systems, especially in commercial aircraft. "It removes the skill of the pilot!". Of course, it also removes the inherent fallability of the pilot too. Pilot error is responsible for many more aircraft accidents and deaths that mechanical failure by a very great margin.

    Even so, I still don't want to replace my doctor with a computer. I will be very happy when (have no doubts, it will happen eventually) my doctor--or perhaps a semi-skilled delegate--starts using such a centrally connected, AI-driven database to narrow down my symptoms to a small set of possibles; to present him with a list of possible treatments, contrasting their statistical effectiveness along with the statistics regarding side-effects (and the eventaul outcomes).

    However, I still want my human, fallable, but trained-in-depth-and-breadth, real-world experienced GP to interpret and explain those damned statistics and to prescribe my treatment. Why? Because of statistics. It's all those 2.68%'s and 5.79%'s etc. that worry me. And it's the fallable, but intuative, freely associating, leap-in-the-dark abilities of my doctors grey matter that are my best protection against them.

    Whoa! A bit off-topic here aren't we? Well, ... No. Whilst 95% (guess) of programmers decisions aren't critical, and an even smaller percentage are ever going to be "life threatening", it's the precentages that get you. And on that score programming is different to many other professions--and similar to doctoring in a small way--in that it's the boundary area's, the edges, the first and last percentiles where skill, rather than trade is the key. It's perfectly possible to be a working, productive programmer without huge experience or vast formal training, but when the need is greatest and the critical hour is upon you, if you don't have the knowledge--gained through formal education or experience or prefereably some of both--then your up that famous creek without a paddle.

    So, if you want to choose the language that will ease your learning curve with Perl, I'd have to say VB. It has language elements like eval, regex's, OO and flexible typing, but most important, transparent storage management. Learning these would make transition to Perl much easier I think.

    C++ would probably do more for your formal education regarding algorithms, data-structures--the benefits and costs of perl's hashes, uniquely flexible arrays and scalars and references--and the nuts & bolts of OO and its 4 tenants. As for the syntax, I'm not exactly sure that C++ is that much better for this than VB. Perl has enough quirks that your going to hit them regardless of the background you come from.

    COBOL. My first encounter with COBOL at college 25 years ago was "Yuk!". My second, around 10 years ago was "I still don't like it, but its certainly come along way". Many have talked as if COBOL were dead. It isn't. A quick look at the splash banner here will prove that. Their claim that "seventy-five percent of the world's data are accessed by COBOL applications" is a strong argument against that notion, and one which I have no reason to doubt. Anyone who has done work in the financial or insurance markets will confirm this. Every time you use a credit card, it is almost guarenteed that the credit checks and balance updates are processed by big-iron running COBOL. What's more, COBOL is making inroads into the world of the web. See here for some samples. If you've got a moment to download and peruse the online shop demo code (188k), do so. It was a revalation to me. Also a walk down a painful memory lane, but that's another story.

    So, finally, I'd have to say, if your convinced that Perl is your future and you are going to learn it and use it regardless of what other languages you are likely to encounter, then I would suggest taking the COBOL course. The very horrors of the language that I described above--its step-by-step nature, pedantic, manual storage management etc--are the very reason for the recommendation. Not only will they make you appreciate the benefits of the GC and much else. They will also be instructive of what actually happens when you read in a piece of text (in ascii), split it into two scalar variables, add those two variables together--with transparent, implicit conversion from ascii, to one of two or three basic machine 'types'--assign the result back to a third scalar, and write it back to the screen or a file, as ascii. Ie.  my ($n,$m) = split' ', <NUMBERS_FILE>; my $answer = $n + $m; print $answer; . One line of (probably needlessly verbose) Perl. In COBOL, you would have to take care of each of the steps in the preceeding textual description, and more, yourself.

    I did try to remember enough COBOL to write an equivalent program, but got hung up on the PIC (9999) and  USAGE COMPUTATIONAL stuff. If anyone reading wants to do take care of this (possibly anonymously :), it would strengthen the point.

    As always, good luck.


    Examine what is said, not who speaks.

    The 7th Rule of perl club is -- pearl clubs are easily damaged. Use a diamond club instead.

Re: Which language would be most helpful?
by parv (Priest) on Feb 03, 2003 at 05:42 UTC

    something off tangent, but still on education, somewhat rant...

    i self taught perl, rexx, applescript, and bourne shell (and TI-basic) during the time i was at the university and my last job.

    (i understand perl, but not perl OO. comparatively, (OO wise) java is easier to understand, and seems like C++ would also be if struct is any indication. perhaps if i can be made to understand bless, AUTOLOAD, and DESTROY better, my remaining perl problems would go away.)

    now that i can't seem to find work, i went looking to fill my time w/ computer related courses. i tried to find colleges around my area (martinsburg, west virigina) which would offer intermediate/advanced courses in C, cobol, of lisp family, or any of the OO (C++, smalltalk, or ruby in particular) languages.

    i could not find anything related to C (so that i could understand and "fix" my favourite programs better), smalltalk (heard it's pure OO, wanted to check it out), lisp (have no experience what so ever), cobol (extensively used by others at my last job on os/390; i liked os/390), or ruby (printed english literature seems to be scarce).

    in fall 2002 i took introductory C++ course (hagerstown community college); currently taking 2d part (advanced C++). concurrently i am also taking supposedly "advanced" java course at shepherd college.

    so far java course is a disappointment mostly beacuse heavy use of IDE (jbuilder) instead of CLI when most of the students are catching up on the basics. in comparison, the C++ instructor is indifferent. (actually, he vehemently hates things microsoft.) imo, the java course focuses more on doo das than the core; references are not covered, neither is networking (i am thinking of servlets), the end portion of the course deals w/ graphical windows.

Re: Which language would be most helpful?
by htoug (Deacon) on Feb 03, 2003 at 11:36 UTC
    It must be a sign of my age, but I tend to agree with AbigailII and Eilan that you should choose COBOL.

    Why? Mostly because this will be your chance to learn a language that is immensely different from what you will come across today. The entire structure and syntax of it is like nothing modern. But it's quite interesting too, even perl has stolen^Wborrowed ideas from COBOL - the builtin sort statement is (the only?) one of them.

    You will see some early attempts at portability, early attempts at structured code, and come back longing for 'MOVE CORRESPONDING' (which can be emulated with use of hashes) but very happy that subroutines have arguments (I learned COBOL in '72 things may have changed :), that syntax is denser, but certainly much wiser.

    VB is something that you can be confronted with later, and C++ and/or Java are nice, but you will no doubt have loads of opportunities to learn them later.

    If there had been a course in APL I would have recommended that as well - your scholl days are the only chance you'll get to learn the more outré languages - use it to get a wide base. The common ones can alwys be learnt later. I have learned both C++, Perl and Java by reading the manuals (and perhaps a book or two) and looking at code. Once you have your first half-dozen languages nothing surprises you ;-)

Re: Which language would be most helpful?
by dragonchild (Archbishop) on Feb 03, 2003 at 16:05 UTC
    The languages you learn are unimportant. Any programmer worth their salt can learn enough of any programming language in a day to do maintenance work. (So long as the language is in a style they've been exposed to. More on this later.) The important thing is to know how to program.

    Learn logic, algorithms, and common bloopers. Just because you can program in XYZ doesn't mean you can program well. Just because you have never programmed in XYZ doesn't mean you won't be able to, in a week or two. (This is a big nit of mine with the hiring process currently in vogue in the US.)

    There have been a large number of nodes regarding programming language style. To summarize:

    1. Imperative - ASM, C, COBOL, VBasic, Perl
    2. Object-Oriented - C++, Java, VBasic, Ada, Perl
    3. Functional - LISP, Haskell, Scheme, Perl
    4. Logical - makefiles, Prolog, Perl (kinda)
    Imperative is "Do A, then Do B" type programming; your standard procedural programming. OO is "Build a bunch of things, then tell them to do stuff." Functional is "Build a few functions, tell them to do stuff." The difference between imperative and functional is that functional will build a bunch of other functions that will do the work. Logical is "Make a bunch of rules, then follow all rules until you run of stuff to do, then stop."

    Programmers that can do a given style can learn any language in that style very quickly, but have serious issues with learning any other style. (A common example is imperative learning OO.) A nice thing about Perl is the ability to be exposed to the concepts behind all the styles. They're very different in how you think about it.

    ------
    We are the carpenters and bricklayers of the Information Age.

    Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

Re: Which language would be most helpful?
by demerphq (Chancellor) on Feb 03, 2003 at 17:46 UTC
    IMO Its either C++ or COBOL. If you know either then VB wont be a hard nut to crack at all. Contrary to popular opinion on sites like this VB very certainly has a place in the programmers tool box. But like most of MS's stuff its pretty easy to learn just from the documentation that comes with it. For someone that has achieved a decent level in almost any other language VB would be a piece of cake.

    Personally I regret not learning C++ properly, wheras ive never regretted not learning COBOL at all. Some of the posters in this column state that there is lots of work on legacy COBOL systems (and other mainframe languages). This is true, I know several people who earn a very good living doing this type of programming. However I would think carefully about the choice. Maintenance programming is not all that fun in any language, doing it an a beast of a language like COBOL doesn't appeal to me that much. Whatever the cash.

    In the spirit of honesty however, I do have a book on COBOL that I went out of my way to find. However I did that more for the reason that Abigail-II points out, that is to learn our mutual heritage a bit better, and as a parachute if I _really_ _really_ _really_ need to take that job...

    Good luck.

    --- demerphq
    my friends call me, usually because I'm late....

Re: Which language would be most helpful?
by CERTcauser (Initiate) on Feb 04, 2003 at 14:15 UTC
    I would go with C++, that is what our courses are at my university. C++ is such a huge language that in my opinion, if you can learn C++ you can pretty much port your experience to any other language. I was doing C++ ever before i got into perl or VB, and i have had no major problems.. Now i dont use COBOL so i really cant comment on that.
Re: Which language would be most helpful?
by michaeld (Scribe) on Feb 04, 2003 at 15:13 UTC

    Depends on your goals, I suppose.

    Over here in Europe, COBOL is still a big thing ( as well as most of the companies that use it). It's mostly used for legacy applications - business stuff...

    C++ is used by a very small minority of the companies (technical copmanies mainly) - most of them hire engineers instead of programmers by the way.

    As for VB: it only gets used for smaller projects as its platform is not considered to be very "reliable" compared to a mainframe.

    When I started out 12 years ago, COBOL was the name of the game and - although I'm into newer things these days - it still is ...

    I'd go for COBOL again, but would try to break into the newer technologies ASAP.

    Cheers, MichaelD.

Re: Which language would be most helpful?
by mrpilot (Curate) on Feb 05, 2003 at 01:24 UTC
    Thanks to everyone who has replied. You have all made great points for the respective languages. However, I believe that I will go for C++, and also some VB classes (and Perl, of course, on my own time). I feel that these would prepare me best for the future.

    Thank you very much,
    MrPilot

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://231943]
Approved by PodMaster
Front-paged by data64
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (10)
As of 2014-09-19 04:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (129 votes), past polls