Herald: Python surpasses Perl in popularity!

X

Xah Lee

herald: Python surpasses Perl in popularity!

According to
“TIOBE Programming Community Index for November 2008†at
http://www.tiobe.com/content/paperinfo/tpci/index.html

it seems that Python has surpassed Perl in popularity this month!

Good for Python!

From my own personal experience in the programing industry, i find it
hard to believe that Python actually surpassed Perl in terms of use in
companies. Python is used in, Google, as everybody knows, but where
else? Perl is used in, umm, about every company except Google (and
probably Google too! in fact).

A quick search in monster.com, i find that perl returns 2673 results,
and Python returns 879 results. Perlers, you still safe!

Looking at other lang popularity site,
http://www.langpop.com/
it indicates that it's pretty much a tie.

So, i think it's not all peaches and cream for Python yet.

However, am pretty sure it'll be so in the next couple of years.

(btw, for those perlers who wishes to learn Python, see a comparative
tutorial:

• Xah's Perl and Python Tutorial
http://xahlee.org/perl-python/index.html
)

Xah
∑ http://xahlee.org/

☄
 
D

david.lyon

Interesting topic !

I would venture so far to say that perl is todays 'C'..

Perl is todays language of technical complexity. It is obscure,
complex, and is oriented towards the supremely intelligent (or equally
- those seeking to get 'lost' in programming).

Python, whilst very powerful, doesn't have the sheer scale of
contributors that Perl has. ie cpan. Many libraries, aren't as
sophisticated - ie spreadsheet reading and writing.

Python is very clever.. but it goes in a 'purest' direction.

It is being used in stockbrocking and many other fields. It has a good
following. It is being taught in schools here.. meaning it is
extremely healthy.

More popular doesn't always mean better...
 
J

John Machin

Python, whilst very powerful, doesn't have the sheer scale of  
contributors that Perl has. ie cpan. Many libraries, aren't as  
sophisticated - ie spreadsheet reading and writing.

Care to elaborate on the relative unsophistication of Python
spreadsheet reading and writing libraries?

Cheers,
John
 
D

david.lyon

Quoting John Machin said:
Care to elaborate on the relative unsophistication of Python
spreadsheet reading and writing libraries?

Cheers,
John

Not really.

But one only has to use both languages on a regular basis to realise
that perl is well ahead on the libaray/module front.

Some things in python are still pretty primitive...

but I know a lot of work has gone into them... just not anywhere near
like what you see in perl.

David
 
J

John Machin

Not really.

But one only has to use both languages on a regular basis to realise  
that perl is well ahead on the libaray/module front.

Some things in python are still pretty primitive...

but I know a lot of work has gone into them... just not anywhere near  
like what you see in perl.

I'll try again: On what grounds do you assert that "Many libraries,
aren't as sophisticated - ie spreadsheet reading and writing."? What
Python spreadsheet reading and writing libraries have you used? In
what way are they less sophisticated than their perl counterparts? Do
you have any particular enhancement requests?
 
A

alex23

Perl is todays language of technical complexity. It is obscure,  
complex, and is oriented towards the supremely intelligent [...]

I think you misspelled "insular".
 
D

david.lyon

Quoting John Machin said:
I'll try again: On what grounds do you assert that "Many libraries,
aren't as sophisticated - ie spreadsheet reading and writing."? What
Python spreadsheet reading and writing libraries have you used? In
what way are they less sophisticated than their perl counterparts? Do
you have any particular enhancement requests?

Hi John,

Since you asked a second time and appear genuinely interested - I will
answer properly. :)

pyExcelorator - Setting column widths. Doesn't seem to work.

Nor setting attrributes in sheets. Things seem to be only half done
when compared to what I have seen in Perl.

Perl was much easier to get the same functionality working.

Here is my particular complaint:

...
from pyExcelerator import *
...
...
# -- Adjust the column width
if dbf1.fieldDefinitions()[f].fieldInfo()[1] == 'C':
ws.col(f).width = 0x0d00 + (f * 600)

in perl....

