Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

shameful admission

by Anonymous Monk
on Jun 15, 2004 at 16:02 UTC ( #366928=perlquestion: print w/replies, xml ) Need Help??

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

You ever see one of those TV shows where the star athlete hangs his head, begins to cry and shockingly admits, "I never learned to read!"

Well here is one from a perl programmer: "I never learned C!"

It's got to be useful to know, but I never got around to learning it. I've done some ASSEMBLER, Java, Basic, and a few languages no one's even heard of, but not a single line of C or C++ code has ever been uttered from my keyboard.

Well now I am getting involved in projects where C is rearing its head, mocking me, shaming me for the times it tried to introduce itself to me whilst I casually turned my back

Should I learn how to program in C? It seems silly, like learning how to drive a Model T, or learning how to use an Abacus.

Replies are listed 'Best First'.
Re: shameful admission
by davido (Cardinal) on Jun 15, 2004 at 16:10 UTC
    C is not the Model T or Abacus of programming languages. It's a useful tool, and the right tool for some jobs. Hammers have been around a long time, and yet they're still an important part of house-building.


Re: shameful admission
by sweetblood (Prior) on Jun 15, 2004 at 16:12 UTC
    I'm not sure that learning C/C++ can be equated to a model T or using an abacus. C/C++ can be extremely useful if not necessary for some applications. Although I do virtually no C/C++ programming anymore it's not because the language has become antiquated. If you are faced with building device drivers or need real-time access to hardware, etc. then you may well want to build those apps in C/C++. Certainly if your job depends on C/C++ skills, you'll want to get right on it.

    Still, there is an awful lot you can do without C/C++.

    Good Luck and Cheers


Re: shameful admission
by pbeckingham (Parson) on Jun 15, 2004 at 16:25 UTC

    I say "yes" - languages are part of your professional tool box, and the more tools at your disposal, the better developer you can be. Noone is going to argue against the benefits of broader experience and education. You will need this to help you determine which tool is the best fit for a project. People who know only one language will want to apply it to every problem.

    I claim that C is the language of choice for much of the open source projects that you will encounter over the next few years, for reasons of portability, speed and familiarity to a large number of developers (but mostly the first two).

    If you find yourself building various tools/languages/kernels from source, then knowing C is going to be useful to you at some point. You will at least be more capable of diagnosing and correcting minor issues, providing better feedback to the authors, and ultimately providing patches yourself.

Re: shameful admission
by orderthruchaos (Scribe) on Jun 15, 2004 at 16:40 UTC
    For a light tutorial on just enough C to get you by, you may wish to read Manning's Extending and Embedding Perl by Tim Jenness and Simon Cozens. It has a quick introduction to C and quite a bit on how to use it to enhance your Perl programs.
Re: shameful admission
by Fletch (Bishop) on Jun 15, 2004 at 16:30 UTC

    If you've done enough Perl and/or Java you should be able to pick up C with no problem (and yes, it's worth knowing). I'd reccomend A Book On C (ISBN 0201183994); the second edition was a pretty good coverage of the language, and the 4th's got good reviews on amazon.

Re: shameful admission
by freddo411 (Chaplain) on Jun 15, 2004 at 18:43 UTC
    Someone simply must mention the C bible: Kernighan + Ritchie

    Amazon Link to K+R

    Not exactly a "C for dumbies" book! ;-) Written by the guys who wrote C.

    If for no other reason, you can find out where "hello world" comes from (I think).

    Nothing is too wonderful to be true
    -- Michael Faraday

      I learned C from the original K+R (before ANSI C, prototypes, etc. and before programming/computer books were easily found in a mainstream bookstore...) It worked well for me - concise and to the point.


Re: shameful admission
by SirBones (Friar) on Jun 15, 2004 at 20:01 UTC

    For better or worse, C is kind of the protoplasm (or maybe the gelatinous goo) of the computing universe, especially the networked/interneted corner. You can probably get by without writing any these days, but obtaining a reading knowledge is necessary if you want to look at any of the internals.

    C++ makes it much harder to shoot yourself in the foot, but when you do, it blows off your whole leg.
    - Bjarne Stroustrup

