This evening I had an interesting conversation with a very determined 10-year old boy who wants to learn programming in Java and nothing but Java. I told him that I recommend Python as a first programing language, because learning Python is easier. But he was adamant. It's Java or nothing. Why? Minecraft is implemented in Java. That made Java the ultimate in coolness to him. No "risk-averse bureaucratic" thinking there, just a willingness to do hard things to get what he wanted.
So I told him, go for it, more power to you, and offered my assistance. What else could I do? :) In the face of determination like that, it's lead, follow, or get out of the way...
David H
On Saturday, March 14, 2015 5:27pm, "Mark Engelberg" <mark.engelberg@gmail.com> said:
The first thing that got my attention was the banner text "Choosing Python is the modern equivalent of the old adage 'nobody ever got fired for choosing IBM'". If I were an unimaginative, risk-averse bureaucrat, just wanting to run with the herd, the choice would be Java, not Python. The only clarification I can find is in the conclusion of the article where we learn that Python is "blandly conventional", just the latest crest in the "waves of fashion" (Pascal, C++, Java, Python, Scratch). Odd that Ruby is not mentioned anywhere.
The bulk of the article is discussion of Python's "weaknesses":1) Creating non-trivial data structures is onerous.2) Limited support for testing.3) Lack of static types.4) Difficult transition to other languages because the syntax is quite different.
Show me some real-world examples of a data structure or test setup I can't do better in Python. Python's doctest is an excellent methodology for teaching Test-Driven Design, or even just teaching basic Python (see pykata.org).
I understand the complaint about data types, but I would not give up the advantages of dynamic typing for the few projects where I really need the efficiency of static types. Write first in Python, then insert some C code where testing shows that it is actually needed.