$sheet1->set_column(0, 0, 20);


perl works nicely... I couldn't find a way to so easily set a column width....

plus.. colours are all broken...

If you can shed any light on it for me, I would be thankful.

Regards

David
 
J

John Machin

Hi John,

Since you asked a second time and appear genuinely interested - I will  
answer properly. :)

pyExcelorator  - Setting column widths. Doesn't seem to work.

pyExcelerator is abandonware. Check out xlwt (a fork of pyExcelerator)
at http://pypi.python.org/pypi/xlwt

What are the symptoms of setting column widths not seeming to be
working?
Nor setting attrributes in sheets. Things seem to be only half done  
when compared to what I have seen in Perl.

Perl was much easier to get the same functionality working.

If you mean cell formatting, check out the new easyxf functionality in
xlwt.
Here is my particular complaint:
from pyExcelerator import *
# -- Adjust the column width
if dbf1.fieldDefinitions()[f].fieldInfo()[1] == 'C':
The above code looks like it's accessing the metadata for the f'th
column/field in a dBase file; nothing to do with pyExcelerator.
     ws.col(f).width = 0x0d00 + (f * 600)
With slightly more meaningful names:
worksheet.col(col_index).width = 0x0d00 + col_index * 600

Not sure why you're multiplying by the dbf field number; wouldn't the
dbf field size be a better bet?

In any case, this is merely an elaboration of the basic functionality
column_object.width = expression
How would you prefer to express it?
in perl....
     $sheet1->set_column(0, 0, 20);
perl works nicely... I couldn't find a way to so easily set a column width...

I'm guessing that this is equivalent to the pyExcelerator/xlwt code
sheet1.col(0).width = 20 * 256
(column width in Excel is in 256ths of a standardised character)
plus.. colours are all broken...

"All broken" meaning what?
If you can shed any light on it for me, I would be thankful.

I hope that helped a little on the write side; what were your problems
on the read side?

You might like to join the discussion group at http://groups.google.com/group/python-excel

Cheers,
John
 
L

Lawrence D'Oliveiro

I would venture so far to say that perl is todays 'C'..

Perl is the FORTRAN of scripting languages. Python is in some ways like Pascal.

Java is like COBOL.

C? Who knows...
 
J

Jorgen Grahn

Interesting topic !

Hard to take a popularity index seriously when Logo is at #19 and
Bourne shell at #32 ... and then they suggest that their readers can
use it "to make a strategic decision about what programming language
should be adopted when starting to build a new software system".

/Jorgen
 
R

Roy Smith

Jorgen Grahn said:
Hard to take a popularity index seriously when Logo is at #19 and
Bourne shell at #32 ... and then they suggest that their readers can
use it "to make a strategic decision about what programming language
should be adopted when starting to build a new software system".

When you've seen some of the shell scripts I've seen, it's not hard to
imagine that logo might be a better choice of programming language.
 
D

david.lyon

Quoting Lawrence D'Oliveiro said:
Perl is the FORTRAN of scripting languages. Python is in some ways
like Pascal.

Java is like COBOL.

C? Who knows...

Your memory goes way back...

haha
 
S

Steve Holden

Roy said:
When you've seen some of the shell scripts I've seen, it's not hard to
imagine that logo might be a better choice of programming language.

:)

In fact all that's really happened is that Perl has slid down the ranks,
at least temporarily. Python has been around the 6/7 mark for a while now.

regards
Steve
 
M

Marco Mariani

Steve said:
In fact all that's really happened is that Perl has slid down the ranks,
at least temporarily. Python has been around the 6/7 mark for a while now.

Also.. can someone attempt to explain the funny correlation in
popularity over time between, for instance, Python and Delphi? :)
 
X

Xah Lee

Hard to take a popularity index seriously when Logo is at #19 and
Bourne shell at #32 ... and then they suggest that their readers can
use it "to make a strategic decision about what programming language
should be adopted when starting to build a new software system".

your remark is a bit overzealous. After all, we all know that site is
websearh based. Although it not some kinda scientific report, but it
does give some good indication of language popularity, however you
define that.

