In a recent blog post by Roy Osherove, it is pointed out that his switch from primarily .Net development to ruby development has seen a huge difference in community involvement and really enjoys it.

The quote that spawns this question is :

there is no master overlord that dictates what you will or won’t work with.

I don't spend a great deal of time working with php, but I do spend about the same amount of time working with ruby. From the time that I spend working and communicating with people who work with both technologies it seems like Ruby has the feeling Roy describes much more than PHP does.

I don't deal with Python a great deal, but those I know who do all say it has a similar community feeling.

This strikes me as odd since every ruby and python programmer I know tend to have learned php somewhere along the way but they have no similar feeling about the php community.

I understand there are justifiable complaints with earlier versions of php, but people were still able to use it to build some very large sites and many companies use it.

What separates these communities that ruby and python seem to have such a different vibe compared to php?

(This question could be subjective but I'm hoping there is a solid impartial answer to explain the difference)

  • 9
    Ruby and Python are currently cool. PHP isn't. In a few years time you'll be asking why Fnorgle has such great community involvement while Ruby and Python don't. Commented Jul 6, 2011 at 5:53
  • 4
    A lot of people use PHP by choice. Its a very productive langauge. That there's a lot of crap code out there written in PHP by amateurs isnt an issue to the applications professionals develop. Commented Jul 6, 2011 at 7:27
  • 3
    @Carson: no, you won't. In fact Python is much older than PHP, Ruby is exactly as old as PHP.
    – vartec
    Commented Jul 6, 2011 at 11:18
  • 1
    Ruby tends to attract intelligent and active developers, not sure why exactly but I have my opinions on this. I have never met a bad Ruby developer but I have met more bad PHP developers than I can count.
    – maple_shaft
    Commented Jul 6, 2011 at 11:18
  • 1
    @maple_shaft, why do I care what the public perception of PHP is? I'm writing software, not running for prom queen. PHP is well suited for more than just simple scripts. There is a lot of bad code written in it by newbies, but that has no bearing on the code professionals write. That is, the bad code in their poorly thought out open-source programs doesnt affect how good code in professionally written applications runs. Commented Jul 6, 2011 at 18:21

2 Answers 2

  • Both Ruby and Python have formal language definitions separate from implementations, in case of PHP you don't have language definition, just the Zend implementation;
  • Both Python and Ruby have community process run by a foundation, PHP development is mainly dependent on Zend (this is changing lately);
  • Both Python and Ruby are general purpose languages, PHP is web only;
  • Both Python and Ruby are object-oriented from ground-up, for PHP OOP support is something, that was added later and it's not in the core of the language;
  • Both Python and Ruby where designed as languages, PHP started as collection of hacks for HTML forms processing;
  • Both Python and Ruby are modular, in PHP instead of modules you have just bunch of functions in the global scope, with very inconsistent naming.
  • 2
    Both Python and Ruby are general purpose languages, PHP is web only - PHP is a general purpose programming language. Also, why do you claim PHP isn't modular? Because it contains some older functions for string manipulation that had inconsistencies with parameter order? It's inaccurate to say that PHP isn't modular, but zealots here and there will claim various things about various languages and discussions such as these won't make anyone budge. I just find it really unethical to post untrue facts. Commented Jul 6, 2011 at 9:54
  • 2
    @Michel: PHP is not general purpose. The only attempt to use it outside of web was PHP-GTK, and that failed miserably. PHP is not modular, because it has no notion of modules. include/require just adds text of file into global namespace. And BTW, you are free to post your own answer.
    – vartec
    Commented Jul 6, 2011 at 10:05
  • 1
    I dislike language comparison questions, that's why I never take part in them so I won't post my answer. PHP is a general purpose language, because it CAN and IS used outside of the web - but there are better tools for certain things. You've said that the language isn't modular, there's the API for creating actual PHP modules (in C) which lets you extend the functionality of the language itself. I'll stop here, because biased and inaccurate comments and answers will continue to pile up (not that I don't agree with most of your points, I'm just commenting on the ones I find inaccurate). Commented Jul 6, 2011 at 10:14
  • @Michael J.V. 'Web only' is a big statement, but Web is definitively a big aspect in PHP, that influenced it's syntax (which is to be embedded in HTML) and design ($POST/$GET/$SESSION dont make much sense without HTTP). Granted, in any turing complete language you can also make non-web-applications, but i guess, most of us do not have a definition that strict of 'web only'.
    – keppla
    Commented Jul 6, 2011 at 10:23
  • 2
    @Michael Sure you can have 8-bit CPU emulated in Minecraft. You can also have web server written in PostScript (PS-HTTPD) or Bash. Still Minecraft is a game, PostScript is a page description language and Bash is command interpreter. Just because you can use can opener instead of hammer doesn't make it 'all purpose'. If it does in your book, you will shortly come to a conclusion that everything can be used everywhere with varying results. Commented Jul 6, 2011 at 11:20

Common perception: Ruby and Python are real programming languages, to be named along C, C++, C#, Java and the like. PHP is something like an HTML with some scripting ability.

Active community can only really be formed by developers, and a programming language may just seem more clean and interesting to them then a "duck-taped-together" extended HTML thing, very much restricted to web stuff.

remember that this is not about facts or totally rational arguments, but about psychology/perception, which might be partly based on reality.

Python definitely is used for much more then web development. i do not know if that is true about Ruby.

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