top | item 4575004

Python is doing just fine

84 points| timClicks | 13 years ago |data.geek.nz | reply

85 comments

order
[+] noelwelsh|13 years ago|reply
People use languages for many reasons, but the most common reason is that it is perceived to solve a problem better than the alternatives.

The R language is a frigging mess but it has a huge number of libraries in the statistical domain. For this reason it's a popular choice for writing data exploration and analysis programs.

The JVM the only game in town if you want some combination of high performance, the ability to do user-space systems level programming, type safety, and GC. Nobody loves Java but it is the easiest language to recruit for if you're targeting the JVM.

Rails is the engine that drives Ruby. iOS drives Objective-C. The browser drives Javascript.

To me (an very infrequent user of Python) Python has NumPy and Django. So long as those projects continue to maintain their share of thought leadership Python will be fine.

---

Kinda odd to see this post on HN. It doesn't really seem to say much.

[+] DocSavage|13 years ago|reply
"The JVM the only game in town if you want some combination of high performance, the ability to do user-space systems level programming, type safety, and GC."

I think all those points are covered by Go. And Go is more succinct. It was trivial to cross-compile Go executables on my Mac for Windows and Linux.

[+] jonathansizz|13 years ago|reply
Yes, Python will probably retain niches as a beginner language and a language for scientific data processing (but not in web development). This is because it's fairly easy to learn and the language enforces certain minimal coding practices better than most other languages. But it should be clear by now that Python certainly won't be taking over the broader programming world.

There was group of guys at a previous job of mine who loved programming in Python so much that they started advocating for its use at work for serious projects. They eventually got their wish, but six months later they realized that using Python for heavy-duty corporate stuff is far removed from using it for personal hobby programming.

The main problem is that Python has been oversold. This will be corrected in due course, and things will go on with Python being used only where appropriate.

[+] bitwize|13 years ago|reply
The JVM the only game in town if you want some combination of high performance, the ability to do user-space systems level programming, type safety, and GC.

There's Google Go now, too, which is arguably a better solution than the heavyweight JVM (though a worse one than C or Ada).

[+] azakai|13 years ago|reply
> Nobody loves Java

You don't, and I don't, but some people do.

[+] kamaal|13 years ago|reply
You know what? The very fact that you are having to write this post means Python isn't doing just fine.

The fact is Python was a fashion some years ago. Like 2-3 years back, It was the hip language to learn. Now the current fashion is NodeJS and Go. Like it or not get used to this fact. Python system is currently undergoing wants of features what Go and NodeJS provide out of the box. This is feature hunger, and is fundamentally what causes languages to slowly phase out from the main stream to let other languages take its place.

This doesn't mean Python is bad or lacks something. Its just that only its not the fashion currently. The fashion is something else, and people don't like old fashion being pushed down their throats. People like new stuff, Python is getting old, boring, too many people are into it now and its not hip anymore.

Now, coming to the other part.

Contrary to whatever you think Perl is doing awesome at this time now. Because the Perl community has moved on. Those dark troll days that existed 5 years back are gone. There are some very awesome things happening in the Perl community which probably are not happening even in Python.

Perl has learned its lesson the hard way. Which is if you want to survive and compete, ship awesome stuff! And Perl is doing just that. New syntax, sugar and enhancements are going in to Perl core every major release(2 years). CPAN is going just awesome. Apart from that people like chromatic are doing real great work in the documentation area. There are tools like Moose, Devel::Declare, DBIx::Class etc which probably Python can never get ever!

In the other news Perl 6 is hurling quickly towards its finish line and will be there in short time now(like probably next year end), and for a project of such huge magnitude it will be quite a language to watch out.

[+] pwang|13 years ago|reply
> People like new stuff, Python is getting old, boring, too many people are into it now and its not hip anymore.

Lots of people are also into breathing, eating, and having sex. I don't see those activities losing mindshare.

Programming languages and their affiliated ecosystems are tools for solving problems. It's fine if you want to argue that Python has ceased to solve problems for people now, either because there are new problems, or because Python itself has changed/evolved into irrelevance. But if it truly is the case that some people don't want to use it because "it's not hip", then those people are probably not actually trying to solve real problems that anyone cares about.

[+] GlennS|13 years ago|reply
I'm not convinced that Python was ever all that beloved of web fashionistas or technology blogs. If you think that NodeJS could replace it, you probably don't understand what Python programmers find appealing in a language. These are people who like their code tidy, and are really bothered by little details like [] + [] == "".