it is conceivable that logo is somewhat used more than bourne shell.

first of all, Logo is a lisp dialect. (it's one of the rare lisp sans
the parens.) The most famous logo book is the triology titled
something like Computer Science Logo Style, by Brian Harvey, who
teaches at UC Berkeley and now and then still post to
“comp.lang.schemeâ€. (who, like some many veteran Scheme Lisp
dignitaries, cries out against the utter fuckup Scheme 6 (aka R6RS))

Bourne Shell, is pretty much replaced by Bash since several years ago.
For example, as far as i know, linuxes today don't have Bourne Shell
anymore. “sh†is just a alias to bash with some compatibility
parameter. That immediately wipe out a huge sector of unixes that
lives on Bourne Shell. This is a good thing. In about 2000 i called
for this. The fucking asshole Sun Microsystems insists on installing
at least 3 versions of shell utilities in several directories... (and
the BSD unixes insist on their inferior stupid versions of shell
tools)

To be sure, Logo is very much a academic lang, mostly for teaching and
for younsters. Much of its code is about drawing graphics. Some other
major use of Logo is in robotics, much associated with the Lego
robotics toys.

While Bourne Shell, as far as i can venture a guess, is still the
primary startup scripts in various unixes.

It is hard to put down exactly which is “popularâ€. We have to first
define what we mean by popular, of course. Is it number of programers/
users? Popularity in the sense of awareness? Number of software using
them out there? etc.

However, as mentioned before, all things considered, it is conceivable
that Logo is more popular than sh. For one thing, for any use of shell
script other than the machine startup scripts, people don't use bourne
shell anymore. They use bash, maybe tcsh, and probably vast majority
of unix/server shell oriented installation scripts are done in Perl or
python today.

For those interested in languages, see:

• Proliferation of Computing Languages
http://xahlee.org/UnixResource_dir/writ/new_langs.html

It would be fruitful to actually set aside some 3 hours in some
weekend, to read thru these and the Wikipedia articles linked. You'll
get a survey of today's languages, what they are, what they do, their
nature, their field, and where the landscape of languages might be
tomorrow.

plain text version follows.
-------------------------------

Back to Computing and Its People.
Proliferation of Computing Languages

Xah Lee, 2008-07, 2008-11

There is a proliferation of computer languages today like never
before. In this page, i list some of them.

In the following, i try to list some of the langs that are created
after 2000, or become very active after 2000.

Functional langs:

Erlang↗. Functional, concurrent. Mostly used in a telecomunication
industry for corcurrency and continuous up-time features.
Haskell↗ Oldish, classic functional lang.
Mercury↗. Logic, functional.
Q↗. Functional lang, based on term rewriting. To be replaced by Pure↗.
Oz↗. Concurrent. Multiparadigm.
ML Family:

OCaml↗
Alice↗. Concurrent, ML derivative. Saarland University, Germany.
F#↗. Microsoft's functional lang.
Lisp family or similar:

Mathematica↗. Computer algebra system background. Used mostly for math
and research.
NewLisp↗. Lisp scripting style.
Arc↗. Paul Graham squeezing juice out of his celebrity status.
Qi↗. Common Lisp added with modern functional lang features.
Clojure↗. A new lisp dialect on Java platform.
Scheme↗, notably PLT Scheme↗. Used mostly for teaching.
(Dead. Dylan↗. Apple's re-invention of lisp for industrial programers,
active in the 1990s.)
Computer Algebra and Proof systems:

Coq↗. For formal proofs.
For much more, see Category:Computer algebra systems↗ and Automated
theorem proving↗.
Perl Family or derivative:

PHP↗. Perl derivative for server side web apps. One of the top 10 used
langs post 2000.
Ruby↗. Perl with rectified syntax and semantics.
Perl6↗. Next gen of perl.
Sleep↗. A scripting lang, perl syntax. On Java platform.
On Java Virtual Machine:

Scala↗. A FP+OOP lang on Java platform as a Java alternative.
Groovy↗. Scritping lang on Java platform.
C derivatives:

