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

P

Peter

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?
 
B

Bud Fudlacker

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
 
P

Paul Rubin

Peter said:
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.
 
F

Florian Weimer

* 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.
 
I

Ian Collins

Peter said:
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.
 
R

red floyd

(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.
 
W

W Karas

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.
 
Ö

Öö Tiib

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. ;-)
 
J

Jorgen Grahn

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
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top