
Am 12.02.2016 um 05:17 schrieb Rustom Mody:
On Thu, Feb 11, 2016 at 6:57 PM, Rustom Mody wrote:
The C version of that is described in this old paper: C in education and software engineering http://blog.languager.org/2013/02/c-in-education-and-software-engineering.ht...
Whoops pointer-indirection error :-) Sorry
Works now. Oh, and Java relevates ease of combining third-party modules, and deployment automation. The key ingredient for this was Java's mere recommendation that namespaces be based on domain names, this allowed libraries to be combined without name conflicts; the other languages don't have this, and come with horrible linking problems that only make me sad.
The original is Horrors of teaching C http://www.the-magus.in/Publications/chor.pdf The other link is a 20 year later retrospective: Yeah C was bad; what has followed is not much better
Moving horizontally means unlearning a little and learning a lot, so it is possible. It is what I did when I was forced to move from Pascal to C, and when I wanted from C to (Turbo) Pascal, then to Eiffel, in the end to Java, while studying other languages left and right - Prolog, SML, Haskell, Lisp, Alice (no particular order, not even chronologically). Of course that's just my personal learning experience, teachers will need to draw their own conclusions. Oh, and OO is inefficient. It has really bad cache locality. Game programmers move towards "entity systems", redistributing object attributes into arrays which are held together by an ID. You get the in-memory equivalent of a relational database with a star schema (and user-defined datatypes in columns, so it's a bit less primitive than one might think). Sorry for spinning off-topic, if there's no interest I'll take further discussion to private mail.