how relevant is C today?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • John Salerno

    how relevant is C today?

    Because of my 'novice-ness' in programming, I had always thought that C
    was replaced by C++ and wasn't really used anymore today. I know that's
    not the case at all now, but I'm still curious how much C is used
    anymore in programming today, and what purpose it serves. Is it used for
    actual application programming, or is its use more for something like
    extending Python? Would it help for a newbie to learn C for any reason?
  • Martin v. Löwis

    #2
    Re: how relevant is C today?

    John Salerno wrote:[color=blue]
    > Because of my 'novice-ness' in programming, I had always thought that C
    > was replaced by C++ and wasn't really used anymore today. I know that's
    > not the case at all now, but I'm still curious how much C is used
    > anymore in programming today, and what purpose it serves. Is it used for
    > actual application programming, or is its use more for something like
    > extending Python? Would it help for a newbie to learn C for any reason?[/color]

    My impression is that C++ hasn't managed to replace C, and that it isn't
    used that much for new projects; of course, there is tons of existing
    C++ code.

    I think John Ousterhout's distinction of System programming vs.
    Scripting languages isn't that bad, after all. C is used heavily
    for System programming, and will not be replaced there for a foreseeable
    future: operating systems, programming languages, web servers, database
    servers, etc. OTOH, application programming is done in Java, Python,
    C#, Ruby, ... C++ is used both for system programming and applications.

    As for *learning* the languages: never learn a language without a
    specific inducement. If you know you are going to write a Python
    extension, an Apache module, or a Linux kernel module in the
    near future, start learning C today. If you don't know what you
    want to use it for, learning it might be a waste of time, as
    you won't know what to look for if you don't have a specific project
    in mind.

    Regards,
    Martin

    Comment

    • Mirco Wahab

      #3
      Re: how relevant is C today?

      Hi John
      [color=blue]
      > Because of my 'novice-ness' in programming, I had always thought that C
      > was replaced by C++ and wasn't really used anymore today. I know that's
      > not the case at all now, but I'm still curious how much C is used
      > anymore in programming today, and what purpose it serves.[/color]

      There is a whole spectrum of 'mixing' between features of
      C ans C++ used today in the industry and thats o.k. if it
      just works. You cal write plain C in a C++ environment,
      mix some C++ features to your otherwise plain C and
      so on - as you like.

      You can't compare C/C++'industrial use w/Python's in todays
      Software production - there is no match.

      A recent 580+ people survey (O'Reilly) brought up the following:
      Now, next, and beyond: Tracking need-to-know trends at the intersection of business and technology


      "The Dice" (find tech jobs) has offerings
      (last 7 days, U.S. + unrestricted) for:
      *SQL 14,322
      C/C++ 11,968
      Java 10,143
      ...
      Perl 3,332
      PHP 730
      *Python* 503
      Fortran 119
      Ruby 108
      open*gl 66

      That is what the industry looks for.
      You understand the ratios?
      [color=blue]
      > ... Is it used for
      > actual application programming, or is its use more for something like
      > extending Python? Would it help for a newbie to learn C for any reason?[/color]

      It is used for almost everything, from
      - Programming the Python Language itself,
      - Programming the Perl Language itself,
      - Programming the PHP language and others,
      to
      - complete Applications, as you said.

      It *is* somehow 'wordy' (especially C), but
      don't underestimate its power in the hands
      of a master ;-)

      There is a huge amount of highly
      functional libraries for almost
      everything too.

      Regards,

      M.

      Comment

      • Daniel Nogradi

        #4
        Re: how relevant is C today?

        > "The Dice" (find tech jobs) has offerings[color=blue]
        > (last 7 days, U.S. + unrestricted) for:
        > *SQL 14,322
        > C/C++ 11,968
        > Java 10,143
        > ...
        > Perl 3,332
        > PHP 730
        > *Python* 503
        > Fortran 119
        > Ruby 108
        > open*gl 66[/color]

        Can anyone shed some light on the secret of Java? How is it that they
        are so high on this list?

        Comment

        • Jorge Godoy

          #5
          Re: how relevant is C today?

          "Daniel Nogradi" <nogradi@gmail. com> writes:
          [color=blue]
          > Can anyone shed some light on the secret of Java? How is it that they
          > are so high on this list?[/color]

          Marketing? Hype? :-)

          --
          Jorge Godoy <godoy@ieee.org >

          "Quidquid latine dictum sit, altum sonatur."
          - Qualquer coisa dita em latim soa profundo.
          - Anything said in Latin sounds smart.

          Comment

          • Jorge Godoy

            #6
            Re: how relevant is C today?

            Mirco Wahab <wahab@chemie.u ni-halle.de> writes:
            [color=blue]
            > "The Dice" (find tech jobs) has offerings
            > (last 7 days, U.S. + unrestricted) for:
            > *SQL 14,322
            > C/C++ 11,968
            > Java 10,143
            > ...
            > Perl 3,332
            > PHP 730
            > *Python* 503
            > Fortran 119
            > Ruby 108
            > open*gl 66
            >
            > That is what the industry looks for.
            > You understand the ratios?[/color]

            Of course! You need 23 C/C++ people to do the job of one Pythoneer ;-)

            --
            Jorge Godoy <godoy@ieee.org >

            "Quidquid latine dictum sit, altum sonatur."
            - Qualquer coisa dita em latim soa profundo.
            - Anything said in Latin sounds smart.

            Comment

            • David Reed

              #7
              Re: how relevant is C today?


              On Apr 8, 2006, at 6:35 PM, Jorge Godoy wrote:
              [color=blue]
              > Mirco Wahab <wahab@chemie.u ni-halle.de> writes:
              >[color=green]
              >> "The Dice" (find tech jobs) has offerings
              >> (last 7 days, U.S. + unrestricted) for:
              >> *SQL 14,322
              >> C/C++ 11,968
              >> Java 10,143
              >> ...
              >> Perl 3,332
              >> PHP 730
              >> *Python* 503
              >> Fortran 119
              >> Ruby 108
              >> open*gl 66
              >>
              >> That is what the industry looks for.
              >> You understand the ratios?[/color]
              >
              > Of course! You need 23 C/C++ people to do the job of one
              > Pythoneer ;-)
              >
              > --
              > Jorge Godoy <godoy@ieee.org >[/color]


              +1 QOTW

              Dave

              Comment

              • Sybren Stuvel

                #8
                Re: how relevant is C today?

                John Salerno enlightened us with:[color=blue]
                > Because of my 'novice-ness' in programming, I had always thought that C
                > was replaced by C++ and wasn't really used anymore today.[/color]

                C is used in many, many programs. The Linux kernel is perhaps one of
                the best known. IIRC Apache is written inC too. The default Python
                implementation too, of course.

                Sybren
                --
                The problem with the world is stupidity. Not saying there should be a
                capital punishment for stupidity, but why don't we just take the
                safety labels off of everything and let the problem solve itself?
                Frank Zappa

                Comment

                • Sandra-24

                  #9
                  Re: how relevant is C today?

                  C/C++ is used for a lot of things and not going anywhere.

                  I recommend you learn it not because you should create applications in
                  C or C++, but because it will increase your skills and value as a
                  programmer. I recommend you even spend a few weeks with an assembly
                  language, for the same reason.

                  However, when it comes to beginning new things with an eye for getting
                  the job done, C/C++ (or Java for that matter...) is usually a bad idea.
                  That having been said, there are always exceptions to the rule and
                  you'll learn better how to call things as you advance your skills as a
                  programmer.

                  There are also sometimes parts of your application that just cannot be
                  optimized any more in a high level language, and might benefit from
                  being converted to C or C++. But do yourself a favor and only do such
                  things after taking careful measurements and exhausting other options.
                  Many time consuming algorithms don't gain a noticable speed improvement
                  in lower level languages.

                  -Sandra

                  Comment

                  • John Zenger

                    #10
                    Re: how relevant is C today?

                    Martin v. Löwis wrote:
                    [color=blue]
                    > As for *learning* the languages: never learn a language without a
                    > specific inducement. If you know you are going to write a Python
                    > extension, an Apache module, or a Linux kernel module in the
                    > near future, start learning C today. If you don't know what you
                    > want to use it for, learning it might be a waste of time, as
                    > you won't know what to look for if you don't have a specific project
                    > in mind.[/color]

                    Your message makes me sad, as if I heard someone say "never read a book
                    without a specific inducement; if you know someone is going to ask you
                    about the book, start reading it today, but if you don't know what you
                    are going to use the book for, reading it will be a waste of time."

                    Programming languages are intellectual achievements and you can learn a
                    lot every time you study a new one (provided it is different enough from
                    the ones you already know.) Even if you don't have an immediate project
                    in mind, learning a new programming language can mean learning a new
                    style of programming, or at least a new way of looking at computer
                    science. That is worthwhile even if you get no immediate use from the
                    new language.

                    Comment

                    • Grant Edwards

                      #11
                      Re: how relevant is C today?

                      On 2006-04-08, Martin v. Löwis <martin@v.loewi s.de> wrote:
                      [color=blue]
                      > As for *learning* the languages: never learn a language
                      > without a specific inducement.[/color]

                      That's silly. Learning (weather a computer language, a natural
                      language, or anything else) is never a bad thing. The more
                      languages you know, the more you understand about languages in
                      general. Learning languages is like any other skill: the more
                      you do it, the better you get at it.
                      [color=blue]
                      > If you know you are going to write a Python extension, an
                      > Apache module, or a Linux kernel module in the near future,
                      > start learning C today. If you don't know what you want to use
                      > it for, learning it might be a waste of time, as you won't
                      > know what to look for if you don't have a specific project in
                      > mind.[/color]

                      Geeze, when I think of all the things I've "wasted my time"
                      learning.

                      --
                      Grant Edwards grante Yow! Kids, don't gross me
                      at off... "Adventures with
                      visi.com MENTAL HYGIENE" can be
                      carried too FAR!

                      Comment

                      • Carl Friedrich Bolz

                        #12
                        Re: how relevant is C today?

                        Grant Edwards wrote:[color=blue]
                        > On 2006-04-08, Martin v. Löwis <martin@v.loewi s.de> wrote:
                        >[color=green]
                        >>As for *learning* the languages: never learn a language
                        >>without a specific inducement.[/color]
                        >
                        > That's silly. Learning (weather a computer language, a natural
                        > language, or anything else) is never a bad thing. The more
                        > languages you know, the more you understand about languages in
                        > general. Learning languages is like any other skill: the more
                        > you do it, the better you get at it.[/color]

                        I don't exactly see why this is a contradiction. "Specific inducement"
                        does not necessarily mean that you have to have an external cause to
                        learn a language -- be it your job or whatever. Nobody hinders you from
                        creating that inducement yourself. It's just very hard to properly learn
                        a language without having an idea what to do with it (in fact, I have
                        seen people interested to learn programming utterly fail in doing so
                        because they had absolutely no clue what to program).
                        [color=blue][color=green]
                        >>If you know you are going to write a Python extension, an
                        >>Apache module, or a Linux kernel module in the near future,
                        >>start learning C today. If you don't know what you want to use
                        >>it for, learning it might be a waste of time, as you won't
                        >>know what to look for if you don't have a specific project in
                        >>mind.[/color]
                        >
                        > Geeze, when I think of all the things I've "wasted my time"
                        > learning.[/color]

                        Well, how many languages have you learnt without writing anything in them?

                        Cheers,

                        Carl Friedrich Bolz

                        Comment

                        • Martin v. Löwis

                          #13
                          Re: how relevant is C today?

                          John Zenger wrote:[color=blue]
                          > Your message makes me sad, as if I heard someone say "never read a book
                          > without a specific inducement; if you know someone is going to ask you
                          > about the book, start reading it today, but if you don't know what you
                          > are going to use the book for, reading it will be a waste of time."[/color]

                          Ah. I wasn't actually talking about reading a C book. I was talking
                          about learning the programming language. You should, of course, read
                          a book about C - but I don't believe you can learn to program C by
                          just reading a book (or any other programming language, for that
                          matter). You will read the book, and might be able to *read* C programs
                          afterwards. To be able to write them, you need practice, and, for
                          that, you need a specific inducement.

                          Regards,
                          Martin

                          Comment

                          • Martin v. Löwis

                            #14
                            Re: how relevant is C today?

                            Grant Edwards wrote:[color=blue][color=green]
                            >> As for *learning* the languages: never learn a language
                            >> without a specific inducement.[/color]
                            >
                            > That's silly. Learning (weather a computer language, a natural
                            > language, or anything else) is never a bad thing. The more
                            > languages you know, the more you understand about languages in
                            > general. Learning languages is like any other skill: the more
                            > you do it, the better you get at it.[/color]

                            Learning a language (whether a natural or a programming language)
                            needs practice, both for reading and for writing. Natural languages
                            are often taught under the guidance of a teacher, to make sure
                            the student gets the practice she needs.

                            In my experience, you won't learn a programming language
                            effectively if you don't get practice (in particular, in writing
                            programs - although reading them might even require *more*
                            practice, especially for C). And, people often don't practice
                            enough (either a natural language, nor a programming language)
                            if they don't have a specific goal in mind what they want to
                            learn the language for.
                            [color=blue]
                            > Geeze, when I think of all the things I've "wasted my time"
                            > learning.[/color]

                            That's everybody's choice, of course. If you enjoy programming
                            languages on their own merits, you won't need further motivation.
                            However, then you don't post to a newsgroup "should I learn
                            this language", but you just go ahead and do it.

                            Regards,
                            Martin

                            Comment

                            • Martin v. Löwis

                              #15
                              Re: how relevant is C today?

                              Carl Friedrich Bolz wrote:[color=blue]
                              > I don't exactly see why this is a contradiction. "Specific inducement"
                              > does not necessarily mean that you have to have an external cause to
                              > learn a language -- be it your job or whatever. Nobody hinders you from
                              > creating that inducement yourself. It's just very hard to properly learn
                              > a language without having an idea what to do with it (in fact, I have
                              > seen people interested to learn programming utterly fail in doing so
                              > because they had absolutely no clue what to program).[/color]

                              This is my experience also.

                              Regards,
                              Martin

                              Comment

                              Working...