Should I learn C++? | | |
Hi,
I am a Junior Software Engineer who currently works programming in
Delphi. I have been working with Delphi for around 12mths but I am
interested in learning C++.
The reason for this interest is that I noticed that alot of
universities have started to teach C++ as their core language and I am
beginning to think that its time now to widen my range of programming
languages/skills. When I was at university I personally learned Java
and Delphi as part of my studies but following my graduation I focused
on using Delphi (which for the most part as been quite simple) as I
enjoy developing and working with Windows Apps.
I am not sure if I should learn C++, I know that it would be a useful
skill but I was wondering if it would affect my work with Delphi. I
also don't know where I should start with learning C++ (if at all), do
I start with the very basics or would my previous experience help me
in developing this new skill.
I am sorry if this is not a good question for this forum but I have
used Google groups in the past and found it very helpful.
Thanks
Scott | | | | re: Should I learn C++?
In article <1176413228.053801.323530@y80g2000hsf.googlegroups .com>,
Scott Sellers <ScottDSellers@googlemail.comwrote: Quote:
>I am a Junior Software Engineer who currently works programming in
>Delphi. I have been working with Delphi for around 12mths but I am
>interested in learning C++.
>
>The reason for this interest is that I noticed that alot of
>universities have started to teach C++ as their core language and I am
>beginning to think that its time now to widen my range of programming
>languages/skills. When I was at university I personally learned Java
>and Delphi as part of my studies but following my graduation I focused
>on using Delphi (which for the most part as been quite simple) as I
>enjoy developing and working with Windows Apps.
>
>I am not sure if I should learn C++, I know that it would be a useful
>skill but I was wondering if it would affect my work with Delphi. I
>also don't know where I should start with learning C++ (if at all), do
>I start with the very basics or would my previous experience help me
>in developing this new skill.
>
>I am sorry if this is not a good question for this forum but I have
>used Google groups in the past and found it very helpful.
It's hard to say, but 12 months is not a vast amount of experience
so it may not hurt for you to start from the very basics. And if
you find you know some of the basics, then use it as a review.
Often thought the mindset and focused and goals of different
languages establish different and new basics, so I doubt you'll
be in much dillemma. But keep an open mind, since Delphi ways
are not necessarily C++ ways, and so on.
--
Greg Comeau / 4.3.9 with C++0xisms now in beta!
Comeau C/C++ ONLINE == http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it? | | | | re: Should I learn C++?
Scott Sellers wrote: Quote:
Hi,
>
I am a Junior Software Engineer who currently works programming in
Delphi. I have been working with Delphi for around 12mths but I am
interested in learning C++.
>
The reason for this interest is that I noticed that alot of
universities have started to teach C++ as their core language and I am
beginning to think that its time now to widen my range of programming
languages/skills. When I was at university I personally learned Java
and Delphi as part of my studies but following my graduation I focused
on using Delphi (which for the most part as been quite simple) as I
enjoy developing and working with Windows Apps.
>
I am not sure if I should learn C++, I know that it would be a useful
skill but I was wondering if it would affect my work with Delphi. I
also don't know where I should start with learning C++ (if at all), do
I start with the very basics or would my previous experience help me
in developing this new skill.
Yes, you should learn C++.
The best way to learn a language is by using it. Pick a small project,
say a small utility text file manipulation tool that gets you to
exercise the language. Say a file sorting tool that reads in strings of
various types (ints, floats, strings) and then you can pick a way to
sort these. | | | | re: Should I learn C++?
Scott Sellers wrote: Quote:
The reason for this interest is that I noticed that alot of
universities have started to teach C++ as their core language and I am
beginning to think that its time now to widen my range of programming
languages/skills.
If you want a broad range of useful programming skills, then C++ is a
must to learn, along with Java, Ruby, Lisp, Assembler, and D. | | | | re: Should I learn C++?
"Scott Sellers" <ScottDSellers@googlemail.comwrote in message
news:1176413228.053801.323530@y80g2000hsf.googlegr oups.com... Quote:
Hi,
>
I am a Junior Software Engineer who currently works programming in
Delphi. I have been working with Delphi for around 12mths but I am
interested in learning C++.
>
The reason for this interest is that I noticed that alot of
universities have started to teach C++ as their core language and I am
No, they have been for many years. Quote:
beginning to think that its time now to widen my range of programming
languages/skills. When I was at university I personally learned Java
Which is based on C++ Quote:
and Delphi as part of my studies but following my graduation I focused
on using Delphi (which for the most part as been quite simple) as I
enjoy developing and working with Windows Apps.
>
I am not sure if I should learn C++, I know that it would be a useful
skill but I was wondering if it would affect my work with Delphi. I
also don't know where I should start with learning C++ (if at all), do
I start with the very basics or would my previous experience help me
in developing this new skill.
>
I am sorry if this is not a good question for this forum but I have
used Google groups in the past and found it very helpful.
>
Thanks
>
Scott
>
| | | | re: Should I learn C++?
On Apr 12, 9:21 pm, Walter Bright <wal...@digitalmars-nospamm.com>
wrote: Quote:
Scott Sellers wrote: Quote:
The reason for this interest is that I noticed that alot of
universities have started to teach C++ as their core language and I am
beginning to think that its time now to widen my range of programming
languages/skills.
>
If you want a broad range of useful programming skills, then C++ is a
must to learn, along with Java, Ruby, Lisp, Assembler, and D.
How much would one's range be broadened by learning D after learning C+
+ and Java? | | | | re: Should I learn C++?
"Scott Sellers" <ScottDSellers@googlemail.comwrote in message
news:1176413228.053801.323530@y80g2000hsf.googlegr oups.com... Quote:
The reason for this interest is that I noticed that alot of
universities have started to teach C++ as their core language and I am
beginning to think that its time now to widen my range of programming
languages/skills. When I was at university I personally learned Java
and Delphi as part of my studies but following my graduation I focused
on using Delphi (which for the most part as been quite simple) as I
enjoy developing and working with Windows Apps.
<sarcasmUniversities teach C++?!!
The two universites I attended only forced me to use some kind of hybrid C
and deprecated C++ mix that they called C++ and alot of bad programming
practices. They also shoved Linux down my throat and forced me to pretend to
hate Microsoft. There wasn't much teaching involved. | | | | re: Should I learn C++?
* Christopher Pisz: Quote:
There wasn't much teaching involved.
Well, maybe you haven't *learned* anything.... ;)
--
Martijn van Buul - pino@dohd.org | | | | re: Should I learn C++?
Martijn van Buul wrote: Quote:
* Christopher Pisz: Quote:
>There wasn't much teaching involved.
>
Well, maybe you haven't *learned* anything.... ;)
Most likely nothing of what they weren't teaching, but
certainly something else, probably. :) | | | | re: Should I learn C++?
Christopher Pisz wrote:
.... Quote:
<sarcasmUniversities teach C++?!!
The two universites I attended only forced me to use some kind of hybrid C
and deprecated C++ mix that they called C++ and alot of bad programming
practices. They also shoved Linux down my throat and forced me to pretend to
hate Microsoft. ...
And what's the problem ?
:-) | | | | re: Should I learn C++? dave_mikesell@fastmail.fm wrote: Quote:
On Apr 12, 9:21 pm, Walter Bright <wal...@digitalmars-nospamm.com>
wrote: Quote:
>If you want a broad range of useful programming skills, then C++ is a
>must to learn, along with Java, Ruby, Lisp, Assembler, and D.
>
How much would one's range be broadened by learning D after learning C+
+ and Java?
In D you can do advanced things with much less effort than in C++. | | | | re: Should I learn C++?
Walter Bright wrote: Quote: dave_mikesell@fastmail.fm wrote: Quote:
>On Apr 12, 9:21 pm, Walter Bright <wal...@digitalmars-nospamm.com>
>wrote: Quote:
>>If you want a broad range of useful programming skills, then C++ is
>>a must to learn, along with Java, Ruby, Lisp, Assembler, and D.
>>
>How much would one's range be broadened by learning D after learning
>C+ + and Java?
>
In D you can do advanced things with much less effort than in C++.
I think that just confirms the point. If it's easier, what's the
value of _learning_ it? Using it, I can understand. But learning?
It's like learning to drive automatic after mastering stick shift. | | | | re: Should I learn C++?
"Martijn van Buul" <pino@dohd.orgwrote in message
news:slrnf1vlja.1qk6.pino@mud.stack.nl... Quote:
>* Christopher Pisz: Quote:
>There wasn't much teaching involved.
>
Well, maybe you haven't *learned* anything.... ;)
>
--
Martijn van Buul - pino@dohd.org I learned how to say," yes ma'm or yes sir... absolutly right, we should all
use iostream.h fstream.h stdlib.h etc, declare main to return void, never
use the STL but rather implement our own buggy data structures, use char
arrays instead of strings, use atoi and itoa instead of a stringstream,
warnings are only displayed to entertain us, trunctation is a word we
shouldn't really worry about, the more globals we have the better, VIM is
the best tool to use when writing my code because it is extremely important
that I dedicate hours to memorizing keystrokes instead of writing code, the
debugger? that's something I'll learn later when I am on the job...my
employer won't mind. Yes ma'am or sir, you've been doing this since i was
still semen, so you are correct as usual. Oh and yes all republicans suck
and we should all smoke pot, have gay marraiges, and it is my fault that
women are sex objects because I have been beating them with a baseball bat
since birth to dance for money. Absolutly...yes ma'am. | | | | re: Should I learn C++?
Christopher Pisz wrote: Quote:
"Martijn van Buul" <pino@dohd.orgwrote in message
news:slrnf1vlja.1qk6.pino@mud.stack.nl...
> Quote:
>>* Christopher Pisz:
>> Quote:
>>>There wasn't much teaching involved.
>>
>>Well, maybe you haven't *learned* anything.... ;)
>>
>>--
>>Martijn van Buul - pino@dohd.org >
>
I learned how to say," yes ma'm or yes sir... absolutly right, we should all
use iostream.h fstream.h stdlib.h etc, declare main to return void, never
use the STL but rather implement our own buggy data structures, use char
arrays instead of strings, use atoi and itoa instead of a stringstream,
warnings are only displayed to entertain us, trunctation is a word we
shouldn't really worry about, the more globals we have the better, VIM is
the best tool to use when writing my code because it is extremely important
that I dedicate hours to memorizing keystrokes instead of writing code, the
debugger? that's something I'll learn later when I am on the job...my
employer won't mind. Yes ma'am or sir, you've been doing this since i was
still semen, so you are correct as usual. Oh and yes all republicans suck
and we should all smoke pot, have gay marraiges, and it is my fault that
women are sex objects because I have been beating them with a baseball bat
since birth to dance for money. Absolutly...yes ma'am.
You forgot the repentance for your repressed memories of using cobol in
your previous incarnation. | | | | re: Should I learn C++?
Victor Bazarov wrote: Quote:
Walter Bright wrote:
> Quote:
>>dave_mikesell@fastmail.fm wrote:
>> Quote:
>>>On Apr 12, 9:21 pm, Walter Bright <wal...@digitalmars-nospamm.com>
>>>wrote:
>>>
>>>>If you want a broad range of useful programming skills, then C++ is
>>>>a must to learn, along with Java, Ruby, Lisp, Assembler, and D.
>>>
>>>How much would one's range be broadened by learning D after learning
>>>C+ + and Java?
>>
>>In D you can do advanced things with much less effort than in C++.
>
>
I think that just confirms the point. If it's easier, what's the
value of _learning_ it? Using it, I can understand. But learning?
It's like learning to drive automatic after mastering stick shift.
>
It took me quite a while to stop using two feet!
--
Ian Collins. | | | | re: Should I learn C++?
Ian Collins wrote: Quote:
Victor Bazarov wrote: Quote:
>Walter Bright wrote:
>> Quote:
>> dave_mikesell@fastmail.fm wrote:
>>>
>>>On Apr 12, 9:21 pm, Walter Bright <wal...@digitalmars-nospamm.com>
>>>wrote:
>>>>
>>>>If you want a broad range of useful programming skills, then C++
>>>>is a must to learn, along with Java, Ruby, Lisp, Assembler, and D.
>>>>
>>>How much would one's range be broadened by learning D after
>>>learning C+ + and Java?
>>>
>>In D you can do advanced things with much less effort than in C++.
>>
>>
>I think that just confirms the point. If it's easier, what's the
>value of _learning_ it? Using it, I can understand. But learning?
>It's like learning to drive automatic after mastering stick shift.
>>
It took me quite a while to stop using two feet!
It's like speaking English to a colleague after a phone conversation
[in Russian] with my wife - requires a mental effort to switch... So,
did you broaden your horizon by learning to drive automatic? | | | | re: Should I learn C++?
Victor Bazarov wrote: Quote:
Ian Collins wrote:
> Quote:
>>Victor Bazarov wrote:
>> Quote:
>>>Walter Bright wrote:
>>>
>>>>dave_mikesell@fastmail.fm wrote:
>>>>
>>>>>On Apr 12, 9:21 pm, Walter Bright <wal...@digitalmars-nospamm.com>
>>>>>wrote:
>>>>>
>>>>>>If you want a broad range of useful programming skills, then C++
>>>>>>is a must to learn, along with Java, Ruby, Lisp, Assembler, and D.
>>>>>
>>>>>How much would one's range be broadened by learning D after
>>>>>learning C+ + and Java?
>>>>
>>>>In D you can do advanced things with much less effort than in C++.
>>>
>>>I think that just confirms the point. If it's easier, what's the
>>>value of _learning_ it? Using it, I can understand. But learning?
>>>It's like learning to drive automatic after mastering stick shift.
>>>
>>
>>It took me quite a while to stop using two feet!
>
It's like speaking English to a colleague after a phone conversation
[in Russian] with my wife - requires a mental effort to switch... So,
did you broaden your horizon by learning to drive automatic?
>
Not realy, but it was a requirement for the environment (the US). When
I returned to my normal environment, I kept forgetting the clutch and
stalling. I'm sure there's an analogy buried in that somewhere!
--
Ian Collins. | | | | re: Should I learn C++?
The reason for this interest is that I noticed that alot of Quote:
universities have started to teach C++ as their core language and I am
beginning to think that its time now to widen my range of programming
languages/skills. When I was at university I personally learned Java
and Delphi as part of my studies but following my graduation I focused
on using Delphi (which for the most part as been quite simple) as I
enjoy developing and working with Windows Apps.
>
I would recommend against learning C++ if your stated goal is to
broaden your horizons. From a language perspective C++ is quite
similar to Java which you already know.
I strongly recommend that you cast your net a bit further. In
particular, I would recommend a LISP variant because it is so easy to
write mini-languages within it. Haskell would be good because it is a
purely functional, lazy language and learning its type system will be
quite insightful. To round out the list, I also recommend at least
understanding the basics of Prolog (the canonical logic-deduction
language).
Anyway, there are a ton of languages out there that represent widely
disparate means of reasoning about programs. For a somewhat shallow
overview of 6 or 7 that you ought to know (of which Java/C++ are
conspicuously absent), please see: http://www.informit.com/articles/art...?p=704316&rl=1.
I think there are huge advantages to be able to think in completely
different paradigms (even if you stick with Java professionally), and
in this regard C++ doesn't fall far enough from the Java tree (or vice
versa, actually), for me to be able to recommend it to you.
BTW, if you have not already read this, then I strongly recommend
reading the book "Structure and Interpretation of Computer
Programs" (which uses Scheme): http://mitpress.mit.edu/sicp/. This
book is quite amazing. Talk about broadening your horizons. | | | | re: Should I learn C++?
Unknownmat wrote: Quote: Quote:
>>The reason for this interest is that I noticed that alot of
>>universities have started to teach C++ as their core language and I am
>>beginning to think that its time now to widen my range of programming
>>languages/skills. When I was at university I personally learned Java
>>and Delphi as part of my studies but following my graduation I focused
>>on using Delphi (which for the most part as been quite simple) as I
>>enjoy developing and working with Windows Apps.
>>
>
>
I would recommend against learning C++ if your stated goal is to
broaden your horizons. From a language perspective C++ is quite
similar to Java which you already know.
>
My Ford is similar to my Landrover, but the latter gets me to way more
interesting places.
--
Ian Collins. | | | | re: Should I learn C++?
Victor Bazarov wrote: Quote:
Walter Bright wrote: Quote:
> dave_mikesell@fastmail.fm wrote: Quote:
>>On Apr 12, 9:21 pm, Walter Bright <wal...@digitalmars-nospamm.com>
>>wrote:
>>>If you want a broad range of useful programming skills, then C++ is
>>>a must to learn, along with Java, Ruby, Lisp, Assembler, and D.
>>How much would one's range be broadened by learning D after learning
>>C+ + and Java?
>In D you can do advanced things with much less effort than in C++.
>
I think that just confirms the point. If it's easier, what's the
value of _learning_ it? Using it, I can understand. But learning?
It's like learning to drive automatic after mastering stick shift.
You do learn to appreciate an auto after learning a stick <g>. | | | | re: Should I learn C++?
Walter Bright wrote: Quote:
Victor Bazarov wrote:
t than in C++. Quote: Quote:
>>
>I think that just confirms the point. If it's easier, what's the
>value of _learning_ it? Using it, I can understand. But learning?
>It's like learning to drive automatic after mastering stick shift.
>
You do learn to appreciate an auto after learning a stick <g>.
My problem when driving my wife's automatic (I have a stick) is that I
keep reaching for the stick... | | | | re: Should I learn C++?
red floyd wrote: Quote:
Walter Bright wrote: Quote:
>Victor Bazarov wrote:
t than in C++. Quote: Quote:
>>I think that just confirms the point. If it's easier, what's the
>>value of _learning_ it? Using it, I can understand. But learning?
>>It's like learning to drive automatic after mastering stick shift.
>You do learn to appreciate an auto after learning a stick <g>.
>
My problem when driving my wife's automatic (I have a stick) is that I
keep reaching for the stick...
LOL. Every once in a while, when driving an automatic, I'll step on the
"clutch" when coming to a red light. Stands the car on its nose.
There's no real pleasure in driving an auto, though. But I prefer an
auto in creeping rush hour traffic, as there's no pleasure in that anyway. | | | | re: Should I learn C++?
red floyd wrote: Quote:
Walter Bright wrote:
> Quote:
>>Victor Bazarov wrote:
>
t than in C++.
> Quote: Quote:
>>>I think that just confirms the point. If it's easier, what's the
>>>value of _learning_ it? Using it, I can understand. But learning?
>>>It's like learning to drive automatic after mastering stick shift.
>>
>>You do learn to appreciate an auto after learning a stick <g>.
>
>
My problem when driving my wife's automatic (I have a stick) is that I
keep reaching for the stick...
You think that's bad, try driving a left hand drive manual after 20
years of driving a right hand drive one. Unfortunately I'm at a loss to
find a C++ analogy for that :)
--
Ian Collins. | | | | re: Should I learn C++?
On 13 Apr 2007 20:24:54 -0700, "Unknownmat" wrote: Quote:
>I would recommend against learning C++ if your stated goal is to
>broaden your horizons. From a language perspective C++ is quite
>similar to Java which you already know.
C++ and Java are quite different but anyway ... The main reason to
avoid C++ as teaching language is its enormous but unnecessary
complexity which distracts the student from understanding basic
concepts. Quote:
>I strongly recommend that you cast your net a bit further. In
>particular, I would recommend a LISP variant because it is so easy to
>write mini-languages within it. Haskell would be good because it is a
>purely functional, lazy language and learning its type system will be
>quite insightful.
There has been a trend in recent years for new (non-academic)
programming languages to combine functional and OO concepts
(JavaScript, Python, Ruby, Lua, Scala). BTW, C++ also has a prominent
functional library: STL. Quote:
>I think there are huge advantages to be able to think in completely
>different paradigms (even if you stick with Java professionally),
Definitely. The requirements on the job market change rapidly, the
basic concepts and paradigms not. Quote:
>I strongly recommend
>reading the book "Structure and Interpretation of Computer
>Programs" (which uses Scheme): http://mitpress.mit.edu/sicp/. This
>book is quite amazing. Talk about broadening your horizons.
MIT apparently switches to Python as teaching language: http://www-tech.mit.edu/V125/N65/coursevi.html.
--
Roland Pibinger
"The best software is simple, elegant, and full of drama" - Grady Booch | | | | re: Should I learn C++?
On Apr 13, 3:21 am, Walter Bright <wal...@digitalmars-nospamm.com>
wrote: Quote:
Scott Sellers wrote: Quote:
The reason for this interest is that I noticed that alot of
universities have started to teach C++ as their core language and I am
beginning to think that its time now to widen my range of programming
languages/skills.
Quote:
If you want a broad range of useful programming skills, then C++ is a
must to learn, along with Java, Ruby, Lisp, Assembler, and D.
If you're going to be effective, you do have to learn several
languages; no one language does it all. But I'm not sure I
would agree with your list: I've seen no real demand for Ruby,
Lisp or D anywhere (although Lisp, at least, is useful, if only
to force you to think in a different way---and of course, if you
use emacs as your editor, you'll need it). On the other hand,
some sort of scripting language is a must, and as horrible as it
might be, you'll probably have to learn make at sometime.
A lot depends on the goals. If the goal is learning, a language
with a radically different idiom would probably be best: if you
already know Java, for example, you'll learn a lot more learning
Scheme or some other functional language that you will learning
C++. If the goal is to practically prepare for what you'll need
professionally, a lot depends on the type of work you want to do
professionally. In my work (server development), for example,
in addition to C++, I need Unix (and its shells)---I probably
get called on for my expertise in sh and awk as often as I do
for C++. Some knowledge of SQL is also expected. And of
course, no matter what you do, you should learn your basic
toolset: editor, etc. (For that matter, if you can't already
touch type, that should be your first priority. When you're
writing code, you want to be thinking about the code, and not
where the characters are on the keyboard.)
And don't forget about the techniques: things like design,
threading, etc. Independent of the language (more or less), but
if you don't know them, you're programs won't work.
--
James Kanze (Gabi Software) email: james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34 | | | | re: Should I learn C++?
On Apr 14, 5:24 am, "Unknownmat" <unknown...@gmail.comwrote: Quote: Quote:
The reason for this interest is that I noticed that alot of
universities have started to teach C++ as their core language and I am
beginning to think that its time now to widen my range of programming
languages/skills. When I was at university I personally learned Java
and Delphi as part of my studies but following my graduation I focused
on using Delphi (which for the most part as been quite simple) as I
enjoy developing and working with Windows Apps.
Quote:
I would recommend against learning C++ if your stated goal is to
broaden your horizons. From a language perspective C++ is quite
similar to Java which you already know.
It depends on which direction he wants to broaden them:-).
IMHO, there is a definite interest in going beyond the language,
and learning programming techniques: functional programming,
design patterns, etc. Your recommendation of: Quote:
BTW, if you have not already read this, then I strongly recommend
reading the book "Structure and Interpretation of Computer
Programs" (which uses Scheme): http://mitpress.mit.edu/sicp/. This
book is quite amazing. Talk about broadening your horizons.
is excellent, in this sense, not because of Scheme, per se, but
because of the higher level thought processes it teaches. In
the end, the language is just a tool, you learn Scheme not for
Scheme, but because it is a convenient tool for teaching these
thought processes. Similarly, you might want to learn C++ not
for C++, because a number of recent works on meta-programming
are based on C++.
All of which is a very good, and IMHO very important direction
to broaden horizons. On the other hand, one can take a more
practical approach: SQL or a Unix shell will also broaden your
horizons, in a very different way. (I recently wrote a build
system entirely in GNU make. Talk about broadening horizons.)
Other possible directions: Excel, or LaTeX or HTML. (You'll
need to learn to write documentation. HTML is a good support
for that, since it can be used everywhere, and LaTeX will
produce the most beautiful results.)
--
James Kanze (Gabi Software) email: james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34 | | | | re: Should I learn C++?
On Apr 14, 6:50 am, "James Kanze" <james.ka...@gmail.comwrote: Quote:
On the other hand,
some sort of scripting language is a must, and as horrible as it
might be, you'll probably have to learn make at sometime.
I'll bite - what's so horrible about make? | | | | re: Should I learn C++? dave_mikesell@fastmail.fm wrote: Quote:
On Apr 14, 6:50 am, "James Kanze" <james.ka...@gmail.comwrote:
> Quote:
>On the other hand,
>some sort of scripting language is a must, and as horrible as it
>might be, you'll probably have to learn make at sometime.
>
I'll bite - what's so horrible about make?
If you're bringing an off-topic, please mark your posts as such. | | | | re: Should I learn C++?
On Apr 13, 11:33 pm, Ian Collins <ian-n...@hotmail.comwrote: Quote:
Unknownmat wrote: Quote: Quote:
>The reason for this interest is that I noticed that alot of
>universities have started to teach C++ as their core language and I am
>beginning to think that its time now to widen my range of programming
>languages/skills. When I was at university I personally learned Java
>and Delphi as part of my studies but following my graduation I focused
>on using Delphi (which for the most part as been quite simple) as I
>enjoy developing and working with Windows Apps.
> Quote:
I would recommend against learning C++ if your stated goal is to
broaden your horizons. From a language perspective C++ is quite
similar to Java which you already know.
>
My Ford is similar to my Landrover, but the latter gets me to way more
interesting places.
While I somewhat see the analogy, I'm not sure that I really
understand your point. It's not even clear to me whether you're
agreeing or disagreeing.
I'm not saying that there is never any value in learning C++. I just
personally find that I employ many of the same idioms when using
either C++ or Java, and that there are many interesting programming
techniques that are not idiomatic in either. | | | | re: Should I learn C++?
On Apr 14, 5:33 am, rpbg...@yahoo.com (Roland Pibinger) wrote: Quote:
On 13 Apr 2007 20:24:54 -0700, "Unknownmat" wrote:
> Quote:
I would recommend against learning C++ if your stated goal is to
broaden your horizons. From a language perspective C++ is quite
similar to Java which you already know.
>
C++ and Java are quite different but anyway ... The main reason to
avoid C++ as teaching language is its enormous but unnecessary
complexity which distracts the student from understanding basic
concepts.
>
While I will agree that they are different, I find them much more
similar to each other than they are to languages like LISP, or
Haskell.
I agree that the difficulty of C++ has caused many a student to
prematurely end their CS careers. When I went through school, we
required two full semesters of C++ prior to even getting into basic
data structures and algorithms. Interestingly, my classmate who came
from a Java background had a tremendous amount of difficulty adapting
to C++ (mostly the pointers gave hime trouble). This is one reason
that I like the book SICP so much. It's almost purely about
programming concepts, and the language is almost inconsequential. Quote: Quote:
I strongly recommend that you cast your net a bit further. In
particular, I would recommend a LISP variant because it is so easy to
write mini-languages within it. Haskell would be good because it is a
purely functional, lazy language and learning its type system will be
quite insightful.
>
There has been a trend in recent years for new (non-academic)
programming languages to combine functional and OO concepts
(JavaScript, Python, Ruby, Lua, Scala). BTW, C++ also has a prominent
functional library: STL.
>
Yes, functional abstractions can be very useful.
Interesting, I never would have considered STL to be functional. Do
you have any sources that talk about this? Frankly, the more I think
about it, the less I see it. While STL does provide the rudiments of
a "map" routine (for_each), off the top of my head I can't think of
filter / reduce routines. Similarly, iterators don't strike me as
especially functional.
Anyway, I'm hardly an expert on what is "functional". Just based on
things are that common in functional languages (no side effects, first-
class functions, function composiition, higher-order functions, etc.)
STL doesn't seem to embody any of those. Oh interesting. Python is definitely a friendly, powerful language.
They could certainly do worse. | | | | re: Should I learn C++?
On Apr 14, 7:07 am, "James Kanze" <james.ka...@gmail.comwrote: Quote: Quote:
BTW, if you have not already read this, then I strongly recommend
reading the book "Structure and Interpretation of Computer
Programs" (which uses Scheme): http://mitpress.mit.edu/sicp/. This
book is quite amazing. Talk about broadening your horizons.
>
is excellent, in this sense, not because of Scheme, per se, but
because of the higher level thought processes it teaches. In
the end, the language is just a tool, you learn Scheme not for
Scheme, but because it is a convenient tool for teaching these
thought processes.
Right, completely agreed. I wouldn't want my comments to be
misconstrued as favoring any one language. I'm a huge supporter of
understanding underlying concepts as the goal, and languages are just
tools. I will say that as far as teaching languages go, Scheme does a
fairly good job of simply getting out of the way. Quote:
Similarly, you might want to learn C++ not
for C++, because a number of recent works on meta-programming
are based on C++.
>
Yes, I also agree that templates are one of the more interesting
contributions of C++ to the programming world. Perhaps "meta
programming" has been adequately categorized elsewhere, but I find
templates to be an interesting combination of parametric polymorphism,
and lisp-style macros. Quote:
All of which is a very good, and IMHO very important direction
to broaden horizons. On the other hand, one can take a more
practical approach: SQL or a Unix shell will also broaden your
horizons, in a very different way. (I recently wrote a build
system entirely in GNU make. Talk about broadening horizons.)
Yes, I assumed that an understanding of the underlying architecture
(As well as some database query language) would be part of any decent
Java education. But I do agree that they are important. | | | | re: Should I learn C++?
Unknownmat wrote: Quote:
On Apr 13, 11:33 pm, Ian Collins <ian-n...@hotmail.comwrote:
> Quote:
>>Unknownmat wrote:
>> Quote:
>>>>The reason for this interest is that I noticed that alot of
>>>>universities have started to teach C++ as their core language and I am
>>>>beginning to think that its time now to widen my range of programming
>>>>languages/skills. When I was at university I personally learned Java
>>>>and Delphi as part of my studies but following my graduation I focused
>>>>on using Delphi (which for the most part as been quite simple) as I
>>>>enjoy developing and working with Windows Apps.
>> Quote:
>>>I would recommend against learning C++ if your stated goal is to
>>>broaden your horizons. From a language perspective C++ is quite
>>>similar to Java which you already know.
>>
>>My Ford is similar to my Landrover, but the latter gets me to way more
>>interesting places.
>
While I somewhat see the analogy, I'm not sure that I really
understand your point. It's not even clear to me whether you're
agreeing or disagreeing.
>
C++ can be used anywhere Java can, but the converse isn't true. The
capabilities of Java are a subset of C++.
--
Ian Collins. | | | | re: Should I learn C++?
On Apr 14, 5:58 pm, Ian Collins <ian-n...@hotmail.comwrote: Quote:
Unknownmat wrote: Quote:
On Apr 13, 11:33 pm, Ian Collins <ian-n...@hotmail.comwrote:
> Quote: Quote:
>Unknownmat wrote:
> Quote: Quote:
>>>The reason for this interest is that I noticed that alot of
>>>universities have started to teach C++ as their core language and I am
>>>beginning to think that its time now to widen my range of programming
>>>languages/skills. When I was at university I personally learned Java
>>>and Delphi as part of my studies but following my graduation I focused
>>>on using Delphi (which for the most part as been quite simple) as I
>>>enjoy developing and working with Windows Apps.
> Quote: Quote:
>>I would recommend against learning C++ if your stated goal is to
>>broaden your horizons. From a language perspective C++ is quite
>>similar to Java which you already know.
> Quote: Quote:
>My Ford is similar to my Landrover, but the latter gets me to way more
>interesting places.
> Quote:
While I somewhat see the analogy, I'm not sure that I really
understand your point. It's not even clear to me whether you're
agreeing or disagreeing.
>
C++ can be used anywhere Java can, but the converse isn't true. The
capabilities of Java are a subset of C++.
Yes, I understood that. But to extend your analogy (assuming the goal
was a mastery of mechanical means of transportation) driving a Lang
Rover would be nothing like flying a helicopter, or piloting a boat.
I'm not even interested in the relative merit of any given approach.
I'm just saying that there are fundamental differences that go beyond
the differences between Java / C++. | | | | re: Should I learn C++?
Unknownmat wrote: Quote:
On Apr 14, 5:58 pm, Ian Collins <ian-n...@hotmail.comwrote:
> Quote:
>>Unknownmat wrote:
>> Quote:
>>>On Apr 13, 11:33 pm, Ian Collins <ian-n...@hotmail.comwrote:
>> Quote:
>>>>Unknownmat wrote:
>> Quote:
>>>>>I would recommend against learning C++ if your stated goal is to
>>>>>broaden your horizons. From a language perspective C++ is quite
>>>>>similar to Java which you already know.
>> Quote:
>>>>My Ford is similar to my Landrover, but the latter gets me to way more
>>>>interesting places.
>> Quote:
>>>While I somewhat see the analogy, I'm not sure that I really
>>>understand your point. It's not even clear to me whether you're
>>>agreeing or disagreeing.
>>
>>C++ can be used anywhere Java can, but the converse isn't true. The
>>capabilities of Java are a subset of C++.
>
Yes, I understood that. But to extend your analogy (assuming the goal
was a mastery of mechanical means of transportation) driving a Lang
Rover would be nothing like flying a helicopter, or piloting a boat.
>
Lang Rover? I was trying to say that if "broaden your horizons"
includes entering new areas of development, say high performance
(games), drivers or embedded, then there is much to be gained by
learning C++ if you already know Java.
--
Ian Collins. | | | | re: Should I learn C++?
On Apr 14, 4:00 pm, dave_mikes...@fastmail.fm wrote: Quote:
On Apr 14, 6:50 am, "James Kanze" <james.ka...@gmail.comwrote:
Quote: Quote:
On the other hand,
some sort of scripting language is a must, and as horrible as it
might be, you'll probably have to learn make at sometime.
Quote:
I'll bite - what's so horrible about make?
What isn't? For starters, it makes a distinction between a tab
and an equivalent number of spaces.
--
James Kanze (Gabi Software) email: james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34 | | | | re: Should I learn C++?
On Apr 14, 11:58 pm, Ian Collins <ian-n...@hotmail.comwrote:
[...] Quote:
C++ can be used anywhere Java can,
That's not true. There are contexts where the fact that the
compiled code can run on a machine you've never heard of is an
advantage, or even a necessity, and you don't need a high degree
of reliability.
--
James Kanze (Gabi Software) email: james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34 | | | | re: Should I learn C++?
James Kanze wrote: Quote:
On Apr 14, 11:58 pm, Ian Collins <ian-n...@hotmail.comwrote:
>
[...]
> Quote:
>>C++ can be used anywhere Java can,
>
>
That's not true. There are contexts where the fact that the
compiled code can run on a machine you've never heard of is an
advantage, or even a necessity, and you don't need a high degree
of reliability.
>
If Java can run on it, it has a JVM which is written in ... Grumble...
--
Ian Collins. | | | | re: Should I learn C++?
Ian Collins wrote:
:: James Kanze wrote:
::: On Apr 14, 11:58 pm, Ian Collins <ian-n...@hotmail.comwrote:
:::
::: [...]
:::
:::: C++ can be used anywhere Java can,
:::
:::
::: That's not true. There are contexts where the fact that the
::: compiled code can run on a machine you've never heard of is an
::: advantage, or even a necessity, and you don't need a high degree
::: of reliability.
:::
:: If Java can run on it, it has a JVM which is written in ...
C++ of course. The most portable language. :-)
Java is sometimes easier to use, when someone else has already ported the
JVM for you.
Bo Persson | | | | re: Should I learn C++?
On 14 Apr 2007 14:48:26 -0700, "Unknownmat" wrote: Quote:
>Yes, functional abstractions can be very useful.
>Interesting, I never would have considered STL to be functional. Do
>you have any sources that talk about this? Frankly, the more I think
>about it, the less I see it. While STL does provide the rudiments of
>a "map" routine (for_each), off the top of my head I can't think of
>filter / reduce routines. Similarly, iterators don't strike me as
>especially functional.
Conceptually STL algorithms operate on a sequence of immutable values
and 'return' a new sequence of immutable values. Even though the
actual implementations of (mutating) algorithms do not create a new
sequence but overwrite the current sequence the underlying concept is
identifiable. When you search for 'STL functional programming' you'll
find more hints. Actually, the introduction of STL was the attempt to
replace the OO paradigm with the functional paradigm as leading
paradigm in C++.
--
Roland Pibinger
"The best software is simple, elegant, and full of drama" - Grady Booch | | | | re: Should I learn C++?
On Apr 14, 10:11 am, "Victor Bazarov" <v.Abaza...@comAcast.netwrote: Quote:
dave_mikes...@fastmail.fm wrote: Quote:
On Apr 14, 6:50 am, "James Kanze" <james.ka...@gmail.comwrote:
> Quote: Quote:
On the other hand,
some sort of scripting language is a must, and as horrible as it
might be, you'll probably have to learn make at sometime.
> Quote:
I'll bite - what's so horrible about make?
>
If you're bringing an off-topic, please mark your posts as such.
I didn't bring it up, I asked a followup question. If you're going
to continue to be a forum cop on a unmoderated forum, at least try to
be consistent. | | | | re: Should I learn C++?
On Apr 15, 3:29 am, Ian Collins <ian-n...@hotmail.comwrote: Quote:
James Kanze wrote: Quote:
On Apr 14, 11:58 pm, Ian Collins <ian-n...@hotmail.comwrote:
Quote: Quote: Quote:
>C++ can be used anywhere Java can,
Quote: Quote:
That's not true. There are contexts where the fact that the
compiled code can run on a machine you've never heard of is an
advantage, or even a necessity, and you don't need a high degree
of reliability.
Quote:
If Java can run on it, it has a JVM which is written in ...
And an OS written in ... And if I use C++, the C++ compiler
generates ...
Who cares? That's not my problem.
FWIW: I generally use C++, and don't think that Java is at all
appropriate for what I do. But my choice is not based on any
absolute rule, and there are contexts for which C++ is not the
language of choice. (While I don't use Java in my work, I do
make extensive use of shell scripts, for example.) The
statement "C++ can be used anywhere Java can" is, from one point
of view, vacuous. From a theoretical point of view, they're
both Turing complete, and any program that can be written in
one can be written in the the other, so yes, C++ can be used
anywhere Java can, and Java can be used anywhere that C++ can. Quote:
>From a pratical point of view, of course, any number of issues
in addition to Turing completeness have to be taken into
account, and the result is that there are places where Java will
be suitable, and C++ not, and vice versa.
--
James Kanze (Gabi Software) email: james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34 | | | | re: Should I learn C++?
On Apr 15, 11:23 am, "Bo Persson" <b...@gmb.dkwrote: Quote:
Ian Collins wrote:
:: James Kanze wrote:
Quote:
::: On Apr 14, 11:58 pm, Ian Collins <ian-n...@hotmail.comwrote:
Quote:
:::: C++ can be used anywhere Java can,
Quote:
::: That's not true. There are contexts where the fact that the
::: compiled code can run on a machine you've never heard of is an
::: advantage, or even a necessity, and you don't need a high degree
::: of reliability.
Quote:
:: If Java can run on it, it has a JVM which is written in ...
Quote:
C++ of course. The most portable language. :-)
Actually, it depends on the platform, and most JVM are still
written in C. Which is still far more portable than C++. Quote:
Java is sometimes easier to use, when someone else has already ported the
JVM for you.
This is really getting a bit silly, don't you thing? How many
Java programmers write their own JVM?
--
James Kanze (Gabi Software) email: james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34 | | | | re: Should I learn C++?
On Apr 13, 6:26 pm, Walter Bright <wal...@digitalmars-nospamm.com>
wrote: Quote:
dave_mikes...@fastmail.fm wrote: Quote:
On Apr 12, 9:21 pm, Walter Bright <wal...@digitalmars-nospamm.com>
wrote: Quote:
If you want a broad range of useful programming skills, then C++ is a
must to learn, along with Java, Ruby, Lisp, Assembler, and D.
> Quote:
How much would one's range be broadened by learning D after learning C+
+ and Java?
>
In D you can do advanced things with much less effort than in C++.
"and I am the author and main lobbist of the language" |  | | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 226,366 network members.
|