tags:

views:

837

answers:

14

Python is easy to learn.

But it still lacks the luster in job market. We can see that Java and .Net are already the employers firs choice. May be this because these require a little steeper learning curve.

So is the easiness killing Python?

+2  A: 

I don't think java and .Net have a steeper learning curve. Python has just as much to learn as them.

The language itself is really not the challenge when being a programmer. It's the related concepts and way of thinking/abstracting that is the challenge.

It is more likely that there are different types of jobs that .Net and Java have offers for, and the places you are looking for employment are for that type of job.

There are a lot of jobs in Python, Python is used by many companies/agencies including Google and NASA.

Take a look at the Joel on Software job board, or the Python job board, there are always open jobs for the taking relating to Python.

Brian R. Bondy
As an educator, I'd say Python does not have the steep learning curve. Look at "Hello world". Java uses concepts on class, functions, arrays (for command line arguments), statics, and packages just to print something. Python supports all these, but you only need learn the concepts as you need them.
Paul Vincent Craven
Once one spends more than a trivial amount of time on the language, you will see that it has all of the things you named, and I think you have to look past more than the first couple minutes of learning the language. What you claimed means that Python is probably a better learning language.
Brian R. Bondy
A: 

I'd disagree. There are lot of very good jobs offers for experienced Python programmers.

vartec
+6  A: 

Python website has a job board which has numerous companies which are looking out for python developers. Infact there are many more companies which doesn't have an entry in this page (I work for one such).

If you need to do complex stuff to get a job, only assembly language developers would be getting most of the job.

It is just that most enterprise software companies are afraid to switch over to a language which doesn't have any corporate behind it (like java/.net).

cnu
Afraid? I'd call it costly. Changing development platforms or supporting multiple platforms costs money.
Paul Vincent Craven
+3  A: 

Does seem to be true. I haven't seen anyone looking for Python programmer's that I can ever remember. .Net and Java do seem to be the front runners. I know that Python is in use out there, but I wonder if it's in more of a "supporting" role, rather than primary?

Brian Knoblauch
I think you're probably right. At lot of people still think of Python as a scripting or glue language, not something you'd write an entire app in. Not saying it can't be done (it absolutely can be!) but a lot of the higher-ups tend to think in terms of enterprisey solutions like .NET and Java.
Bob Somers
+1  A: 

See Where is Python used? I read about it a lot on Reddit.

Galwegian
Where is Haskel used? I read about it a lot on Reddit.
David Locke
A: 

I think the difference is that there are tons more Java and .Net jobs/developers out there. Its almost a self-fulfilling prophecy. Most corporate development shops don't really rock the boat so if software development isn't your company's main focus, are you going to want to do your projects in a language that tons of people know (Java/.Net) or that only some people know (Python/Ruby/etc.)?

Additionally, and perhaps more to your question, you're more likely to get a job as a Java newb than as a Python newb. Most of the Python jobs out there are for experienced Python developers where as there are more Java shops out there that just need bodies and are willing to train you up. Either way though, the more experience you have, the more likely you are to find a job, regardless of the language.

+1  A: 

Python is often used in supporting role; it alone seldom suffices, but it's an excellent counterpart to compiled languages like Java or C++. It's best to learn at least a couple of languages well, because not many jobs can be done well with just one tool; usually you need several tools.

And despite its initially easy learning curve, learning to program well with Python is as difficult as it is with any other language. Excellent Python programmers are rare.

Joonas Pulakka
+2  A: 

Its easier to get a job with less experience at more popular languages like Java or C#. These languages are backed up by big enterprises so more home made enterprise software are done with these languages. But Python are getting more ant more acceptance in big companies.

softly.lt
A: 

It depends how and where you're looking. No doubt the major recruitment websites are chock full of Corporation X companies looking for blub experts, but the environment around the edges is much more diverse.

I'm involved with a SF-bay startup, and over the last 18 months I can only remember ever seeing one (1) Java job posting from all of my peers. I've never seen a C# job.

