On Fri, 15 Oct 2010 09:13:05 +0200, Philipp Überbacher wrote
Using eclipse from the start might be a questionable choice, but for
the rest there's no best answer. Either take the 'take it as a
given' approach or start with explaining objects and classes and and
and...
But what's the teaching goal? Packages /what's in a name), classes (how
do we model the real world?) et al. are programming fundamentals.
About half of my fellow students are total beginners
who've never
written or even read a single line of code. To them everything is
new, and they need to filter the essentials from the distractions,
so less distractions is a real help.
Fellow students of what? Computer science (Informatik)? What a scarry
idea. Now, don't get me wrong - I presonally would choose a rather
different approach to programming intro: until recently often CS was
taught with using Scheme. No objects or packages (at least not in the
old standard). Wonderful literature [1][2]. But a lot of students
complained about using an 'ivory tower' language instead of something
they could use later on in their career ... go figure :-(
$ cat >
Foo.ava
class Foo
{
static { System.out.println( 1.2+3+"||"+3+2.1 ); System.exit( 0 ); }
}
^D
$ javac Foo.java
$ java Foo
C'm on, that's not really that hard, no Eclipse, no packages, no real object.
Is this using some implicit main() or something?
No, it's using a static code block that gets executed after loading the class.
Nice
concept if you think of it (and it would be cool iff C/C++ had something
similar in
a portable way).
I wouldn't expect 4.2||32.1 as a result. Either
interpret the whole
thing as a string, or the number parts as float or don't do this
kind of automagic conversion at all. Interpreting numbers as numbers
and interpreting numbers as string in the same statement is
something I wouldn't expect.
Evaluation order, another basic topic of programming, sigh :-/
Remember, there's no such thing as "the whole thing" here. Just a crude
mixture
of chained method invocations and special operator calls.
Yes, there's a definite price for cute infix notation and overloading. That's
why we
lispers prefer unambiguous prefix notation (hypotetical code):
(strange-+ (+ 1.2 3)
"||"
(+ 3 2.1))
has to take.
Are you criticising the choices the Java team made? Do you prefer
the Ocaml way?
So "1 + 2", or "3.0 +. 2.1" - and then the horrible
"add_int_to_float 1 +
2.0" ????
That for shure will be less confusing to beginners :-/
I don't know Ocaml, so no idea what the above means.
You need a dedicated operator for every type of argument, so + only works
for integer, +. only works for floats, and if you want to add one to the
other you need to provide your own function (with exactly the semantics you
need).
P.S.: if
possible i try to avoid programming in Java, but for totally
different reasons.
Which are?
rather off-topic in this list :-)
But it's more the "culture" and comunity arround a language that seems
to be important. At least for me.
Cheers, RalfD
[1] Structure and Interpretation of Computer Programs
[2] Exploring Computer Science with Scheme
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user(a)lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-user
--
R. Mattes -- Systemeinheitsstreichler
Hochschule fuer Musik Freiburg
rm(a)inm.mh-freiburg.de