Does pure, standard C++ alone serve any practical purpose?

Discussion in 'C++' started by Peter, Dec 23, 2012.

  1. Peter

    Peter Guest

    Just wondering. Are there any branches of programming industry where
    very good knowledge of C++ and ONLY C++ suffices or is the language
    alone, without the aid of external frameworks completely useless
    unless one attempts to write some trivial applications?

    Let me put it this way. Someone knows C++ very well, but doesn't know
    any frameworks/libraries such as Qt or MFC, just the language itself.
    Does such a person have any real value as a programmer? Is the bare-
    bone C++ of any real use, especially if we consider the fact that many
    frameworks reinvent the wheel by introducing their own counterparts of
    stuff included in C++ standard library (minor example: QString instead
    of std::string in Qt, major example: a completely new set of
    containers called NTL as opposed to STL in a framework called Ultimate+
    +). Yes, I know they all use "standard stuff" underneath, but I think
    you get my point. Even if implementation of QString is (probably)
    based on std::string, it's hard to say a programmer who uses QString
    still uses "standard C++".

    So, basically it means all real-world C++ applications are written in
    something more than just C++ and, as a consequence, people who develop
    them must often relearn stuff they already know. Conclusion: knowing C+
    + alone is pretty much useless and is just a necessary introduction to
    learning a bunch of libraries/frameworks.
    Is it right? Or are there any jobs where C++ is all that's needed?
    Peter, Dec 23, 2012
    #1
    1. Advertising

  2. On Sun, 23 Dec 2012 12:13:39 -0800, Peter wrote:

    > Conclusion: knowing C+
    > + alone is pretty much useless and is just a necessary introduction to
    > learning a bunch of libraries/frameworks.


    is not necessary, you just have to use it, stop learning

    better yet, use a higher level language
    Bud Fudlacker, Dec 23, 2012
    #2
    1. Advertising

  3. Peter

    Paul Rubin Guest

    Peter <> writes:
    > Let me put it this way. Someone knows C++ very well, but doesn't know
    > any frameworks/libraries such as Qt or MFC, just the language itself.
    > Does such a person have any real value as a programmer?


    I'd say value as a programmer comes from less from knowing specific
    languages and libraries, and more from having the reflexes and idioms of
    dealing with real-world programs, plus the techniques and algorithms for
    specific application areas.

    > Is the bare- bone C++ of any real use,


    Sure. C++ has technical shortcomings just like everything else, but
    it's probably the predominant tool for writing highly optimized, complex
    code, which is always useful. Lots of embedded systems, compilers, math
    programs, etc. are written in C++ without using those frameworks.

    The fact that you're even asking such a question implies kind of a
    limited understanding of what programming is actually like.

    You do generally have to interact with some messy framework to program
    GUI's in C++, but GUI programming is just one particular specialized
    niche. There's tons of C++ code you can write that has nothing to do
    with GUI's.
    Paul Rubin, Dec 23, 2012
    #3
  4. * Peter:

    > Let me put it this way. Someone knows C++ very well, but doesn't know
    > any frameworks/libraries such as Qt or MFC, just the language itself.
    > Does such a person have any real value as a programmer? Is the bare-
    > bone C++ of any real use, especially if we consider the fact that many
    > frameworks reinvent the wheel by introducing their own counterparts of
    > stuff included in C++ standard library


    Many large C++ programs come with their own framework anyway, so
    knowing Qt or MFC doesn't help that much there.
    Florian Weimer, Dec 23, 2012
    #4
  5. Peter

    Ian Collins Guest

    Peter wrote:
    > Just wondering. Are there any branches of programming industry where
    > very good knowledge of C++ and ONLY C++ suffices or is the language
    > alone, without the aid of external frameworks completely useless
    > unless one attempts to write some trivial applications?


    Probably > 90% of the C++ I write is standard C++. The other 10% is
    platform specific code. Any large non-GUI C++ application would most
    likely have a similar split. So there will be programmers on the
    project who only work on the application logic. On one of my embedded
    projects, only two of us out of a team of eight looked after the
    platform specific code.

    --
    Ian Collins
    Ian Collins, Dec 23, 2012
    #5
  6. Peter

    red floyd Guest

    On 12/23/2012 1:31 PM, Paavo Helde wrote:
    > (there is a
    > saying that one can write FORTRAN in any language but I have not heard a
    > similar clame for C++;).
    >


    Or as I heard it phrased, "You can always tell an old FORTRAN
    programmer, but you can't tell him much..."

    Back in the early 80's (pre C++, pre C89), I inherited some
    C code written by an old FORTRAN guy. One source file, 6000 lines,
    left justified AND right justified (comments were right justified).

    Made it hell to maintain. Wound up using csplit and cb to fix it.
    red floyd, Dec 24, 2012
    #6
  7. Peter

    W Karas Guest

    On Sunday, December 23, 2012 3:13:39 PM UTC-5, Peter wrote:
    > Just wondering. Are there any branches of programming industry where
    >
    > very good knowledge of C++ and ONLY C++ suffices or is the language
    >
    > alone, without the aid of external frameworks completely useless
    >
    > unless one attempts to write some trivial applications?
    >
    >
    >
    > Let me put it this way. Someone knows C++ very well, but doesn't know
    >
    > any frameworks/libraries such as Qt or MFC, just the language itself.
    >
    > Does such a person have any real value as a programmer? Is the bare-
    >
    > bone C++ of any real use, especially if we consider the fact that many
    >
    > frameworks reinvent the wheel by introducing their own counterparts of
    >
    > stuff included in C++ standard library (minor example: QString instead
    >
    > of std::string in Qt, major example: a completely new set of
    >
    > containers called NTL as opposed to STL in a framework called Ultimate+
    >
    > +). Yes, I know they all use "standard stuff" underneath, but I think
    >
    > you get my point. Even if implementation of QString is (probably)
    >
    > based on std::string, it's hard to say a programmer who uses QString
    >
    > still uses "standard C++".
    >
    >
    >
    > So, basically it means all real-world C++ applications are written in
    >
    > something more than just C++ and, as a consequence, people who develop
    >
    > them must often relearn stuff they already know. Conclusion: knowing C+
    >
    > + alone is pretty much useless and is just a necessary introduction to
    >
    > learning a bunch of libraries/frameworks.
    >
    > Is it right? Or are there any jobs where C++ is all that's needed?


    Me personally, I think the reason many people become hostile to C++ is thatthey feel they must know the language as well as they do C to get value from it. I continue to use C-style strings and I/O due to laziness and the fact that the problems/limitations with these are not as significant in my application area. I know that's off the original topic. But, if the more general topic is being overwhelmed by the "total complexity" of an application (programming language features, libraries/frameworks, application knowledge, etc.) an option is to limit what features of each component you use. That is, if a component has features X, Y and Z, you shouldn't substitute acomponent that only has feature X because you don't need/want Z. Just don't use Z, and don't feel you can't use the original component because you don't thoroughly understand (or like) Z.
    W Karas, Dec 24, 2012
    #7
  8. Peter

    Öö Tiib Guest

    On Sunday, 23 December 2012 22:13:39 UTC+2, Peter wrote:
    > Just wondering. Are there any branches of programming industry where
    > very good knowledge of C++ and ONLY C++ suffices or is the language
    > alone, without the aid of external frameworks completely useless
    > unless one attempts to write some trivial applications?


    Let me paraphrase:
    "are there any branches in building industry where very good knowledge
    of screwdriver and ONLY screwdriver suffices or is the tool alone without
    the aid of other tools completely useless unless one attempts to clean
    dirt from under his fingernails?"

    > Is the bare- bone C++ of any real use, especially if we consider the fact
    > that many frameworks reinvent the wheel by introducing their own
    > counterparts of stuff included in C++ standard library (minor example:
    > QString instead of std::string in Qt, major example: a completely new set of
    > containers called NTL as opposed to STL in a framework called Ultimate+
    > +).


    C++ standard library contains useful templates loaned from other libraries.
    The major loans are made from STL and from boost.

    When you study C++ standard library more closely then you see that lot of
    useful container types are missing (like ring buffers, non-binary trees, tries
    and various graphs).

    You may discover that some container has constraints or behavior that
    makes it inefficient for usage in particular solution. I have used C++ for ~20
    years and used profilers a lot. Still I have not measured a real world usage
    where std::list had best performance among alternatives.

    People are writing and sometimes publishing their own containers, smart
    pointers and algorithms all the time. It is quite educational to take and
    download and compile and try some NTL or Qt or the like. Often you
    can find some useful thing there and nothing is really perfect for everything.

    > Yes, I know they all use "standard stuff" underneath, but I think
    > you get my point. Even if implementation of QString is (probably)
    > based on std::string, it's hard to say a programmer who uses QString
    > still uses "standard C++".


    std::string is byte container. It can be (and is often) used as ASCII or UTF-8
    character container. QString is UTF-16 character container. If that
    difference does not matter now for you then it eventually will one day.

    > So, basically it means all real-world C++ applications are written in
    > something more than just C++ and, as a consequence, people who develop
    > them must often relearn stuff they already know. Conclusion: knowing C+
    > + alone is pretty much useless and is just a necessary introduction to
    > learning a bunch of libraries/frameworks.


    "All real world English books are written using something more than just
    plain English." With same conclusion.

    > Is it right? Or are there any jobs where C++ is all that's needed?


    Being good software developer often takes more than knowledge of particular
    tool or toolbox. People with good limited knowledge are very useful for
    their limited use-cases. On the other edge there is Jack of All Trades whose
    usage is also ... limited. You have given the time from your birth until your
    death. So meanwhile pick your poison yourself and try to enjoy it ... there
    are no ultimate winning strategies in this game. ;-)
    Öö Tiib, Dec 25, 2012
    #8
  9. Peter

    Jorgen Grahn Guest

    On Sun, 2012-12-23, Peter wrote:
    > Just wondering. Are there any branches of programming industry where
    > very good knowledge of C++ and ONLY C++ suffices or is the language
    > alone, without the aid of external frameworks completely useless
    > unless one attempts to write some trivial applications?


    I don't think there are any such programmers to begin with. Few
    interesting tasks can be solved using /only/ C++. However ...

    > Let me put it this way. Someone knows C++ very well, but doesn't know
    > any frameworks/libraries such as Qt or MFC, just the language itself.
    > Does such a person have any real value as a programmer? Is the bare-
    > bone C++ of any real use, especially if we consider the fact that many
    > frameworks reinvent the wheel by introducing their own counterparts of
    > stuff included in C++ standard library (minor example: QString instead
    > of std::string in Qt, major example: a completely new set of
    > containers called NTL as opposed to STL in a framework called Ultimate+
    > +). Yes, I know they all use "standard stuff" underneath, but I think
    > you get my point. Even if implementation of QString is (probably)
    > based on std::string, it's hard to say a programmer who uses QString
    > still uses "standard C++".


    But that's not the only way reality works! I do much of my plain Unix
    programming in C++. There are no invasive frameworks involved, just
    the usual Unix APIs, which are decidedly non-invasive.

    So there's work where you need to use stuff that's not standard C++
    (e.g. the BSD sockets API) and yet there are no parts of C++ which
    are forbidden or otherwise useless.

    Disclaimer: I don't know about other environments -- for example how
    twisted your code has to be if you're going to write for Windows, OS/X
    or Qt. I tend to stay away from anything called a "framework".

    /Jorgen

    --
    // Jorgen Grahn <grahn@ Oo o. . .
    \X/ snipabacken.se> O o .
    Jorgen Grahn, Dec 29, 2012
    #9
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Shawn
    Replies:
    2
    Views:
    567
    Shawn
    Jun 24, 2005
  2. Hattuari
    Replies:
    11
    Views:
    821
    Julie J.
    Feb 26, 2004
  3. Tom Anderson

    Re: Does final serve any purpose?

    Tom Anderson, Oct 13, 2010, in forum: Java
    Replies:
    4
    Views:
    253
  4. Kevin McMurtrie

    Re: Does final serve any purpose?

    Kevin McMurtrie, Oct 14, 2010, in forum: Java
    Replies:
    4
    Views:
    267
    Kevin McMurtrie
    Oct 15, 2010
  5. Plotinus
    Replies:
    2
    Views:
    283
    Tad McClellan
    Dec 17, 2004
Loading...

Share This Page