Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Up to now, as a developer i preferred python for web programming and scripting. Now, i will manage some projects. I know that finding developers that know php is easier than finding developers that know python. I have a background of python, so if developers use python; i will be able to control and lead easier. This is a trade-off.

What is your suggestion?

share|improve this question

migrated from stackoverflow.com Feb 3 '11 at 10:27

This question came from our site for professional and enthusiast programmers.

2  
The project manager is responsible for picking the right tool for the right job. PHP or python might be that tool but hard to say without knowing context of project. –  Chris Feb 3 '11 at 13:15
3  
"Control" and "Lead" are two concepts that are in direct opposition of each other. –  whatsisname Mar 30 '11 at 21:41
3  
You'll be able to spot a good developer more easily if you can ask them about a language you're familiar with. –  StephenPaulger Mar 30 '11 at 23:12
3  
An abundance of people who use PHP does not indicate an abundance of PHP programmers. Wait till you start interviewing, you'll see what I mean :) –  Tim Post Apr 15 '11 at 7:24
    
related question: programmers.stackexchange.com/questions/65967/… –  vartec Apr 15 '11 at 21:06
add comment

11 Answers

Easier to find developers

Is a poor excuse for choosing a technology in my opinion. PHP developers are everywhere, but that doesn't mean you will find a good PHP developer.

What you want is a good developer, regardless of the languages they do or do not know. Picking up a new language should be relatively painless for a good developer.

If you believe Python would be the best choice for all but hiring potential, then go with Python, and stick it out until you find a decent hire.

share|improve this answer
8  
"Picking up a new language should be ... painless". Unfortunately, picking up php is not painless. –  William Pursell Feb 3 '11 at 20:16
5  
"Picking up a new language should be relatively painless for a good developer." Especially if the new language is Python. –  Ubiquité Mar 30 '11 at 10:09
    
+1 for a good answer and comments. A good programmer should be able to pick up Python in no time. –  System Down Mar 30 '11 at 23:15
1  
"Picking up a new language should be relatively painless for a good developer." - this argument cuts both ways. –  sunwukung Apr 15 '11 at 8:34
add comment

If you already know Python, you should be able to pick up PHP in no time (the converse is not necessarily true). There's a reason for PHP's popularity.

share|improve this answer
3  
I agree with this and I feel the counter is true too. If you know PHP, picking up python should be easy. (At least was true for me.) –  Chris Feb 3 '11 at 13:14
2  
@Chris: Getting something done in another language is relatively easy if you already know how to program, yes. But the average PHP code is quite different from idiomatic Python. –  delnan Feb 3 '11 at 15:17
    
@delnan: Sure going from language x to language y you will always have differences. –  Chris Feb 3 '11 at 15:18
add comment

I've been in a similar situation for about a year.

A year ago I started to manage a team developing and maintaining a 10+ year old web site, which is programmed in PHP, which I did not have any previous experience with. I've used lots of languages (C, C++, Java, Python, Common Lisp, etc) and would have preferred developing with Python.

Existing legacy system built with PHP made the choice (continue using PHP) very easy.

I did not have any trouble picking up PHP, though it is a bit strange mix of low and high level concepts and seriously lacks harmony & elegance and "coherent vision" behind the language and implementation. And now I do understand why some call PHP "template engine gone berserk". Nevertheless PHP gets the job done. I seriously recommend using a good framework, such as Zend, which leverage PHP to a better (sane) language environment to work with.

Anyway, knowing or having experience with the implementation language, is not a requirement for project manager. Many PMs do great job without any programming experience, though it helps to have a programmer background (in general).

If you have no legacy and can start with clean slate, I guess both languages would do and it will be more a matter of personal taste and/or availability of resources.

Still... I can't escape the feeling, that Python would attract more competent programmers. Somehow the culture around PHP is less oriented towards "robust and elegant" solutions, and more likely to suggest a quick hack in "this works for me" habit.

To wrap up: PMs ability/experience should have nothing to do with picking the language. It's more about merits of the language (and culture) itself. And availability of resources.

share|improve this answer
    
PMs ability should have nothing to do with picking the language but i will feel comfortable while advising. I have 3 problems: 1) in current team nobody knows python 2) it may be hard to find python developers. 3) current developers may develop projects with php easier. –  ndemir Feb 3 '11 at 14:33
    
Existing legacy system built with PHP made the choice (continue using PHP) very easy. You became the manager of a going-on project, but i will start the new project. –  ndemir Feb 3 '11 at 14:36
    
@ndemir: of course if current team doesn't know Python, but do know PHP, tilts the decision (heavily?) towards PHP. This was what I meant with "availability of resources". But still, the developers' experience with the language is far more important than PMs experience :) –  Maglob Feb 3 '11 at 14:42
add comment

Concepts, not syntax, is what matters. If a developer knows PHP, then they should be able to become reasonably proficient in python in a short period of time and vice-versa.

