[Pythonmac-SIG] talking points, Pythonismus
Kent Quirk
kquirk at solidworks.com
Mon Apr 10 16:57:53 CEST 2006
Charles wrote:
~~~~~~~~~~~~~~
I've been campaigning with the main teacher of programming on my campus
-- from my thoroughly non-leveraged position as prof of English -- to
consider switching from Java to Python, for all the reasons which will
be obvious to everybody here. (The existence of "wxPython in Action" is
the decisive event for me.) I recently got a thoughtful reply from him
which included this paragraph:
Actually, I am using Matlab, which is dynamically typed as well,
in some of my courses and I know it works well until types become
important. In image processing, for example, they easily mistake the
'byte' data types for doubles which are the default. Ease of use leads
to overconfidence in this case. Sometimes they claim that the program
(the interpreter) isn't working right.
~~~~~~~~~~~~~~~~~~~~~~~
While true, I'm not sure this comment is particularly useful.
It's the equivalent of saying that an automatic transmission is useful
until shifting becomes important. Or that a snowblower is useful until
shoveling becomes important.
The real question is, what are you trying to encourage in your students?
If you're trying to get students to understand algorithmic thinking,
precision in their thoughts, and breaking down complex concepts into a
series of small steps, you want the lowest-friction programming language
you can find, and Python is certainly a great candidate (I think it's
one of the best, but that's why I'm here.) I'm a huge fan of teaching
introductory programming in high level languages with high level tools.
Last summer I taught a group of high school teachers to teach
programming using Python and PyGame. I had 4 days - and by the end of 4
days these inexperienced teachers had a working game written in Python,
which at least one of the teachers later gave to her students as a
programming assignment.
But if you're trying to prepare students to be useful programmers in the
real world, there are people who will argue that students eventually
need to understand enough about computer architecture to deal with
pointers and data types in their native bits. Joel Spolsky ("Joel on
Software) argued this fairly eloquently in this article:
http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
I actually co-wrote a computer science textbook on Java...but in the
couple of years since, I've come to the conclusion that Java is pretty
much the worst of all possible worlds. Too low-level to be a scripting
language, too high-level to be a good systems language, too damn wordy
for applications programming. (But I do quite like the Java VM.)
So in terms of discussions with your colleague, I'd suggest that he'd
probably achieve everything he wanted by teaching both Python and C or
C++ instead of doing it all in Java. But programming languages are
religious artifacts, so be prepared for responses that may not be
completely based in "objective" rationality.
Kent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/pythonmac-sig/attachments/20060410/cefa4f3c/attachment.html
More information about the Pythonmac-SIG
mailing list