Linux or windows

A

Abhi

this is not a technical c++ questions , but as a C++ learner i was
just wondering which of the operating system environment , Linux or
Windows is good for learning C++, in terms of the depth in
understanding of language one can achieve
 
N

Noah Roberts

Abhi said:
this is not a technical c++ questions , but as a C++ learner i was
just wondering which of the operating system environment , Linux or
Windows is good for learning C++, in terms of the depth in
understanding of language one can achieve

Either. It doesn't really make a difference. What matters is what
tools you use. It might be useful to learn by using text editors and
command line. This is of course the hard way, but you'll come out
understanding what IDE's are doing behind the scenes instead of being
dumbfounded when you need to work around one like most are these days.
 
S

Stefan Ram

Noah Roberts said:
tools you use. It might be useful to learn by using text editors and
command line. This is of course the hard way, but you'll come out

A computer is not required to learn C++, one just needs to
read some parts of ISO/IEC 2382, ISO/IEC 9899:1990 and
ISO/IEC 14882:2003(E). (The rest can be looked-up on demand.)

And one needs a pencil, see

http://www.multicians.org/andre.html

.
 
O

osmium

Abhi said:
this is not a technical c++ questions , but as a C++ learner i was
just wondering which of the operating system environment , Linux or
Windows is good for learning C++, in terms of the depth in
understanding of language one can achieve

It wouldn't make any difference which OS you chose.

But I think you are asking the wrong question, there is very little one can
do that anyone wants done with just the native C++ language. For example,
you can't even do something as simple as wander through the directory
structure provided by the file manager. Human input comes from a 1960's era
TeletypeT. Output is either put in a file or displayed on that Teletype.
Input and output are(mostly) latin characters, no graphs, pictures or
sounds. If you want something better than a super duper gee-whiz
(figuratively) calculator, you have to augment the language with facilities
that depend to a significant degree on the OS.

And I have no answer for that question. I use Windows, have used it for
years, and detest it. I feel I would be a much happier camper if I had
Linux, but I am too lazy to go through the conversion process. The public
had an opportunity to have a good OS, on the Atari ST, but they rejected it.
Bitter? You bet I am.
 
R

Ron AF Greve

Hi,

Abhi said:
this is not a technical c++ questions , but as a C++ learner i was
just wondering which of the operating system environment , Linux or
Windows is good for learning C++, in terms of the depth in
understanding of language one can achieve

As others pointed out whether MS-Windows or Linux doesn't really matter. If
you use Visual C++ (http://www.microsoft.com/express/vc/ )you also have to
spend some time getting acquainted with the IDE. It is well worth the effort
thpugh. Just switched from my payed 2003 version to the free 2008 version
and I am pretty impressed how you can debug structures vectors arrays etc.
When you are learning, this also might help alot with seeing what is going
on.

Note that if you use VC it will generate some code for a basis windows app
for you. However if you want to not dive (directly in to MS-Windows) you can
just add your code to WinMain and do a 'PostMessage( hWnd, WM_QUIT, 0,
0 );' just before entering the message loop.

If you use linux you can start directly with your favorite editor (mine
still being vi ). If projects become larger than one file you probably have
to learn how to make a Makefile, how to set library paths etc. (VC++ does
all that stuff more or less automatically).

