From: EB Date: 2006-11-20T12:30:04+09:00 Subject: Re: Ruby vs Java vs c++ Chilkat Software wrote: > > About 20 years ago, when I graduated from University of Illinois' with a > BS in Computer Science / Engineering, > the department's philosophy was for students to acquire an understanding > of computers and programming > from the ground up. That meant from the electronic circuit level, to > the logic level (NAND and NOR gates), > to assembly programming, and on up. My answer to the original question > is based on this philosophy. > I recommend starting at the C/C++ level simply to gain a fundamental > understanding of the bits & bytes, > pointers, pointer arithmetic, structure layouts, byte ordering, > structure member alignment, dynamic memory > allocation on the heap as opposed to the stack, etc. Understanding > this gives you a good idea > as to what's going on "under the hood" with higher-level languages. > Things won't be so mysterious. > It'll pay off in the long run. For someone wanting/needing a deeper understanding of how things work this is true. However, for someone with specific goals in mind, hopefully the languages will isolate him/her from the bit-twiddling issues. E.g. smart file IO libraries will worry about big-endian vs little endian etc. I see this as one of the major features of higher level languages such as Ruby/Python. (Analogy, I can drive a car and get from here to there w/o understanding how every part of the car's engine works. And not everyone wanting to drive a car to get somewhere wants to know either :-) Worrying about malloc/free (or new/delete), run-away pointers etc is not something I want to deal with unless I have a good reason for it. 99% of the time it's not required. Now, if you are writing primarily OS service code etc, then of course it's all different :-) EB