Python's only worse than JavaScript according to your criteria in that you generally need to install it if you're on Windows. Is that why it's a stupid choice?
On Thu, Dec 22, 2011 at 12:17 AM, Reinier Zwitserloot <[email protected]> wrote: > Fantastic. It's the 'duh!' language I ALWAYS name when someone asks me where > they should start. > > > Java is a _horrible_ 'my first programming language': > > * You need to sprinkle a boatload of magic pixie dust over your source > before it works (that would be 'public class X { public static void > main(String[] args) { .... }}' and even 'System.out'). If you try and > explain this right from the start you're going to spend 5 weeks explaining > things with the programmer-to-be not writing a single line. If you know > anything about didactics you know this is a very bad way to teach things. > (You really gonna tell your student about 'out' being a public static field > on the System class? Really? I didn't think so. I sure hope not. Would be > very confusing!) > > * Even if you accept the magic pixie dust as given, it's very discouraging > because you lack that feeling of 'I know how this works now'. You keep > thinking: I know a few things but I can't really grok even 'Hello, World' > because who the heck knows what all this magic pixie dust is for? > > * Java is very much not designed for first steps. It lacks useful shortcuts > ('new BufferedReader(new InputStreamReader(new FileInputStream("foo.txt"), > "UTF-8")) is great, fantastic even, in a serious project, but really quite > the drag if you're just trying to play around. > > * REPLs are pointless in real life (go away, Kevin), the java IDEs have > debuggers that can do everything a REPL does for serious work and more... > EXCEPT for first steps programming language, for the same reason: It's > perfectly feasible for me to tell some programming whinging about a lack of > a REPL for java to go spend a week or two becoming an ace at the eclipse > debugger and then reapply for the job, or whatnot. It's completely > inappropriate to tell a first-steps student to try to make heads or tails of > one. > > > A thing or two for this could be fixed by creating a custom environment > (BlueJ tries this, more or less), but then it's not really 'real java', and > you get that feeling of 'I don't REALLY know anything yet', which is very > detrimental to learning. > > > Contrast this to javascript, which is more or less simple, and you get > instant and immediate payoff. You get a fantastic REPL (load up a webpage, > hit the 'patch jquery into this thing' bookmarklet, then open up the webkit > console and go nuts), everybody has everything they need to just start out > (a webbrowser), and the payoff of "I'm making real, life, useful stuff and I > just started learning this stuff 3 days ago!" is palpable. > > > Really - this, or logo. Any other choice, including python, is stupid, IMO. > > -- > You received this message because you are subscribed to the Google Groups > "The Java Posse" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/javaposse/-/E0MhSRQUvaIJ. > > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