share|improve this answer
2  
Indeed, if they're good developers they can learn, can't they? –  S.Lott Feb 3 '11 at 11:22
3  
I'd phrase it as "if they can't learn, they're not good developers." –  TZHX Feb 3 '11 at 11:35
    
I once phrased it as "Are you saying they can't learn?" when told that the existing developers couldn't learn new technology and new folks needed to be hired. –  S.Lott Feb 3 '11 at 13:03
add comment

If you want to build a wall, then some points to take into consideration are:

  1. The need for the wall.
  2. How the wall should be built.
  3. What material should used.

The least important question is: "who will build the wall?"

Check your requirements and make the decision. In some projects you will find Python will be the better option, and in others PHP will be the right choice.

share|improve this answer
    
I have to disagree. Technology chosen is not inconsequential,but I would say the people doing the work are the MOST important factor in terms of the success of a project. –  Morgan Herlocker Apr 15 '11 at 18:01
    
I wouldn't like a brick wall made by carpenters, nor wooden wall made by bricklayers –  vartec Apr 15 '11 at 21:10
add comment

As a developer

then go for the one you know and with the one you would be able to advise your developer, understand them, etc. I think the worst thing between a project manager and a developer is when they are not able to comunicate about their difficulties which happens most of the time because of a lake of skills from the project manager. Go for python.

By the way, it's easy to find PHP developer, but it's also hard to hire good and skilled PHP developer, as it'll be with Python anyway.

share|improve this answer
add comment

Hiring an army of mediocre programmers is not only a waste of money (and time and patience and ultimately your life) but usually results in software that is worse by orders of magnitude. If you're lucky, the result can be somewhat equal to a giant rock, when it comes to size, speed and flexibility.

You want the smallest possible team, writing the least possible code to get the job done (ok, that's a bit exaggerated, but I feel I really need to emphasize this). For that, you need the right tools (this is more a matter of frameworks and toolkits, than of languages). Pick those tools (if you feel you can't, then find someone you can trust with making that choice for you) and then hire people willing to and capable of working with them.

(Personally, I think you shouldn't use PHP. Except if there's a crucial technical advantage of using it, which is unlikely to happen, to say the least.)

share|improve this answer
add comment

I agree with Maglob, "that Python would attract more competent programmers." My feeling is: a really good PHP developer is that who has migrated from PHP to a better designed language, like Python or Ruby. That's my experience. I worked with PHP for five years, and I couldn't continue to work with that language's limits. As projects grow, deficiences of PHP turn visible, and complexity of workarounds increases.

So, my (late) suggest is: Go for Python. It will be better after the half of the project.

share|improve this answer
add comment

IMHO, I would say PHP would suit more to project managers for following reasons:

  1. PHP is a language which is made for web
  2. Supports Traditional, Object-Oriented and Mixed mode for development
  3. Lots of Frameworks
  4. Community support
  5. Easy to find developers
  6. Smallest possible learning curve

That's it.

share|improve this answer
    
A question sprang to my mind after looking at your stackoverflow profile: How much python experience (or at least knowledge about python) do you have to say PHP is a better choice? –  back2dos Apr 15 '11 at 21:17
1  
1. Python for web was done at nearly the same age as php. Early 90s. 2. what's mixed mode? Python is both OO and dynamical and functional. 3. Lots of frameworks, more in python. 4. Community support. 5. Easy to find... hacks, not good developers. Most of them don't know how http works and difference between threads / processes. 6. No. Python's smaller. –  vonPetrushev Apr 15 '11 at 21:41
add comment

HipHop for PHP transforms PHP source code into highly optimized C++. It was developed by Facebook and was released as open source in early 2010.

HipHop transforms your PHP source code into highly optimized C++ and then compiles it with g++ to build binary files. You keep coding in simpler PHP, then HipHop executes your source code in a semantically equivalent manner and sacrifices some rarely used features – such as eval() – in exchange for improved performance.

Facebook sees about a 50% reduction in CPU usage when serving equal amounts of Web traffic when compared to Apache and PHP. Facebook’s API tier can serve twice the traffic using 30% less CPU.

https://github.com/facebook/hiphop-php/wiki/

http://en.wikipedia.org/wiki/HipHop_for_PHP

share|improve this answer
1  
"highly optimized" == "50% reduction in CPU" -- ROTFLMAO ;-) Sorry, if it was indeed highly optimized C++, it would be not 50% faster, but 50 times faster, than PHP. HipHop just optimizes some simple code, but still uses horrible Zend Engine for most parts. –  vartec Apr 15 '11 at 20:52
add comment

From my first hand experience it's extremely hard to find competent PHP developers. Not because there are so few, but rather because it's very hard to find good one between 100 not so good, and 1000 pathetically horrible ones (these are the types that fail FizzBuzz test). Also, while looking for language agnostic developers, some of very good ones turned down offer as soon as they've learned that part of the job would be working with PHP code.

With Python my experience is quite the opposite, S/N ration is very high when you're looking for Python developer, and from language agnostic guys reactions was rather like "Python, awesome, that's what I wanted to try next...".

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.