Prev: Generating a derived class from a base class
Next: Why is the return type of count_if() "signed" rather than "unsigned"?
From: Walter Bright on 28 Jun 2010 10:32 Bo Persson wrote: > You might also consider that it could be more profitable not to know > just the same languages as everybody else. Being very popular (C#, > Java) also means that there is more people competing for the jobs. If > you have your own niche... >From what I've heard from tech recruiters, a C++ programmer can earn twice as much as a Java programmer at the same skill level. --- Walter Bright free C, C++, and D programming language compilers (Javascript too!) http://www.digitalmars.com -- [ See http://www.gotw.ca/resources/clcm.htm for info about ] [ comp.lang.c++.moderated. First time posters: Do this! ]
From: Daniel on 29 Jun 2010 16:51 On Jun 27, 11:05 am, Francis Glassborow <francis.glassbo...(a)btinternet.com> wrote: > C++ is an exceptionally large language that allows you to > express problem solutions based on several different > paradigms but many find that hard to grasp, they just > think C++ is hard and confusing. > It _is_ hard and confusing :-) You're not seriously suggesting that it isn't? The language is hard, but not hard in the sense of a functional language, where understanding theory is required to understand the language, and the effort taken to learn it has its rewards. Rather, in C++ there's just a lot of scattered stuff you have to know to write reliable code, from case conventions for constants, to notions of exception safety, to details of memory management, to implications of default generated constuctors and operators. I think it takes most programmers a couple of years to pick this up. Even so, most C++ programmers won't know the answers to most of the questions posted on this newsgroup. Multiple "paradigms"? It doesn't do any of them well. It doesn't do functional well. It doesn't do OO well. It doesn't do reflection. It's not elegent. Having both .h's and .cpp's seems redundant, both contain implementation. There's no date clss in the standard library (second most useful class after string.) Using unicode is painful. The std library is full of things that must have at one time seemed like good ideas, like is and os. It seems to be difficult even for experts to write good classes, witness the posts on std::string. It can be painful getting stuff to work. Libraries often don't work, I tried using boost ublas, and band matrices don't work. But C++ is useful. It is useful when it is necessary to write low level code. It is legacy. There is an existing base. -- Daniel -- [ See http://www.gotw.ca/resources/clcm.htm for info about ] [ comp.lang.c++.moderated. First time posters: Do this! ]
From: TheGunslinger on 29 Jun 2010 17:02 On Sun, 27 Jun 2010 09:05:59 CST, Francis Glassborow <francis.glassborow(a)btinternet.com> wrote: >TheGunslinger wrote: > >> >> So, go learn C++. You will learn all the basic programming logic and >> concepts of the language which can be utilized to learn a second or >> third... programming language. >> > >There is a danger there. Far too many people treat every PL as a dialect >of whatever language the learn first (You can write Fortran in any language) I agree with you 100% here. Every PL has its own unique syntax. However, syntax is not programming logic. If I do a conditional in BASIC or C++ or JAVA, for example, the logic flow is essentially the same. The implementation is language specific. I list BASIC, C++, and JAVA because I am familiar with and have programming skills in each. That is why I make the statement above. >The great advantage of learning diverse language (whether human or >computing) is that it expands your range of thinking. Many people have >great difficulty with, for example, Lisp because they cannot easily get >it to match the way they solve problems in a language such as C, C++ or >Java. But that is exactly why getting some mastery of Lisp (Prolog, >Forth, Haskell etc) is so beneficial. Note that each of those languages >is very distinctly different and it does take time to understand how to >use them, but that time spent will be rewarded. Agree with you here, also. I had 2-years of Latin in high school. Was in a Bilingual elementary school, and had both English and Spanish exposure. Mother took a Greek cooking class and learned some Greek. And I took better part of a year of German in college. The way each of the languages are implemented differ even within the classification of Romance languages vs. Germanic vs. English/American English. > >Just as time spent learning Arabic, Chinese, Japanese and at least one >aboriginal language is much better than learning five European >languages. It is the fundamental differences that broaden your >understanding, not the similarities. Of course that also makes them hard >to learn. Never had the motivation/opportunity to learn any of these. Interested in learning Arabic and Farsi. Would , also, like to learn Mandarin or Cantonese, and Japanese. More likely that I will spend some time to learn Navajo and/or another Native American language. Unfortunately, I never was a language major. LOL.... > >If I had my way (perhaps it is fortunate that I do not) I would require >every child to learn Sign (very useful even if you are not deaf), at >least one near eastern language (arabic, hebrew etc) and at least one >far eastern language (one of the Chinese languages, Japanese etc.) And I >would require similar diversity from those learning programming. Did learn a smattering of Sign at one time. Have forgotten most of it, though. > >In the hands of a good teacher C++ is an excellent language but that >should not be the end of your programming learning. And learning C++ >will not actually be that helpful when you come to learn Forth or Lisp >though it might make learning Java or C# rather easier. I am teaching myself JAVA atm in preparation for college courses starting in Aug/Sept. I have a solid background in C++, but would at best still consider myself a novice. There are enough similarites in implementation of class, struct, templates >> OOP between C++ and JAVA, that it is easy to put them into the same wrapper. BUT the differences in implementation suggest that you should think of them as separate and distinct languages which SHARE some conceptual similarities. Otherwise, I try to program JAVA in C++, and it doesn't work. This analogy is especially significant when comparing Latin - French - Spanish. Many similarites, all are Romance languages, but the differences make each a unique language. I think this latter opinion is shared by many who come from a C-background, learn C++, but keep trying to program C within C++ using C-syntax. It jst don't work. IMHO... MJR -- [ See http://www.gotw.ca/resources/clcm.htm for info about ] [ comp.lang.c++.moderated. First time posters: Do this! ]
From: Alf P. Steinbach /Usenet on 30 Jun 2010 22:33 * DeMarcus, on 27.06.2010 17:27: > > We also know that code we write today will compile also in five years. > Quick development of a language may be good in areas where software is > developed and thrown out in the same pace, but where you want an > application to live some years it's not fun to realize you can't make > changes to five year old code just because it won't compile due to some > CEO's business strategy decision. C++ code can become stale so that it will not compile, so called /code rot/, just because the libraries that it relies on have changed, and/or the compilers have changed. And this is not uncommon. For a concrete example with entertaining discussion, see <url: http://wordaligned.org/articles/code-rot>. In light of this, I don't think the argument quoted above holds water. It may even be the other way around. For it's not uncommon for companies and projects to be stuck with some old C++ compiler. Even a pre-standard one. Cheers, - Alf -- blog at <url: http://alfps.wordpress.com> [ See http://www.gotw.ca/resources/clcm.htm for info about ] [ comp.lang.c++.moderated. First time posters: Do this! ]
From: Keith H Duggar on 30 Jun 2010 23:28
Francis Glassborow wrote: > The great advantage of learning diverse language (whether human or > computing) is that it expands your range of thinking. Many people have > great difficulty with, for example, Lisp because they cannot easily get > it to match the way they solve problems in a language such as C, C++ or > Java. But that is exactly why getting some mastery of Lisp (Prolog, > Forth, Haskell etc) is so beneficial. Note that each of those languages > is very distinctly different and it does take time to understand how to > use them, but that time spent will be rewarded. > > Just as time spent learning Arabic, Chinese, Japanese and at least one > aboriginal language is much better than learning five European > languages. It is the fundamental differences that broaden your > understanding, not the similarities. Of course that also makes them hard > to learn. This is all very true. However, one also learns much from deep mastery of one thing. You learn the subtlty of design choices, gain appreciation for the fundamental tradeoffs and historical roots of the language, exercise creativity by forging solutions from limited tools, etc. There is a joke at MIT: At Harvard you learn less and less about more and more until you know nothing about everything. At MIT you learn more and more about less and less until you know everything about nothing. It is important to strike a balance between breadth and depth. KHD -- [ See http://www.gotw.ca/resources/clcm.htm for info about ] [ comp.lang.c++.moderated. First time posters: Do this! ] |