ObjectiveC↗. Strict superset of C. Used as the primary language by
Apple for Mac OS X.
C#↗. Microsoft's answer to Java. Quickly becoming top 10 lang with
Microsoft's “.NET†architecture.
D↗. Clean up of C++.
2D graphics related.

Scratch↗. Derived from SmallTalk + Logo.
Adobe Flash↗'s ActionScript↗. 2D graphics. Quickly becomes top 10 lang
post 2000 due to popularity of Flash.
Processing↗. 2D graphics on Java platform. Primarily used for art and
teaching.
Misc:

Linden_Scripting_Language↗. Used in virtual world Second Life.
Lua↗. Scripting.
Tcl↗. Scripting, esp GUI.
JavaScript↗. Web browser scripting.
Some Random Thoughts

Following are some random comments on comp langs.

Listing Criterion and Popularity

In the above, i tried to not list implementations. (e.g. huge number
of Scheme implemented in JVM with fluffs here and there; also e.g.
JPython, JRuby, and quite a lot more.) Also, i tried to avoid minor
derivatives or variations. Also, i tried to avoid langs that's one-
man's fancy with little followings.

In the above, i tried to list only “new†langs that are born or seen
with high activity or awareness after 2000. But without this
criterion, there are quite a few staples that still have some user
base. e.g. APL↗, Fortran↗, Cobol↗, Forth↗, Logo↗ (many variants),
Pascal↗ (Ada, Modula, Delphi). And others that are today top 10 most
popular langs: C++, ObjectiveC, Visual Basic.

The user base of the langs differ by some magnitude. Some, such as for
example PHP, C#, are within the top 10 most popular lang with active
users (which is perhaps in order of hundreds of millions). Some
others, are niche but still with huge users (order of tens or hundreds
of thousands), such as LSL, Erlang, Mathematica. Others are niche but
robust and industrial (counting academic use), such as Coq (a proof
system), Processing, PLT Scheme, AutoLisp↗. Few are mostly academic
followed with handful of experimenters, Qi, Arc, Mercury, Q,
Concurrent Clean are probably examples.

For those of you developers of Java, Perl, Python for example, it
would be fruitful to spend a hour or 2 to look at the Wikipedia
articles about these, or their home pages. Wikipedia has several pages
that is a listing of comp langs, of which you can read about perhaps
over 2 hundreds of langs.

Why The List

I was prompted to have a scan at these new lang because recently i
wrote a article titled Fundamental Problems of Lisp, which mentioned
my impression of a proliferation of languages (and all sorts of
computing tools and applications). Quote:

