Previous  |  Next

Thu

Mar 1
2007

Tim O'Reilly

Tim O'Reilly

Pycon a "hiring fest"

O'Reilly editor Sarah Milstein writes: "My brother, a Python geek who attended PyCon last week, reports that it was hiring fest: 'at PyCon: *everyone* was hiring. I was asked if I would be interested in moving to 2-3 cities for a job, just in casual conversation. Half the lightning talks ended (or started) with "We're hiring". Which was pretty deeply reassuring.'"

This information is consistent with our analysis of the online book and job markets. Ruby has more momentum among startups, but Python is also a hot startup language, and is becoming one of the officially sanctioned licenses at many larger companies. For example, it is one of the three "official" languages at Google (C++, Java, and Python).



tags:   | comments: 22   | Sphere It
submit:

 

0 TrackBacks

TrackBack URL for this entry: http://orm3.managed.sonic.net/mt/mt-tb.cgi/6505

suzanne   [03.01.07 10:17 AM]

Several startups presenting at the Launch Pad event at ETel this week also noted during their demos that they were hiring, and encouraged attendees to apply.

Marc Hedlund   [03.01.07 11:22 AM]

I've been very disappointed in Python, and am sorry we used it for part of Wesabe. The Ruby experience (we use Rails for the web site) has been immeasurably better.

There are some great things about Python, but I don't think I would recommend it to others for production use. Of course all language selection is partisan, and better for developers to find out what they like and why, and use the tools that make them productive. But as a standard for a company, I'd choose something else.

ade   [03.01.07 11:40 AM]

Marc,
Could you share some details of some of the problems you ran into? Were these problems with the language, the libraries, the tools or the deployment options?

--ade

sean   [03.01.07 12:47 PM]

Marc,

I've had a completely different experience with Python in production, and would recommend it to others too. What were the problems you had? Were you using it just on the web, for internal stuf???

Making sweeping generalizations like that don't mean much without specifics.

S

Manuel   [03.01.07 01:42 PM]

Marc,

Ruby and Rails are clearly the latest fashion in web programming: new books are published each month, crowded conferences are held around the world, hosting companies declare they support Rails, etc. I don't believe the hype. I'm old enough to remember the same blind fervour surrounding PHP, Java and other former hot technologies. People simply love bubbles (or follow the money).

In my opinion programming languages are not religions. I use the best tool for the job: I'm in web development and I use Python a lot. It works. For me, for Google, for YouTube, for ...

Moreover Python has many wonderful web-frameworks: with Django, specifically, you can build a web application (a real web application, not simply a scaffold) just in a few hours: media companies, such as washingtonpost.com, are betting on Python and Django to produce highly innovative journalism.

Of course Python is not only web programming...

Python is great to teach programming concepts to beginners and to build fast prototypes. It's used by engineers around the world and it's a force in network programming and in the new fiels of bio-informatics.

As for the language itself, it's elegant, easy to learn, well documented and supported. His community is founded on firm open source values. His creator Guido van Rossum works for the most admired internet company in the world and he has great plans for the future.

But please don't tell anyone about Python. It doesn't need the hype. Python will remain my favourite secret weapon ;)

Adrian Holovaty   [03.01.07 02:19 PM]

One interesting thing I learned at PyCon was that the One Laptop Per Child project uses Python for almost everything. The coolest part: A "View source" button will expose the source code of the current application, so kids can see it, learn it and tweak it. Guido has written more.

Antonio Rodriguez   [03.01.07 03:33 PM]

Marc,

I'm surprised to hear you say that. When we started Tabblo, I looked carefully at RoR versus Python (without having a framework on that side) and Python won out despite that because it is relatively more mature than Ruby. What does that mean for us?

* unicode
* a more robust mature VM
* more mature robust 3rd party libraries (try parsing RSS in ruby)
* better access to good hackers (at least in Boston)

It's been our secret weapon as well and I am surprised it didn't work for you.

Pete   [03.01.07 03:39 PM]

Are people who go to Pycon called Pylons?

Simon Willison   [03.01.07 04:21 PM]

Marc: I too would love to hear what your problems were.

I've noticed that trend at the two PyCons before this one, and also at last year's EuroPython. It sounds like it's even bigger this year.

The most interesting thing about Python is the size of its ecosystem. It's being used in a ton of different industries - the 3D graphics world uses it a lot (ILM have been using it for the best part of a decade), the scientific community is using it (The SciPy conference is nearly as big as PyCon), Nokia has Python Series 60 for the mobile phone, the games industry uses it (Stackless Python is the secret sauce between the massively multiplayer Eve Online). There's also the fact that Python now has four serious implementations: CPython, IronPython, Jython and PyPy.