Another option is installing cygwin ( http://www.cygwin.com/ ) on your PC to
do the same as on unix/linux but under MS-Windows.

Have fun.

Regards, Ron AF Greve

http://informationsuperhighway.eu
 
J

James Kanze

As others pointed out whether MS-Windows or Linux doesn't
really matter. If you use Visual C++
(http://www.microsoft.com/express/vc/)you also have to spend
some time getting acquainted with the IDE. It is well worth
the effort thpugh.

Yes and no. Sooner or later, he'll have to work without it. On
the other hand, the advantage of the IDE is that you don't have
to learn it; you can more or less just use it. So you don't
have to cope with learning everything at one: makefiles, command
line syntax, C++, etc., and can learn one thing at a time.
Just switched from my payed 2003 version to the free 2008
version and I am pretty impressed how you can debug structures
vectors arrays etc. When you are learning, this also might
help alot with seeing what is going on.
Note that if you use VC it will generate some code for a basis
windows app for you. However if you want to not dive (directly
in to MS-Windows) you can just add your code to WinMain and do
a 'PostMessage( hWnd, WM_QUIT, 0, 0 );' just before entering
the message loop.
If you use linux you can start directly with your favorite
editor (mine still being vi ). If projects become larger than
one file you probably have to learn how to make a Makefile,
how to set library paths etc. (VC++ does all that stuff more
or less automatically).

VC++ doesn't. The IDE that surrounds it does. Which is exactly
my point. You'd never want to use anything like that on a
professional project, but I suspect that it would help greatly
when learning.
 
R

robertwessel2

Note that if you use VC it will generate some code for a basis windows app
for you. However if you want to not dive (directly in to MS-Windows) you can
just add your code to WinMain and do a  'PostMessage( hWnd, WM_QUIT, 0,
0 );' just before entering the message loop.


Create an empty project instead of a Win32 project (under C++/General/
Empty).
 
B

Bart van Ingen Schenau

A computer is not required to learn C++, one just needs to
read some parts of ISO/IEC 2382, ISO/IEC 9899:1990 and
ISO/IEC 14882:2003(E). (The rest can be looked-up on demand.)
A computer is indeed not required, but a computer with a compiler
installed on it is a very valuable tool to verify if your
understanding of those documents match with the understanding of the
compiler authors.

If you use multiple, different, compilers, you might even be able to
find the intended meaning of the document authors, or at least how it
is commonly understood.

Bart v Ingen Schenau
 
P

peter koch

Hi,




As others pointed out whether MS-Windows or Linux doesn't really matter. If
you use Visual C++ (http://www.microsoft.com/express/vc/)you also have to
spend some time getting acquainted with the IDE. It is well worth the effort
thpugh. Just switched from my payed 2003 version to the free 2008 version
and I am pretty impressed how you can debug structures vectors arrays etc..
When you are learning, this also might help alot with seeing what is going
on.

Note that if you use VC it will generate some code for a basis windows app
for you. However if you want to not dive (directly in to MS-Windows) you can
just add your code to WinMain and do a  'PostMessage( hWnd, WM_QUIT, 0,
0 );' just before entering the message loop.

This is not true. Just create a console application with no code and
you can generate completely standard C++ applications. You have to
look out some places if you don't want to use Microsofts extensions,
however. We have all seen these extensions creeping in here when
beginners ask "C++" related questions that are full of Microsoft
specific code.
If you use linux you can start directly with your favorite editor (mine
still being vi ). If projects become larger than one file you probably have
to learn how to make a Makefile, how to set library paths etc. (VC++ does
all that stuff more or less automatically).

This is a disadvantage. I find it to be of big value that you can see
the code execute in the debugger. Of course, this applies mostly to
beginners, but I also often debug my code to verify that everything is
as expected (no uninitialised variables, for example). And here the
Microsoft debugger is very handy compared to what I have otherwise
seen.
Another option is installing cygwin (http://www.cygwin.com/) on your PC to
do the same as on unix/linux but under MS-Windows.

Or do both. It is a very good idea to have two opinions of your code.

/Peter
 
R

Ron AF Greve

Hi,

I see now I was gave some misinfo on the console part. I it is indeed
possible to just create a console application (for some reason I though it
always should have a WinMain entry point :-( ). Sorry, it is just that I
don't write console applications for MS-Windows very often (actually only
once, and that had one window in it just in case so it could notify the user
when it would fail).

Thanks everyone for the corrections.

Regards, Ron AF Greve
 
R

Rolf Magnus

peter said:
This is a disadvantage. I find it to be of big value that you can see
the code execute in the debugger. Of course, this applies mostly to
beginners, but I also often debug my code to verify that everything is
as expected (no uninitialised variables, for example). And here the
Microsoft debugger is very handy compared to what I have otherwise
seen.

Have you tried ddd, kdbg, or insight?
 
P

peter koch

Have you tried ddd, kdbg, or insight?

No - my experience with Linux debuggers is not anything worth
mentioning (only gdb). So there might very well be good debuggers on
Linux also.

/Peter
 
I

Ian Collins

peter said:
No - my experience with Linux debuggers is not anything worth
mentioning (only gdb). So there might very well be good debuggers on
Linux also.
You are making the common windows developer's mistake of locking the
tool to its IDE. In the Unix/Linux world tools (in this case debuggers)
often have many IDEs.
 
J

James Kanze

peter koch <[email protected]> kirjutas:
And for running these console applications I recommend the
CygWin package and CygWin bash shell. Note that Windows let's
you redefine the colors of the console window, so it must not
be a black DOS box any more. For me, without CygWin Windows
would be virtually unusable!

Nonsense. I've found UWin to even be better (with the latest
version of GNU make, however), and MSys is usable too. In the
past (under MS-DOS), I found the MKS-Toolkit to be very good,
but they've since priced it out of my range.
 
P

peter koch

You are making the common windows developer's mistake of locking the
tool to its IDE.  In the Unix/Linux world tools (in this case debuggers)
often have many IDEs.

I am not exclusively a Windows developer. In fact, I've been working
exclusively on a Linux-based platform for the last 18 months, and
before that I worked half time on cross-platform code.
That does not change the fact that among debuggers I've known, the
best so far have been Windows-based, the one in the Visual Studio
being very nice.

/Peter
 
A

alfps

this is not a technical c++ questions , but as a C++ learner i was
just wondering which of the operating system environment , Linux or
Windows is good for learning C++, in terms of the depth in
understanding of language one can achieve

As far as I know, the current acceptable-quality C++ books for novices
in effect assume *nix (I'm not sure about Glasborrow's books).

They may pretend to be OS-independent, just as there is a kind of
pretention that the C++ language is OS-independent, but it's really
rather *nix oriented.

For example, starting with C++ 'main', the 'main' signature is *nix-
oriented, and I doubt that any current C++ books for novices tell you
how to properly access program arguments in Windows.

Of course it may be that someone is writing a Windows-oriented C++
introductory book. ;-)

But until then, the sensible thing is to install Linux and learn the
basics there, then install some *nix tools in Windows to be able to
continue using about the same tools, and start learning all the
Windows stuff (which is quite different, and interesting).


Cheers & hth.,

- Alf
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,166
Messages
2,570,901
Members
47,442
Latest member
KevinLocki

Latest Threads

Top