From: DeMarcus on
On 2010-06-25 02:34, joe wrote:
> "DeMarcus"<use_my_alias_here(a)hotmail.com> wrote in message news:4c2206bd$0$281$14726298(a)news.sunsite.dk...
>> On 2010-06-22 01:43, Anton Zakitniy wrote:
>>> Hello!
>>> Forgive me if my question is stupid and english is not native for me.,
>>> but it worries me!
>>> I'm not very experienced
>>> programmer. I really like C + + and I want to become a good
>>> programmer.
>>> But something that bothers me.
>>> Will C + + language is enough demand in the near future?
>>> Will it continue to use many, many companies and many, many projects,
>>> not only for operating systems and games?
>>> I not want to C + + is outdated so soon and C# will take up positions
>>> at the C + +.
>>> I would be happy to know the answer from a programming guru!
>>>
>>> I wish you all the best!
>>>
>>
>> C++ is one of few internationally _standardized_ programming languages.
>
> You say that like it is a good thing!
>

It is a very, very good thing.

1. The whole industry is involved in the decision of making changes to
the standard.

2. We get a slow development of the standard to ensure the new features
will last, e.g. thread support.

In general, what we get is a reliable programming language that will
last, not just something pushed by some marketing department with flashy
"Version 17.0 out now!" banners. C++ is not part of any language
competition that we see between companies.

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.


>> You should be more afraid of the lifetime of languages owned by a
>> company. Look what happened to Visual Basic 6.0. It's now deprecated!
>>
>
> So what you are basically saying, C++ isn't the worst of 2 evils (?). The
> PL landscape is much larger than C++ vs. proprietary languages. IMO, C++
> will morph or fork or become increasingly uncompetitive (chosen less and
> less by programmers, projects and organizations).
>

As I said, proprietary languages may be good in areas where language
development pace is more important than durability. C++ is one of few
languages I trust in the sense of durability.