Pete: Python people tend to be called Pythonistas. Pylons is the name of one of the Python web frameworks.

Marc Hedlund   [03.01.07 05:17 PM]

Like I said, everyone should use whatever tool makes them productive.

The joyful part of our Python project (which is client-side, not a web app) has been wxPython, which is incredibly well-done, and, as I've said before, puts Java's "cross-platform" UI capabilities to shame. I've also been impressed with pyparsing. I agree that reading Python source is far nicer than reading the source of most other languages, including Ruby, and that that benefit was counter to my expectations.

On the other hand, I think Python has some serious weaknesses. It does a terrible job of deprecating its mistakes -- all languages make mistakes in design or implementation; Python seems to want to live with them more than most. Some design choices looked sloppy to me, not "compact" (my favorite example, finally fixed in 2.5, was the try/except or try/finally but not try/except/finally problem -- which led to a coding pattern I was calling 'try, try again.' That wasn't the result of clean design, and I don't think there's any particularly appealing explanation for why it was like that for so long.) I felt the standard library had a lot of very poor quality, and in some cases insecure, code in it. Why has bug 1114345 been open, with a patch on the bug, for over two years now? For our needs, that sort of inattention is just completely unacceptable. (Before you say "so fix it," note that there's already a patch and has been since the bug was opened. I agree with John Nagle's comments on this issue.) pycrypto gives me the shakes. ElementTree does not belong in the standard library. And so on. I had a file with about 50 examples like these in it before it made me too frustrated to keep opening it.

I've had this conversation with friends before, and they all say what I expect to hear from commenters here: sure, but every language has warts, and this language suits me. That's great -- I don't want to talk anyone out of a language they like. Language partisanship is good sport but ultimately completely unproductive, and I don't expect to convince anyone with this comment. I would just say that for my own preferences, I haven't liked the experience of shipping Python code, and I wouldn't recommend it to others.

poko   [03.01.07 06:40 PM]

Hi Marc,



It would have been an OK criticism if you had not mentioned Ruby as a better example when it comes to libraries or language issues.



As you said, no language is perfect. I am sory Python did not work for you.



good luck with your project!


Cheers

Rich Collins   [03.01.07 09:37 PM]

Python doesn't have real anonymous functions (lambda doesn't count). How could that have happened?

tieTYT   [03.02.07 12:30 AM]

"I don't believe the hype. I'm old enough to remember the same blind fervour surrounding PHP, Java and other former hot technologies." - Manuel

What exactly do you mean by this? If you go to monster.com and search for Java, C# or C++, you'll find >5000 jobs (there's so many it can't report them all). If you search for php you'll find about 2000.

On the other hand, if you search for Python there's about 200. If you search for ruby/ruby on rails you get about 400.

What's the definition of "formerly hot". Based off of these statistics (granted I only checked one site) it doesn't seem to be based off of demand.

Manuel   [03.02.07 01:44 AM]

tieTYT,

in the words of a typical Rails enthusiast, Java and PHP are clearly "the evil". Of course RoR is here to save us: it's fast, rewarding, beautiful... In other words RoR is the hot technology of the moment, it's cool: every Java and PHP programmer should migrate to RoR to stay relevant in web programming! That's the hype, of course.

The reality is more complex and diversified. As your numbers confirm, Java, C#, C++ and PHP are well established on the market.

Every programming language has its fifteen minutes of fame: yesterday Java and PHP were hot, nowdays RoR is cool and so on.

A good programmer should be aware of hype and chose the best tool for the job. At my firm we use a lot of Java and Python. We have also some Rails apps but we don't bet the house on the latest cool framework.

poko   [03.02.07 03:35 AM]

tieTYT,

not true.
I just run a query on monster myself.


python:1133
rails:189





Rich: Python has nested functions,lambda, list comprehension with map,filter,reduce,any/all etc. and you can use code blocks with the 'with statement'

cheers

Albert   [03.02.07 05:27 AM]

@tieTYT: your numbers are wrong. Here are my findings from Monster US:

Java >5000

C++ >5000

C# >5000

Python 1133

Ruby 395

I use Java at work but I love both Python and Ruby.

Python is widely used in the western world. Moreover I've recently met with a Japanese friend of mine and he told me that in Japan (Ruby homeland) there is now a great interest in Python on the strength of its wide usage at Google.

Dan Milstein   [03.02.07 07:41 AM]

Marc,

You say you haven't liked the experience of 'shipping' python code. By that, do you mean distributing it to lots of client computers over which you have little control (which, if you were writing a wxPython client, I can imagine was happening)? Or do you mean publishing it to a server that you have total control over?

Mostly I ask because you draw a comparison to Ruby. But, reading between the lines (likely incorrectly ;-), it sort of sounds like you were you using Ruby just for server-side stuff (e.g. Rails).

