From: Walter Bright on
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
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
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
* 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
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! ]