In contrast, everyone (myself included) is looking for hotshot Python, Ruby and Erlang programmers.

Although these companies will only be looking to hire one or two people at a time, there's a lot of them, and their collective recruiting demand would dwarf that of the established companies flooding job sites with their graduate scheme positions.

It's definitely harder to find these jobs - you generally need to be part of the "scene" here on the west coast, or actively follow the progress of the myriad small companies out here. Because they're not all concentrated and condensed down into one place, it's easy to think they don't exist at all.

Alabaster Codify
+6  A: 

"So is the easiness killing Python?"

No.

Java and C# have the edge because of the following question.

Whom do I sue?

Seriously.

In the case of Java or C#, every corporate lawyer knows there's a vendor to sue. When the board of directors asks the CIO about risk, part of the answer from the CIO is the name of a vendor and everyone's happy. It's either Sun's Java or someone else's Java (e.g. IBM's) or Microsoft's product.

There's no good reason for this. But everyone's happy.

<rant>

With rare exceptions, it's impossible to get formal approval for use of open source products because there's no one to sue. The corporate lawyers and the board of directors of many (not all) public companies in the USA are forced to cover the remote possibility of failure by saying "we followed best commercial practices by spending a lot of money on licensed products."

If there's ever a shareholder's lawsuit, the lawyers wind up in "battling expert witnesses" situations with the company's expert witness saying the open source technology is acceptable, and the opposing expert witnesses asking questions about the corporate and legal entities backing the "product" and due diligence and financial stability and a lot of irrelevant questions that make lawyers happy.

Lawyers don't want to address the technical merits because it devolves to a religious war in front of judges or juries who can't really work out the pros and cons of open source tools.

I've seen business executives refuse to use Unix because it was "risky". They didn't want to "bet the company" on this "unproven" technology. They wanted Windows.

Facts -- like Unix predating windows by at least a decade -- don't enter into this. The business buyer has invented a risk factor, and no technical conversation can ever change their mind. Only a license from MS.

</rant>

Open source slips into to large corporates via the "skunk works" route. First someone uses it, then it's an established part of the tech stack, then it's okay.

This is true of things like Apache. Many companies have an official policy against open source software, yet make heavy use of Apache.

Open source slips into small companies because small companies aren't as heavily influenced by the "oh my God we could be sued" corporate lawyers. Small companies exist -- in some cases -- to reward innovation.