Re: shameful admission
by bibo (Pilgrim) on Jun 15, 2004 at 16:53 UTC
    In the old days <grin> we used to think there were more lines of COBOL in the universe than any other language...I suspect now, if some poor soul was to make a survey, we would find that C (and C++) have overtaken COBOL.

    I think if you need it, you should do it. If you already know how to program in other languages, then you are over the hardest part anyway.

        No, it can be done with much less. The following will torture many a soul.

        0000-MAIN. CALL 'printf' USING 'Hello, World' END-CALL. EXIT.

        yeah, that was exactly what i was thinking!


Re: shameful admission
by porkpilot (Deacon) on Jun 15, 2004 at 21:01 UTC
    I don't know that you should learn to program proficiently in C, but I have often found myself thankful that I can (more or less easily) *read* C. In my experience, this is a useful skill for almost any programmer--especially since a lot of practical algorithm examples are available in C for just about any purpose. I would say, further, that the shortest route to being able to read C is to acquire at least fundamental skill at *writing* C. Heck, you may like it enough to become proficient...or, even more fearsome--tackle C++! :-)
      Very important point to make a difference between reading and writing skills. E.g. if you want to do Computer Linguistics you may get away coding in C, Java or whatever, but you will need reading knowledge of Lisp and Prolog. If you do scientificcomputing its Fortran, if you are going to become a Windows Guru probably Visual Basic, even if you will not do any programming in this languages.
Re: shameful admission
by halley (Prior) on Jun 15, 2004 at 19:58 UTC
    After you learn enough C to do a small project, I also recommend people get familiar with non-imperative languages. All your languages so far simply tell the computer what to do, not what you want solved.

    Learn Prolog, APL, Matlab, and others. Just enough for a small project in each.

    Every language you learn will reshape how you think of problem-solving, and the things that are common will be reinforced as well.

    You'll boggle as you see Perl features in Ada and Forth and FORTRAN.

    [ e d @ h a l l e y . c c ]

Re: shameful admission
by dba (Monk) on Jun 15, 2004 at 18:28 UTC
    If you are into some kind of programming or work in IT, be sure to learn atleast the basics of C.
    It has been and will be the basis for many operating systems /applications /languages. Be warned, it will not be simple as the current 'clerical' scripting languages.
    In these days of 'high productivity' programming languages, still many manufacturing / high availability (stable)applications run in C.
    You can find a lot of websites offering tutorials.
    Good luck.
Re: shameful admission
by drfrog (Deacon) on Jun 15, 2004 at 20:43 UTC
    I just started learning c!

    i picked up 'the C programming language'
    by Kernighan and Ritchie

    just go through the chapters one at a time!
Re: shameful admission
by heroin_bob (Sexton) on Jun 16, 2004 at 00:23 UTC
    My 2 Cents:
    C, alongside assembly, was the first language I learned and I can definitely recommend becoming familiar with it... if for no other reason than to have a better understanding of a very useful, robust language. I only use C/C++ and assembly to hack around in the Quake 3 and UT2004 engines, but it makes for a fun hobby. Regardless, they make excellent foundations for any programmer.

    "If you're ever lost and need directions, ask the guy on the motorcycle."
Re: shameful admission
by jepri (Parson) on Jun 16, 2004 at 12:51 UTC
    Go ahead and learn C. You'll appreciate Perl sooo much more afterwards :)

    I'm only half joking there...

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

Re: shameful admission
by Steve_p (Priest) on Jun 16, 2004 at 18:21 UTC

    C is a very handy thing to know. There is plenty of C code still out there and the jobs, to me at least, seem easier and easier to find. Many C programmers have migrated to Java and other less intensive languages and now claim ignorance about C. Fewer and fewer schools are turning out new C and C++ programmers. After a long C dryspell, I've been working steadily with C for about six months now, and I don't see it ending.

Re: shameful admission
by zentara (Archbishop) on Jun 16, 2004 at 15:26 UTC
    C is nice to have "in your bag-o-tricks"; but I've seen alot of Perl programmers say they wish they could forget what they learned in "C". (Mostly to avoid syntax confusion). :-)

    I'm not really a human, but I play one on earth. flash japh

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://366928]
Front-paged by pbeckingham
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (1)
As of 2023-06-06 05:54 GMT
Find Nodes?
    Voting Booth?
    How often do you go to conferences?

    Results (26 votes). Check out past polls.