Many of the detailed python issues you bring up don't fit into that split, but I'm curious.

Shiro   [03.02.07 07:43 AM]

Hi Marc,

I'm currently developing a web-app of social network using Ruby on Rails. I used Python for most of the programming tasks I have to do before I joined this company. While I think Ruby is easier for me to adapt (due to my background in C++/Java), Python is still easier to read (at least for me).

Now, on the subject that Python libraries have its limitation. Let me put it this way. In my current project (of Rails), we need to have an admin interface because we don't want to insert some of the data ourselves; we want someone else to do it for us. Currently, we're using Streamlined. It was a nightmare for us so to speak: lack of _decent_ doc, lack of community, lack of roadmap, and the most important part is: lack of passion from the developers.

Now, I don't mean to make a generalization of Ruby on Rails developers. But the fact is quite clear: the developers who decided to join Rails movement did it because of hype, not the passion (not even being forced to).

What's the problem with this? well, quite simple: they only care if they can launch a blink-blink web 2.0 website with all the buzzword from RSS, API, tag-cloud etc etc. Plus blogs, plus marketing how fast and productive Rails is and how beautiful their code is. They don't care with other people, they don't care with documentation, they don't care with the development of YARV.

This is my guess: only 2%-3% of Rails developers actually care about YARV and will do everything to help YARV to launch. Either testing the performance, writing docs, writing the _code_ in _C_. What happen with the rest? Still in hype-land and didn't bother to look toward the outside world.

Look at DHH and the prag-prog. Documentations anybody? Nope. All about selling books, all about consulting, all about selling-out conferences. They are all about selling Rails.

That's what scared me. If I had my own company, I might give a serious thought of why I should invest in Ruby on Rails seeing the way the community act and think.

Rich Collins   [03.02.07 08:15 AM]

poko:

Why not unify all of these into a simple closure over an anonymous function that is treated as a first class object?


> nested functions


Can you nest more than once? It is over very useful in Ruby to


foo { bar { baz { baw {} } } }


> List comprehension with map,filter,reduce,any/all etc.


Very cool syntactic sugar. Would be nice to be able to do more than one expression


>and you can use code blocks with the 'with statement'


The modifier "statement" pretty much says it all.

schluehk   [03.02.07 02:52 PM]

Just out of curiosity. Why does "lambda not count"? I'm well aware of the limitations of lambda ( single expression ) but why is this considered as a pain point?

poko   [03.03.07 04:21 AM]

Hi Rich,

sorry if it's going to look ugly but the preview function is not working.


>Why not unify all of these into a simple closure over an anonymous function that is treated as a first class object?


Because not every language is Ruby:)

seriously, you can nest, pass around, decorate functions with other functions etc. I do not quite see what else you'd need. The only thing you can not do in python is modify free variables which are immutable like String in a nested scope. It's either a good or a bad thing (for a Rubyist is obviously bad). I think it's a good thing because it's simplify maintenance.

The other classic selling point of Ruby is open classes (and advocating monkey-patching). In Python classes are also open but overwriting a class is not an accepted way of solving issues. again, it's either a good or a bad thing. I think it's a good think because it's simplify maintenance.

>Can you nest more than once? It is over very useful in Ruby to
>foo { bar { baz { baw {} } } }


yes, you can


>Very cool syntactic sugar. Would be nice to be able to do more than one expression


(i am using Martin Fowler closure article here as a reference:
http://www.martinfowler.com/bliki/Closure.html )


most of the time you either use closures for collecting or executing around methods


collection: you can do this with list comprehension, lambda or generators for example:


python: managersOffices = [e.office for e in employees if e.isManager]
ruby: managersOffices = employees.select{|e| e.manager?}.
map {|m| m.office}


python: allManagers= all([e.office==e.isManager for e in employees])
ruby:allManagers = employees.all? {|e| e.manager?}


and here is an example for combination:
map((lambda x: x+2), [0, 1, 2, 3, 4, 5]) # output: [2, 3, 4, 5, 6, 7]


'execute around method':


ruby: File.open(filename) {|f| doSomethingWithFile(f)}
python: with open(filename, 'r') as f: doSomethingWithFile(f)



cheers

momma   [03.07.07 02:02 PM]

"Now, I don't mean to make a generalization of Ruby on Rails developers. But the fact is quite clear: the developers who decided to join Rails movement did it because of hype, not the passion (not even being forced to)."

What was that about not generalizing?


Post A Comment:

 (please be patient, comments may take awhile to post)




Remember Me?


Subscribe to this Site

Radar RSS feed

RELEASE 2.0 BACK ISSUES

BUSINESS INTELLIGENCE

CURRENT CONFERENCES