| > You can't just start typing and getting instant feedback in Java simply because Java is not interpreted (well, actually, it is, but you have to compile to bytecode first). This is a great excuse, but uninteresting in discussing the relative fitnesses of Java and Scheme for teaching. Unless you want to take Java down one more peg. > So, what you're saying about Java goes for just about any compiled language. That's not even correct, many compilable languages also have REPLs, any compiled language can be interpreted (you just have to compile it on the fly). Haskell and OCaml can be used in a REPL, so can Erlang (though the Erlang console is quite far from a full repl). > Use "javac" to compile to byte code. Use "java" to run your compiled program. This is all you need to know about these tools to start programming. That's actually quite a lot, compared to "launch this, and then start playing". And you have to invoke `javac` for every single source file and with the correct options (the main issue for beginners generally being the classpath configuration). > There are various options for using java and javac, of course, but it's not like you can't compile and run a simple program without these options. You can run a trivial program without most of these options, but to reach simple you'll very likely need -cp early on. > Yeah. You have to know a bit of Java before you actually start programming in it. If that's one of Java's shortcomings, well then, there are a lot of languages with the same shortcoming. Yep. And that makes them worse teaching languages. I am happy you agree. |