10 years ago, in the dot com days (~1998), where Java, Javascript,
Perl are screaming the rounds. It was my opinion, that lisp will
inevitably become popular in the future, simply due to its inherent
superior design, simplicity, flexibility, power, whatever its existing
problems may be. Now i don't think that'll ever happen as is. Because,
due to the tremendous technological advances, in particular in
communication (i.e. the internet and its consequences, e.g. Wikipedia,
youtube, youporn, social networks sites, blogs, Instant chat, etc)
computer languages are proliferating like never before. (e.g. erlang,
OCaml, Haskell, PHP, Ruby, c#, f#, perl6, arc, NewLisp, Scala, Groovy,
Goo, Nice, E, Q, Qz, Mercury, Scratch, Flash, Processing, ..., helped
by the abundance of tools, libraries, parsers, existence of
infrastructures) New langs, basically will have all the advantages of
lisps or lisp's fundamental concepts or principles. I see that,
perhaps in the next decade, as communication technologies further hurl
us forward, the proliferation of langs will reduce to a trend of
consolidation (e.g. fueled by virtual machines such as
Microsoft's .NET.).

Creating A Lang Is Easy

In general, creating a lang is relatively easy to do in comparison to
equivalent-sized programing tasks in the industry (such as, for
example, writing robust signal processing lib, a web server (e.g.
video web server), a web app framework, a game engine ...etc.).
Computing tasks typically have a goal, where all sorts of complexities
and nit-gritty detail arise in the solving process. Creating a lang
often is simply based on a individual's creativity that doesn't have
much fixed constraints, much as in painting or sculpting. Many langs
that have become popular, in fact arose this way. Popularly known
examples includes Perl, Python Ruby, Perl6, Arc. Creating a lang
requires the skill of writing a compiler though, which isn't trivial,
but today with mega proliferation of tools, even the need for compiler
writing skill is reduced. (e.g. Arc, various langs on JVM. (10 years
ago, writing a parser is mostly not required due to existing tools
such as lex/yacc))

Some lang are created to solve a immediate problem or need.
Mathematica, Adobe Flash's ActionScript, Emacs Lisp, LSL would be good
examples. Some are created as computer science research byproducts,
usually using or resulting a new computing model. Lisp, Prolog,
SmallTalk, Haskell, Qi, Concurrent Clean, are of this type.

Some are created by corporations from scratch for one reasons or
another. e.g. Java, Javascript, AppleScript, Dylan, C#. The reason is
mostly to make money by creating a lang that solves perceived problems
or need, as innovation. The problem may or may not actually exist. (C#
is a lang created primarily to overrun Java. Java was created first as
a lang for embedded devices, then Sun Microsystems pushed it to ride
the internet wave to envision “write once run everywhere†and
interactivity in web browser. In hindsight, Java's contribution to the
science of computer languages is probably just a social one, mainly in
popularizing the concept of a virtual machine.)

Infinite Number Of Syntaxes And Semantics

Looking at some tens of langs, one might think that there might be
some unifying factor, some unifying theory or model, that limits the
potential creation to a small set of types, classes, models. With
influence from Stephen Wolfram book “A New Kind of Science†(see:
Notes on A New Kind of Science) , i'd think this is not so. That is to
say, different languages are potentially endless, and each can become
quite useful or important or with sizable user base. In other words, i
think there's no theoretical basis that would govern what languages
will be popular due to its technical/mathematical properties. Perhaps
another way to phrase this imprecise thought is that, languages will
keep proliferating, and even if we don't count langs that created by
one-man's fancy, there will still probably be forever birth of
languages, and they will all be useful or solve some niche problem,
because there is no theoretical or technical reason that sometimes in
the future there would be one lang that can be fittingly used to solve
all computing problems.

Also, the possibilities of lang's syntax are basically unlimited, even
considering that they be practical and human readable. So, any joe,
can potentially create a new syntax. The syntaxes of existing langs,
when compared to the number of all potentially possible (human
readable) syntaxes, are probably a very small fraction. That is to
say, even with so many existing langs today with their wildly
differing syntax, we probably are just seeing a few pixels in a
computer screen.

Also note here all langs mentioned here are all plain-text linear
ones. Spread sheet and visual programing langs↗ would be example of 2D
syntax... but i haven't thought about how they can be classified as
syntax. (nor do i fully understand the ontology of syntax↗ )

----------------------------
This post is posted to:
comp.lang.python,comp.lang.perl.misc,comp.lang.lisp,comp.lang.functional

Xah
∑ http://xahlee.org/

☄
 
S

Steve Holden

Xah said:
your remark is a bit overzealous. After all, we all know that site is
websearh based. Although it not some kinda scientific report, but it
does give some good indication of language popularity, however you
define that.
[... rant omitted ...]
I wondered how long you would be able to resist making your vituperative
remarks. Please stop this rubbish.

regards
Steve
 
H

Hrvoje Niksic

Xah Lee said:
Bourne Shell, is pretty much replaced by Bash since several years ago.
For example, as far as i know, linuxes today don't have Bourne Shell
anymore. “sh†is just a alias to bash with some compatibility
parameter.

That used to be the case, but these days 'sh' is as often an alias to
a lighter shell program, a free reimplementation of sh that includes a
much smaller superset of the original sh functionality than that of
bash. For example, on default Ubuntu installations, sh is a symlink
to dash, "a lightweight POSIX-compliant shell derived from ash."
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,009
Latest member
GidgetGamb

Latest Threads

Top