S.Lott
So what does this have to do with this question in particular?
Spoike
Java was GPL'd in 2006. There's no one to sue any more, except third party tool makers.
Joonas Pulakka
Upmodded on the skunk works portion - my two previous jobs involved skunk works Python development in C and C++ shops respectively. My current position is the first requiring primary use of Python. I would non-acceptance had little to do with legal matters though...
Jeremy Brown
@mad-j: explain that to the CIO's who (a) actively reject open source software, and (b) embrace Apache and Java. I'm just telling you what I hear in my consulting.
S.Lott
I call bull. I'm the CTO at my firm and I picked Python because it made sense for what we were trying to do. We don't pick software, hardware or vendors based on who we can sue if things don't workout. That's ridiculous. We pick them on how they are going to help solve problems.
davidavr
@davidavr: Good to hear. You're not a customer of mine and your haven't shot an open source proposal down in flames by labeling it "risky" or "too new".
S.Lott
S. Lott, I'm getting your point. That's pretty scary. I'm lucky to work at a smaller shop where I can pretty much choose my tools myself.
Joonas Pulakka
@mad-j: Good. Open Source has a reputation -- Fear Uncertainty and Doubt sown by SCO lawsuits, plus SW vendors trying to protect their position. A CIO is often a political animal and must reflect the prevailing wind. It's easier to doubt Python than to doubt Java or C#.
S.Lott
I've had customers shoot down the use of XML because it was "risky" and "too new."
Robert Rossney
I've had customers try to require (!) COBOL over Java because they were sure that COBOL with CICS was the only (!) scalable server architecture. Cooler heads prevailed -- they reluctantly agreed to Java and then cancelled the project.
S.Lott
You really are looking at the extremes of the situation. The reason has more to do with there being no official support channels for most open source software. If something does go terribly wrong, then yes - the final resort is to sue. But the first port of call when software fails is to ring your vendor and get them to fix it as part of your support contract. No manager wants to tell the CEO that they couldnt fix the software problem because there was no one to fix it. Its all about risk mitigation. Red Hat seem to be doing vert well in the enterprise world with this business model.
Alex
@Alex: I'm forced to look at the extremes by clients who bring this up. I'm happy to support open source solutions just the same way that an organization supports in-house solutions. Indeed, I can't see a usable difference between open source and in-house (except in terms of acquisition cost). However, customers tell me that Open Source is off the table because -- frankly -- there's no one to sue.
S.Lott
When was the last time you heard about any major lawsuit against Microsoft for shipping buggy and insecure software? All the standard agreements and EULAs are full of disclaimers, major vendors admit very little if any responsibility about the stuff they sell (see all the talk about software engineering not being "real" engineering exactly because of this).
Tiberiu Ana
@Tiberiu Ana: I hear about this daily. Microsoft was (and still is) under indictment in the European Union. They are fat with lawsuits. They get sued ALL the time. Constantly. So much that it's not news. http://en.wikipedia.org/wiki/European_Union_Microsoft_competition_case Microsoft is in constant trouble because they have deep pockets. http://en.wikipedia.org/wiki/United_States_v._Microsoft, http://blogs.wsj.com/law/2009/04/09/microsoft-gets-slammed-in-yet-another-patent-suit/tab/article/
S.Lott
@S.Lott: Wrong, they are getting sued, but NOT for the quality (or lack thereof) of their software. From your links: "The plaintiffs alleged that Microsoft abused monopoly power on Intel-based personal computers in ... operating system sales and web browser sales.", "The company alleged that Microsoft had infringed its patent through the “product activation” system" --- nothing that would help you as a customer when your system gets hit with an exploit or eats up your data.
Tiberiu Ana
@Tiberiu Ana: I never said the "whom do I sue" had anything to do with quality. It's completely irrational. Microsoft is a preferred vendor because they can be sued. You claimed they don't get sued. They do. It has nothing to do with "quality" or lack thereof. It has everything to do with lawyers being lawyers.
S.Lott
A: 

Do some stats on IT-related job boards like Jobserve, counting hits for 'Python', 'Java', 'Perl' etc. Over the past few years I've seen the number of hits for 'Python' going upwards steadily. From time to time I get contacted by recruiters trying to place a Python developer, but the jobs tend not to pay anything like as well as the work I'm doing.

The TIOBE Index is also a good indicator of how widely various languages are used relative to each other. This page discusses the source of the data used to calculate the statistics.

ConcernedOfTunbridgeWells
A: 

Actually look at this graph: http://www.indeed.com/jobtrends?q=django&amp;l= it doesn't look any bad for a Python web application framework.

Do not learn a programming language because of its quantity of jobs openings, that tells a lot about your likeness to code.

igorgue
+1  A: 

As a hiring manager, I agree with some of the answers that C# or Java would give you a broader choice of potential jobs. The fact that things like Google App Engine use Python; that IronPython allows you to write .Net code are all positive. As a Python hobbyist who manages .Net developers I would love to see applicants with Python experience, but I think you will have few job options if you only know Python.

A: 

It is Fear of the UNKNOWN.

If Python had bigger reference sites. A CIO would be able say we are losing competitive advantage against company XYZ, they can deliver faster and cheaper than we can. That's enough ammo to take to a board, who don't know diddly about technology anyway.

People hate change. They like what they know. So the fear of a competitor may be big enough to make them change.

paul