[Edu-sig] ACM article on Python

kirby urner kirby.urner at gmail.com
Fri Mar 20 15:31:16 CET 2015


On Thu, Mar 19, 2015 at 9:42 PM, Mark Engelberg <mark.engelberg at gmail.com>
wrote:

> On Thu, Mar 19, 2015 at 7:38 AM, kirby urner <kirby.urner at gmail.com>
> wrote:
>
>>
>> I'm not one of those who think you need to join warring Camp A (OOP) or
>> warring Camp B (FP) and then express loyalty to one by dissing the other.
>> Rather, play up the strengths of both paradigms (I know Shiriam disputes
>> that OOP is really a "paradigm" but whatever).[3]
>>
>
> I followed your link [3], and that's not my take on what he's saying at
> all.  My reading of the paper is that his central claim is that modern
> real-world languages don't fall into neat little divisions like
> "object-oriented" or "functional".  Therefore, he claims, the typical
> "programming paradigms" course in college is out of date, and in need of a
> renovation, so students can gain an appreciation for how these paradigms
> blend, rather than thinking of them as separate entities.  (He then puts
> forth his own textbook Programming Languages and Interpretation as a
> proposed solution).
>
>
I agree, his paper spells it out much more, where he thinks the "paradigms"
notion falls down and betrays us, leading us into sloppy thinking.  Before
posting that email, I'd only seen a cross comment on math-thinking-l
telling us to stop thinking of OOP as a "paradigm".

It's a little bit like "races" which I likewise do not believe in, i.e. if
you cling to the idea of "pure specimens" of any race, then you get the
concept of "mixed" for the impure.  It's like the "primary colors" model or
RGB, very tempting.

As long as we see OO and FP as paradigms, then Python may be cast as a
"hybrid" of the two.

It's somewhat hard *not* to think that way, with races too, until you read
papers which remind us its all in our heads anyway.  We circle some
attributes, some family resemblances, and make those "hallmark".

But the genetics (memetics) is really more complicated than that and not
subject to such gross cartoonification.

What we also need to consider is the nebulous concept of Community.  Why
did Smalltalk dissipate?

https://youtu.be/YX3iRjKj7C0
Uploaded on May 8, 2009

Robert Martin (Object Mentor, Inc.)
"What Killed Smalltalk Could Kill Ruby, Too"
 I used to think only the grammar / semantics / technical attributes of a
language mattered, but others (e.g. one Michael Jennings at Food Not Bombs
servings) opened my eyes to the importance of community, governance, PR
etc.  That the Python community has worked hard on a Code of Conduct for
Pycons, a Diversity theme etc. has been beneficial.  I think a next step is
more literature / documentation not-in-English.


> He even cites Python as an example of a language that blurs the lines
> between paradigms (it has OO, but it doesn't force you to use it, it has
> some functional constructs, but it's still not typically thought of as a
> functional programming language, etc.)  I'd expect you to mostly agree with
> that premise.
>
>
I think what Shiriam really finds distasteful is the sudden ballooning of
Java in popularity, starting with the hype of Java One and all the web
stuff we were promised (where are applets today?   Hardly used much
right?).  I was hanging with a C++ coder at the time and could see why he
found Java more beautiful and convenient than C++ at least.


>
>
>>
>> For me, the thing that has made me lose some enthusiasm for Python was
>>> not even mentioned in the article.  For me, the biggest downside is that
>>> the language, with its Global Interpreter Lock, lacks a clean solution to
>>> teaching concurrency.  IMHO, concurrency has become a vital issue, and
>>> requires a somewhat different way of thinking about problems.  To create
>>> the next generation of exceptional programmers, I believe we need to
>>> introduce models of concurrent programming much earlier in the curriculum.
>>> Almost every recent programming language places a huge emphasis on
>>> concurrency (such as Clojure, Scala, Go, F#, Julia, and many others) but
>>> none of those are particularly welcoming to beginner programmers.  So I'd
>>> love to see more educational languages that feature concurrency.
>>>
>>>
>> That sounds valid and interesting.  How well does Pyret fit that bill I
>> wonder?
>>
>
> Sadly, I don't expect Pyret will address concurrency at all.  I learned
> that Pyret is now strictly a compile-to-javascript language (presumably
> they feel the language will have better educational reach if you can code
> it entirely in a web-based IDE).  That may end up limiting Pyret's ability
> to include concurrency features.
>
> Thanks for the other interesting comments and links.
>
>

Interesting, didn't know that.  When Mark Shuttleworth summoned (asked
politely, paid some ways, including mine) a bunch of us to England for a
pow wow on the future of education in South Africa, Alan Kay, the Smalltalk
guy, showed up all burning with admiration for JavaScript.[1]   He'd just
done a Logo in that language.  He liked Python too.  We had many solid
hours of meetings.  Now the RSA is lightyears ahead, building Chappie and
all. [2]  :-D

Another interesting language that leverage Python you may know about:  Hy

https://hy.readthedocs.org/en/latest/tutorial.html

Thanks for another interesting thread, maybe more will chime in on this one.

Kirby

[0]  http://mybizmo.blogspot.com/2012/10/omsi-science-on-race.html

[1]
http://controlroom.blogspot.com/2006/04/shuttleworth-summit-day-two.html

[2]  Chappie:
http://worldgame.blogspot.com/2015/03/chappie-movie-review.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20150320/3f59a993/attachment.html>


More information about the Edu-sig mailing list