![]() |
Does pure, standard C++ alone serve any practical purpose?
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? |
Re: Does pure, standard C++ alone serve any practical purpose?
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 |
Re: Does pure, standard C++ alone serve any practical purpose?
Peter <pilarp@poczta.onet.pl> 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. |
Re: Does pure, standard C++ alone serve any practical purpose?
* 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. |
Re: Does pure, standard C++ alone serve any practical purpose?
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 |
Re: Does pure, standard C++ alone serve any practical purpose?
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. |
Re: Does pure, standard C++ alone serve any practical purpose?
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. |
Re: Does pure, standard C++ alone serve any practical purpose?
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. ;-) |
Re: Does pure, standard C++ alone serve any practical purpose?
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 . |
| All times are GMT. The time now is 07:47 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.