Die Flagge des Marasek



Current Texts Comic Imprint Calendar Search PHP-Classes Container-Wizard main.s21


Class Library
Global Politics
World Outlook

What makes fanbois so bitter?

Previous: Python vs. PHPNext: Data Structures in PHP
Assigned keywords: Programmieren

As a supplemental to Python vs. PHP, I'm dealing with the question today what makes people bitter about other platforms and languages. The question was raised yesterday in a discussion about PHP, because of a very ardent supporter of Python. What made him to post reply after reply in a forum that dealt with a new release of PHP? It wasn't even a specific technology or approach, which could more easily warrant discussion, just the news that PHP 5.3RCx has arrived. Which actually brings some features opponents of other languages fervently pointed out as missing.

What I think is the reason is that many programmers which do Python find themselves in a situation where they have to deal with PHP. And from my own account I know how frustrating it can be if you have to work with tools you're not accustomed to and that lack certain features you like. I once had to work with MySQL 4.1 - after I had known MySQL 5 and Postgres. And the same feeling always befalls me when I have to work with JavaScript - no Autocomplete, no class loading mechanism, no interfaces, no public, private, protected and so on. Yuck! Needless to say that I don't like the whole AJAX hype.

Two facts are adding to the problem. One is, that there are indeed many PHP programmers which produce crap (Java and Python and all other languages too, however), the other is that there are many managers which are keen to jump on any hype which is currently running. MySQL and PHP both started as languages for a specific purpose (Web), but then people began to get it wrong and thought that MySQL was supposed replace Oracle (ya know, Oracle is expensive and MySQL is cheap, besides everyone is using it), as well as PHP came into mind for a replacement for Java (ya know, Java is so complex and the developers are so expensive).

Certainly, MySQL 3.51 was a pain when you compared it to Postgres, at least if you needed Postgres; if you just took it as an enhanced file system with SQL functionality, it served its purpose quite well. Heck, I've implemented stuff with flat files, so why should there be no need for what MySQL 3.51 was? Same goes for PHP, it was designed as a toolset to deal with forms and it began to replace Perl/CGI for many needs. From the beginning, it was not designed to handle great amounts of data, it was not designed to build big sized projects with it, yet people did. And then these people turned to both MySQL AB and Zend in order to demand features to help them realize projects for which both tools had not been designed for in the first place!

MySQL actually found a very good answer, because they just added new storage engines to leave the choice to the programmer, which could still select razor fast engines without data integrity checks or take the slower, but more reliant engines. PHP had a harder time; if they would ask me for advice (unlikely), I'd advise them to include much more 'professional' stuff such as type hinting for scalars, return values, expect exception in interfaces and so on, but make it optional and linked to a strictness level, so each programmer can decide how far he wants to between doing good ol' functional programming or real strict OOP with Design by Contract. This would appease the PHP haters a little bit while not driving away the main userbase.


Please note: comments posted won't be visible immediately, as they will be checked for harmful content.

* Title  
* Nickname  
* Comment