It's also interesting you mention that C++ is likely to fork, when as
far as I know (please correct me if I'm wrong), the only entity that has
done a fork of C++ is Microsoft. When it comes to for instance Java, we
already see a fork in terms of Scala.

http://en.wikipedia.org/wiki/Scala_(programming_language)

No sane company would fork C++ today, especially when it now feels
stronger than ever.









--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

From: John G Harris on
On Sun, 27 Jun 2010 at 09:16:34, in comp.lang.c++.moderated, Le Chaud
Lapin wrote:

<snip>
>For example, during the middle of the 20th century, there was heated
>debate about whether the phasor method, using basic trigonometry, or
>the Laplace transform method, using complex analysis, was better for
>circuit analysis for electrical engineers.
<snip>

As it happens I was taught both phasors and Laplace transforms (in
1960). It was obvious that they were suited to different problems.

Likewise, different programming languages are suited to different
problem areas. For instance, Cobol is better than C++ at describing
alien data formats.

John
--
John Harris

[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

From: Martin B. on
On 27.06.2010 17:16, Le Chaud Lapin wrote:
> On Jun 24, 7:37 pm, "joe"<jc1...(a)att.net> wrote:
>> I disagree. Doing something to learn something else is not an efficient
>> use of time. To learn other paradigms, read some books on language
>> design. No need to to get deep into other languages unless you are still
>> (....) Use your time wisely.
>
> There is an implicit untruth that is told by every person who compares
> without qualification C++ to languages like Java/C#/Python :
>
> Programmers who rightly call themselves proficient in C++, generally
> speaking, are more competent, as engineers, than programmers who call
> themselves proficient in languages like Python.
>

A programmer that really knows C++ well may know more about the details
and pitfalls of low-level workings when executing code on a computer. To
claim that that makes him a more competent engineer seems a bit over the
top though. Engineering is just as much about knowing the right tools
for the job and how to use them as it is about knowing the basics. Now
regarding computing, I do think a "C++ engineer" will know more about
the foundations of what make his work tick, but a good "dynamic language
engineer" might know what tools to use to get his job done efficiently.

> This discussion we are having regarding languages as tools...it exists
> in parallel engineering disciplines.
>
> For example, (....)
>
> The point is this:
>
> It is not enough to compare languages. One must also compare the
> engineers, and what exists in the mind of each engineers after s/he
> has learned a language.
>

Except that you do *not* learn a programming language in isolation. You
are exposed to different tools and different environments and all this
knowledge of how to combine it all to *make* something that other human
beings find useful adds up and is what make you a good (or bad) engineer.

> A person who masters Python, in general, cannot compare to one who
> masters C++. The very notion that someone is a master of C++ implies
> that s/he knows more about software engineering than someone who has
> mastered some other high-level interpreted language.
>
> Which engineer do you want on your team...the trig-only guy who was
> frightened off by complex analysis, or the Laplace transform guy who
> does not know trig-only method? One easily learns what the other
> knows, but the converse is not true.
>

If I'm building a webapplication, I'll want the Python engineer. She's
much more likely to be effective in a heterogeneous environment,
probably she has done some other scripting languages as well. She might
also be a lot better and more disciplined when it comes to practises
such as unit testing etc.

If I'm building a numerical processing tool, I'll want the C++ engineer.
She'll know how to use C++ or D or C to her advantage and she'll be more
aware of performance pitfalls.

Note that I want an engineer in both cases, not just someone who calls
herself programmer and hacks stuff together equivalent to someone using
duct tape to build a house.

C++ is a good language with too many warts. We as C++ engineers should
not be so foolish as to look down on other people just because they are
proficient in something else.

cheers,
Martin

--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

From: Jens Schmidt on
John G Harris wrote:

> Likewise, different programming languages are suited to different
> problem areas.

Definitely. But some are nearly universally suited, and some are
mostly useful as a bad example. C++ is in the first group, pick
your own for the second. :-)

> For instance, Cobol is better than C++ at describing
> alien data formats.

Not, if the alien data format is XML. COBOL's great advantage
are tabular formats with textual representation in fixed size fields.
Not a large niche today. Even for closely related formats like CSV
I won't even consider COBOL.
--
Viele Grüße,
Jens Schmidt


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

From: Le Chaud Lapin on
On Jun 28, 7:11 am, John G Harris <ne...(a)nospam.demon.co.uk> wrote:
> On Sun, 27 Jun 2010 at 09:16:34, in comp.lang.c++.moderated, Le Chaud
>
> Lapin wrote:
>
> <snip>>For example, during the middle of the 20th century, there was heated
> >debate about whether the phasor method, using basic trigonometry, or
> >the Laplace transform method, using complex analysis, was better for
> >circuit analysis for electrical engineers.
>
> <snip>
>
> As it happens I was taught both phasors and Laplace transforms (in
> 1960). It was obvious that they were suited to different problems.

Hmmm...if, by "different problems", you mean "different student
audiences", I agree. But in both cases, the problem is circuit
analysis, and there is nothing that a phasor can tell me that I cannot
determine much more quickly using Laplace transforms and pole-zero
plots.

> Likewise, different programming languages are suited to different
> problem areas. For instance, Cobol is better than C++ at describing
> alien data formats.

Yes, I would have to agree, but this misses my original point.

One must ask:

"All other things being equal, what is in the mind of a COBOL-only
programmer vs. C++-only programmer?"

The imagery that manifests in the minds of each might be more or less
the same if the problem is the same:

"Write a program to send out reminders to all customers whose frequent-
flyer miles are to expire within 30 days."

To solve this problem, both programmers might think about FOR loops,
the C++ programmer thinking FOR/DO/WHILE, the COBOL programmer
apparently thinking PERFORM. Both programmers might think about what
email-interface API is available. And so on.

But watch what happens when we change the problem:

"Write a device driver to encrypt all packets exiting a 1Gb/s Ethernet
adapter using 256-bit AES."

The C++ programmer might find the answer after some fidgeting. The
COBOL programmer's mind will go blank.

Note that the fundamental issue here is not insufficiency of the
language: that COBOL cannot be used to write device drivers. We can
easily solve the insufficiency problem by presenting a third,
fictitious language, XYZ, that might be used by both programmers:

"You have 3 hours to implement a basic skeletal driver using this new
XYZ language that is legendary for implementing device drivers."

In that case, the C++ programmer would rummage through XYZ, hunting
for primitives that s/he is confident transcends all languages
suitable for implementing device drivers. The COBOL programmer's mind
would still remain blank.

This is why, whenever a young person asks,

"Which language should I learn to be a good programmer?"

We should take into consideration what is really being asked, and
respond with another question:

"What scope of understanding do you want in the field of software
engineering?"

If the answer is, "I don't care. I just want to do some number
crunching.", then many languages will do.

If the answer is "I want to know what's really going on...", then a
good answer is "C++", because it is very hard to know C++ well and not
know what's really going on.

-Le Chaud Lapin-


--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]