Agree with you about Perl though. Definitely still a persistent hum of Perl usage amongst programmers I know.

[+] dalke|13 years ago|reply
Where's your sense of history? People wrote this sort of thing back 10 years ago, when Ruby was becoming popular. People wrote posts saying that Ruby would take over from Python, and others replied saying that no, it wouldn't. The 'fact that the author wrote this post' is nothing new - it's more of the same.

And "2-3 years back"? Paul Graham's "The Python Paradox" was in 2004 and Peter Norvig's "How to Write a Spelling Corrector" was 2007. Neither of those were turning points. Python was, long ago, chosen as one of the three main languages at Google. Can you identify what it was 2-3 years ago which indicated that it was the hip language de jour?

Congratulations about Perl6 advances. It was the cumbersomeness of Perl5 objects and dealing with complex data types which helped me switch to Python, back in the late 1990s.

[+] pyre|13 years ago|reply
I thought that "Perl 6 is not Perl" was pretty much well understood by now. Perl 5 and Perl 6 are such vastly different languages, that they might as we have just named it something different.
[+] viraptor|13 years ago|reply
> There are tools like Moose, Devel::Declare, DBIx::Class etc which probably Python can never get ever!

I'm not sure why you bring these up, but yes - Python has those. Moose is pretty much built in - objects are in the language itself and there's no need for more syntax sugar on top. DBIx::Class is SqlAlchemy. Devel::Declare is hopefully never going to appear... unless David Beazley is bored one weekend.

[+] cmccabe|13 years ago|reply
Is anyone actually using Perl 6 in production, or planning to? (Serious question, not a troll.)
[+] dmbaggett|13 years ago|reply
FTA: It can sometimes feel scary when faced with a few risks to lose perspective of what has already been achieved.

Just to be clear: my own comments about Python the last few days are driven from a purely pragmatic desire to ship a great product, on all screens, using Python. I cringe when I see comments like this that seem to conflate these pragmatic concerns with emotional language advocacy.

Python is a beautiful, high-productivity, generally pragmatic language with millions of developers.

That's why I chose to build my product around it.

But all good things can be made better, and generally the best way to find the local optimum is to have lots of feedback from users -- especially developers who are pushing the envelope by doing ambitious things with the language.

We are going to ship on iOS and WinRT using Python. Whether that's anything that the core Python devs particularly care about, and whether that helps Python in the gladiatorial combat between languages, is mostly irrelevant to me.

[+] fuzzix|13 years ago|reply
"I wonder if it is because its big brother Perl, which it used to tease, is no longer around to tease."

Excuse me?

Perl is doing just fine.

The Python community doesn't really need a whipping boy, does it? It was quite offputting to me when Python texts, when promoting the features of the language, were essentially reduced to "It's more readable than Perl!"

Is it as powerful and expressive as Perl or is anything sacrificed for this supposed readability? (I never saw it myself).

[+] lmm|13 years ago|reply
Perl is certainly a lot less prominent than it used to be. It seems to have fallen out of favour as a web backend, it was never popular on the desktop, and I'm not seeing any interest in making it work on mobile. While I wouldn't say it was dying, it seems to be falling into the "scripting ghetto" that we worked so hard to escape.
[+] koide|13 years ago|reply
I've heard many people saying that "Perl doesn't scale" - "90% of the successful startups run RoR, why wouldn't you?" - "If you use Perl and you get web scale you'll have many problems"

I don't give at all credibility to such comments, but I have heard them. Perl's becoming every day more of a niche language.

Maybe some marketing about great Perl built projects could help. Does something like this exist?

[+] Aloisius|13 years ago|reply
Wait, Python was sexy at one point? The engineers I know who use python are all serious, pragmatic and a little OCD. They didn't learn Python because it was sexy, they learned it because it because it was an ultra-readable language.

I don't think Python was ever sexy. There was a bit of a Ruby vs. Python thing a few years ago, but both languages were downright old when they became popular.

A year ago, we had people telling us that JavaScript of all things is sexy because of NodeJS. Now it is Go (though that hype seems to be fading quickly).

People really need to stop worrying about the flavor of the week. You're never going to be programming in the sexy language for more than a couple years before the next trend pops up.

