Re: Java compiler courses

glen herrmannsfeldt <gah@ugcs.caltech.edu>
Fri, 11 May 2007 12:41:01 -0800

          From comp.compilers

Related articles
[16 earlier articles]
Re: Java compiler courses gneuner2@comcast.net (George Neuner) (2007-04-28)
Re: Java compiler courses DrDiettrich1@aol.com (Hans-Peter Diettrich) (2007-04-29)
Re: Java compiler courses gah@ugcs.caltech.edu (glen herrmannsfeldt) (2007-04-29)
Re: Java compiler courses marcov@stack.nl (Marco van de Voort) (2007-05-10)
Re: Java compiler courses torbenm@app-2.diku.dk (2007-05-11)
Re: Java compiler courses chris.dollin@hp.com (Chris Dollin) (2007-05-11)
Re: Java compiler courses gah@ugcs.caltech.edu (glen herrmannsfeldt) (2007-05-11)
Re: Java compiler courses englere_geo@yahoo.com (Eric) (2007-05-15)
| List of all articles for this month |
From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Newsgroups: comp.compilers
Date: Fri, 11 May 2007 12:41:01 -0800
Organization: Compilers Central
References: 07-04-074 07-04-118 07-05-037
Keywords: Java, courses
Posted-Date: 12 May 2007 23:30:14 EDT

Marco van de Voort wrote:
(snip)


> I somewhat wonder why people think that Java is easier to learn than
> C. In ome of my classes I found the opposite (which surprised me too),
> specially if the students had no prior IT knowledge (they were classes
> for graduated non IT bachelors).


I think that depends on how you teach Java. If you teach it as
a replacement for C, I don't think it is much different.


> They consistently found C easier to handle. The reason was pretty
> simple, more transparant, less knowledge required for an initial
> program (of any kind). We had them doing walking pointer trees in 5
> weeks, while in the paralel Java class they were still struggling with
> inheritance, and explaining what was needed to make a minimal program.


For a minimal program, you don't need any much inheritance, and you
don't even need to understand it. Similarly, you don't need to
understand what #include <stdio.h> does to start writing C. I would
say it isn't so much the difference in the language as the way people
want to teach it.


I would say that Object reference trees are easier to understand
and debug than C pointer trees, but not so much different.


> Now, I agree that this is partially due to the tools and
> libraries. (with all their form designing logic) But I don't assume
> people writing this here are using special educational versions of
> Java?


I would say teaching the C library, including proper handling of null
terminated strings, is harder to teach than the equivalent parts of
the Java library. If you took a C course and substituted Java in
place of C, the appropriate Java library routines in place of C
library routines, etc., I think it would work and take about the same
amount of time to learn.


(Note that Java is closer to C than C++ is to C.)


But I don't think that is the way people teach Java. I didn't
learn Java from a class, and my Java programs probably look
more like C than they should.


-- glen


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.