Massimo Di Pierro wrote:
Here is another data point: 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?
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. -- Steven