On Tue, Jan 19, 2016 at 10:18 AM, Steve Mynott <steve.myn...@gmail.com> wrote:
> I think targeting Perl 6 at CS academic teachers is an excellent idea
> as a way of generally promoting use of the language.
> But I'd be wary of "bashing" current choices such as Python and don't
> believe any objective comparison of the two languages is possible.
> Python is in any case derived from ABC which was explicitly designed
> for teaching purposes.
I'm not suggesting bashing Python, Steve, I just think some comparison
The article I am referencing is this:
Python for Beginners
By Esther Shein
Communications of the ACM, Vol. 58 No. 3, Pages 19-21
Here is an excerpt detailing some criticisms of Python as a teaching language
Not everyone agrees Python is the be-all-end-all as an introductory
programming language. Shriram Krishnamurthi, a professor of computer
science at Brown University, acknowledges Python has many nice
features. "It offers a pleasant syntax, a large set of libraries, and
an interaction loop ... all of which are very useful for teaching.
Compared to the noise and complexity of Java, it is indeed a very nice
step forward." He agrees Python has made people feel more comfortable
about exposing programming to a much broader audience of students.
"There are many students I would not dream of teaching Java to that I
would happily show Python." That said, however, it does not take long
to discover Python's weaknesses, Krishnamurthi notes. Among them are
that "Creating non-trivial data structures is onerous, because Python
does not provide straightforward means for creating new structured
data. You have to understand a bunch of unrelated concepts, like
classes, and their onerous syntax and tricky semantics, which greatly
reduces the benefit of simplicity that Python was supposed to offer."
Because of this, he believes more and more curricula are ditching the
idea of structured data—one of the central concepts in computer
science—and doing one of two things: shaping their curriculum to avoid
them, or pushing students to encode more-structured data in
less-structured formats provided by default in Python.
"This lack of data structuring and classification has a significant
negative impact on teaching program design," Krishnamurthi says. "The
best program design methods we have right now focus on data-driven
design, which derive from the structure of data."