News for hackers. Stuff that matters.
Re:On the making of a girl nerd by mhurron on Friday April 13, 2012 @09:42AM (#3836648)
Why? What is so bad about Java that it makes learning it so bad as a first language or as a introduction to programming?
Re:On the making of a girl nerd by sirclueless on Friday April 13, 2012 @10:03AM (#3836735)
Having tried to tutor beginning programmers in Java, there are a lot of things that bug me. There is a lot of boilerplate and cruft that must exist in order to get anything done, and the type system and visibility just gets in the way until you want to teach people how to architect large programs.

Each class must be in its own file, and the execution starts from "public static void main(String[] args)" inside it. Then you have to deal with complex data types very early: python's set of primitives is much richer, which is great when teaching. Also, doing IO in Java is a pain unless you distribute a library.

To those who think Python's significant whitespace is a problem, I think you need to watch an otherwise intelligent beginner struggle with an error on line 80 because they mismatched their braces on line 20. If you aren't properly indenting your code, it becomes an unreadable mess anyways, so why not enforce it at a language level? And if you think an IDE can do this for you, think again. People just complain that it does things wrong when it indents half their methods by 2 extra tabstops because they missed a brace. They don't really get it, they just get into a feedback loop where they say, "Oh, it won't compile. Let me scan the entire program counting braces" which is a waste of everyone's time. I've seen people go entire semesters without ever learning to write readable indented code.

Re:On the making of a girl nerd by UnFleshedOne on Friday April 13, 2012 @11:57AM (#3837331)
I "got" indentation after spending 2 days hunting down some bug in calculations only to have the teacher take 1 minute to reformat the code and another minute to point out an instruction that was sitting in the inner loop. With proper formatting it was a glaringly obvious mistake...
Re:On the making of a girl nerd by kingkilr on Friday April 13, 2012 @09:46AM (#3836661)
Because the hello world program has so much boilerplate. It means from the get-go you're telling students, "Don't worry about this, and this, and that; ignore it and we'll explain it later." You could go months into learning programming before you need to understand what a static method is, but it's right there in your first program.
Re:On the making of a girl nerd by thejteam on Friday April 13, 2012 @11:33AM (#3837189)
Too object oriented. I would hate to have to explain what a class is before I explained what a loop or a conditional is. We have to assume people are starting from nothing.

Or like others have said we could hand-wave it away until later.

Re:On the making of a girl nerd by Tichy on Friday April 13, 2012 @10:09AM (#3836770)
It's extremely complicated. The verbosity is not just LongerKeywords, it is endemic.