[Python-ideas] Python 3000 TIOBE -3%

Guido van Rossum guido at python.org
Thu Feb 9 19:34:50 CET 2012


On Thu, Feb 9, 2012 at 10:25 AM, Massimo Di Pierro <
massimo.dipierro at gmail.com> wrote:

>
> On Feb 9, 2012, at 12:03 PM, Steven D'Aprano wrote:
>
>  Massimo Di Pierro wrote:
>>
>>> Here is another data point:
>>> http://redmonk.com/sogrady/**2012/02/08/language-rankings-**2-2012/<http://redmonk.com/sogrady/2012/02/08/language-rankings-2-2012/>
>>> Unfortunately the TIOBE index does matter. I can speak for python in
>>> education and trends I seen.
>>> Python is and remains the easiest language to teach but it is no longer
>>> true that getting Python to run is easer than alternatives (not for the
>>> average undergrad student).
>>>
>>
>> Is that a commentary on Python, or the average undergrad student?
>>
>
> I teach so the average student is my benchmark. Please do not
> misunderstand. While some may be lazy, but the average CS undergrad is not
> stupid but quite intelligent. They just do not like wasting time with
> setups and I sympathize with that. Batteries included is the Python motto.
>
>
>  It used to be you download python 2.5 and you were in business. Now you
>>> have to make a choice 2.x or 3.x. 20% of the students cannot tell one from
>>> the other (even after been told repeatedly which one to use). Three weeks
>>> into the class they complain with "the class code won't compile" (the same
>>> 20% cannot tell a compiler form an interpreter).
>>>
>>
>> Python has a compiler. The "c" in .pyc files stands for "compiled" and
>> Python has a built-in function called "compile". It just happens to compile
>> to byte code that runs on a virtual machine, not machine code running on
>> physical hardware. PyPy takes it even further, with a JIT compiler that
>> operates on the byte code.
>>
>>
>>  50+% of the students have a mac and an increasing number of packages
>>> depend on numpy. Installing numpy on mac is a lottery.
>>> Those who do not have a mac have windows and they expect an IDE like
>>> eclipse. I know you can use Python with eclipse but they do not. They
>>> download Python and complain that IDLE has no autocompletion, no line
>>> numbers, no collapsible functions/classes.
>>> From the hard core computer scientists prospective there are usually
>>> three objections to using Python:
>>> - Most software engineers think we should only teach static type
>>> languages
>>> - Those who care about scalability complain about the GIL
>>>
>>
>> How is that relevant to a language being taught to undergrads? Sounds
>> more like an excuse to justify dislike of teaching Python rather than an
>> actual reason to dislike Python.
>>
>>
>>  - The programming language purists complain about the use of reference
>>> counting instead of garbage collection
>>>
>>
>> The programming language purists should know better than that. The choice
>> of which garbage collection implementation (ref counting is garbage
>> collection) is a quality of implementation detail, not a language feature.
>>
>
> Don't shoot the messenger please.
>
> You can dismiss or address the problem. Anyway... undergrads do care
> because they will take 4 years to grade and they do not want to come out
> with obsolete skills. Our undergrads learn Python, Ruby, Java, Javascript
> and C++. Many know other languages which they learn on their own (Scala and
> Clojure are popular).


I'd give those students a bonus for being in touch with what's popular in
academia. Point them to Haskell next. They may amount to something.


> They all agree multi-core is the future and whichever language can deal
> with them better is the future too.
>

Surely not JavaScript (which is single-threaded and AFAIK also uses
refcounting :-). Also, AFAIK Ruby has a GIL much like Python. I think it's
time to start a PR offensive explaining why these are not the problem the
trolls make them out to be, and how you simply have to use different
patterns for scaling in some languages than in others. And note that a
single-threaded event-driven process can serve 100,000 open sockets --
while no JVM can create 100,000 threads.

As masklinn says, the difference between garbage collection and reference
> counting is more than an implementation issue.
>

-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20120209/4a55ee6b/attachment.html>


More information about the Python-ideas mailing list