--------------enigF95E16667ED3EB8A627078F7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Chilkat Software wrote: > 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. > While my experience was notably shorter, I never, ever saw a problem where understanding that would be in any way relevant. The whole point of higher-level languages is that they separate the world into the language's developers, who do care about what's under the hood, and the users, who care bugger all about it. Your mileage may vary, but in my opinion claiming knowing implementation details is important to using some software isn't in any way essential (and surprisingly enough, this notion holds in the even higher levels of software design, which is all about information hiding and complexity reduction). Enlightening, maybe, definitely useful if you're doing peephole hand-optimisations your C compiler misses, but not essential for understanding. Speaking of which, about half of the concepts you mentioned I can't see how are relevant to implementing higher-level languages. Byte-ordering is more or less a network / filesystem driver issue, pointer arithmethic a hack around C not having introspection on array bounds, structure member alignment and layouts an issue of implementing a C compiler or OS kernel (its ABI), a cross-language low-level integration issue. Bits and bytes are utterly irrelevant outside device drivers, they're just not a meaningful unit of data after you leave hardware. And pointers complicate C's type system in order to make it more compatible with assembly and indirect memory adressing, all high-level languages (save for maybe Perl and PHP) go out of their way to hide the fact that they even exist and present a more orthogonal and clearer type system. David Vallner --------------enigF95E16667ED3EB8A627078F7 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (MingW32) iD8DBQFFYJWjy6MhrS8astoRAuRqAJsFFOENQd5wBJ38A6mD1KhnbXzvUQCfTFnQ UHzgcPexlVpU8+OpQaPROJw£ºB -----END PGP SIGNATURE----- --------------enigF95E16667ED3EB8A627078F7--