[+] rudiger|13 years ago|reply
It's the people who worry about the flavor of the week (the early followers, if you will) who take the language from "sexy, trendy, and unstable" to "productive, stable, serious, and pragmatic."
[+] espeed|13 years ago|reply
Clojure and Go are sexy right now, but I see no signs of that fading.
[+] nacker|13 years ago|reply
The best argument for the quality of anything, is that it succeeds despite lacking "sexiness".

I first encountered python in 1993, and although I was intrigued, my first reaction was that it could never become popular, because it was too good!

Almost 20 years later, I'm glad to see that people are not as stupid as I sometimes think.

[+] Nate75Sanders|13 years ago|reply
Do a search (separately) for perl, python, ruby on indeed.com

perl wins AND it's not a common word unlike the other two

in fact, plenty of job postings misspell perl as "pearl" and I'm not even including them

The fact that perl has more hits doesn't necessarily mean that there are actually more perl jobs than ruby or python jobs, but it certainly means that perl is still around, whether or not you want to tease it

EDIT: I write python code every day and agree with pretty much everything else the author said.

[+] bane|13 years ago|reply
I've found a surprising number of jobs want perl skills as only a small part of the job. In case Excel or Access isn't sufficient to process the data as needed, they want somebody who can whip out some Perl and get the job done.
[+] njharman|13 years ago|reply
Almost every admin, tools engineer lists perl. That doesn't mean you can get a job programming in perl. Just that you'll have to maintain that nasty bit of legacy .pl cruft X people before you hacked on.

There are many jobs where you are programming python

[+] lazyjones|13 years ago|reply
It could also mean that Perl programmers are in higher demand because there's not enough of them nowdays since all the cool kids are doing Ruby or JS ...

(we know we are having a hard time finding Perl people, but then again we are not in Silicon Valley ...)

[+] dbecker|13 years ago|reply
The library support for data science with python has improved a lot in the last few months... There are lots of shiny new options for web development, but I think python is gaining momentum rather than losing it for data analysis and scientific programming.

I expect that user base will increase even faster after Wes McKinney's "Python for Data Analysis" book is published.

[+] thronemonkey|13 years ago|reply
Agree. I just started doing scientific computing in python/scipy/numpy/matplotlib and it is fantastic. I see python going nowhere but up in the scientific community.
[+] nacker|13 years ago|reply
Python is now totally dominant in scientific domains. The typical user is interested in ease of use and mature libraries, not in speed or niceties that are debated on Lambda the Ultimate.
[+] ryangallen|13 years ago|reply
Also, it's worth mentioning that Udacity and CodeAcademy are teaching Python to thousands of new programmers.
[+] tehansen|13 years ago|reply
about python on mobile, and making it run on the NDK. Checkout kivy.org, it's a nextgen UI framework with pure opengl ES and multi-touch support from the ground up. It's pretty fast, especially since the core parts are written in C and it uses a sort of JIT graphics compiler.

It runs on win/osx/linux as well as iOS and android. In fact through the android-for-python project (github.com/kivy), it does pretty much exactly what the author talks about in terms of making it run on the NDK. There is also the pyJNIus project to go along with it in order to call java code and sdk directly.

python on mobile really is an option, and it lets you write cross platform apps in a very nice manner.

[+] chuppo|13 years ago|reply
When JavaScript becomes a more stable general purpose language, Python will have to make a run for its cash.

We have seen node.js and jslibs exists, as well as OpenGL bindings for v8. Microsoft has bade WinRT where JavaScript is a first-class citizen for desktop programs. What can python offer then? Numpy and scipy and twisted? Those are just libraries, and bindings can be made from JS to their respective hot-spots of C.

JavaScript is already beating Python in speed.

[+] pwang|13 years ago|reply
> What can python offer then? Numpy and scipy and twisted? Those are just libraries, and bindings can be made from JS to their respective hot-spots of C.

This is true but it's missing the point. Scientific programmers and data analysts use Python because syntax matters. Getting those people to program their ideas in Javascript will require syntax changes, and it's not merely an issue of libraries.

[+] manaskarekar|13 years ago|reply
I think, and I like to dream, that the next wave of stable general purpose languages will be functional. Given how distributed/concurrent/multi-x everything is, and will keep increasing in importance, it seems that functional languages will become more relevant.

That said, as more and more domain specific languages come to be, and general purpose languages mature, there's probably not going to be a 'single winner.'

[+] berntb|13 years ago|reply
Is this why the "Perl is dead" trolling is disappearing? The Python people are busy with other things... :-)