Google finally acknowledges that PHP exists

I read an article today about how PHP is exploding on Google App Engine.  How is it that one of the most despised programming languages in the word is running (as Google claims) up to 75% of the web?  Many nay-sayers will say “oh it’s just WordPress” or “oh, it’s just PHPbb”.  But in doing that they are completely missing the point.

The proper response to this is not trying to dismiss it, but asking why it is that PHP-based applications just seem to always be the ones at the top of the list?  Some may answer that PHP’s ubiquity gives it a default advantage but that still dodges the question.  WHY is PHP running 75% of the web?  Hosters don’t just say “hey, let’s throw X programming language on our web servers!”

It comes down to demand.  There is a lot of demand for PHP.  That’s why hosters put it on their web servers.

In the article Venture Beat says “PHP is moving to the Enterprise very quickly”.  This is not true.  PHP IS in the enterprise and has been for a long time.  People just either don’t know it or refused to admit it.

But, again, we have not answered the question “why”.

Many of the people who are nay-sayers of PHP are the people who have studied.  And in studying they have learned that programming languages need to do certain things in certain ways.  And of these things, PHP does none of them (ok, so this is hyperbole, to a point).  This is a major reason why PHP has such a bad reputation among cutting edge developers, CS grads and trend-setters.

But what it also does is expose the vacuousness of the ivory tower.  The ivory tower deals with validating the theoretical, testing the impractical from within a educational framework or methodology.  People will often say that this approach is a more pure way of approaching the problem rather than the dirty commercially-driven interests of the private world.  To which I say “big frigging deal!”.  Don’t get me wrong, I think that study is good.  Though I didn’t go to university I am under a continuous education program called “reading”, for the theoretical, and “practice” for the practical.  Study is good.  But study is not an end.  Real life occurs and it is not clean, pure and methodological.  What a bore if it were!

But this is real life.  PHP may not solve the problem in the purest of ways; in fact it will probably be pretty dirty.  But that is why it succeeds; it mirrors real life.  In real life you have a job to get done.  And if it takes more resources to do it properly, then the improper method will be used.  Commerce and business, at their most distilled, is simply an efficient means of the utilization and transfer of resources.  Those resources could be money, time, knowledge, or any combination of those or other things.  It is the utilization and transfer of things that have “value”.  And when you have two things that both have worth, purity and practicality, a judgment call needs to be made on which is more valuable.

PHP is valuable not because WordPress is built on it, but because PHP solved the problem WordPress was solving, easier.  In other words, it solved the problem by consuming fewer resources.

Using PHP, I think, is also one of the smarter moves by the company I work for, Magento.  For those who don’t know, Magento is the most popular ecommerce platform in the word and it is written on PHP.  Magento is probably the most complicated application platform available for PHP and it’s STILL easier to build for than most Java web applications with a wider range of programming skills that can be utilized.  In other words, it enables commerce by utilizing fewer resources than competing solutions, but still provides stunning extensibility.

An organization should require as few “top-end” developers for a solution implementation as possible.  When it comes to Magento, WordPress, Joomla, WordPress, etc. you do not require a CS degree to do it.  Rather than being a failure, that is a monumental success!  Scarcity increases cost and so if you can decrease scarcity (developer skill required) you can decrease cost.  And the real world is about doing as much as possible for as little as possible.

So how is it that Google missed PHP?  That is a question that I cannot answer since I don’t work for Google.  But I would surmise that it has something to do with the fact that Google didn’t WANT it there.  For all their posturing about being “data driven” they completely missed PHP despite the fact that they have access to the best web data on the planet.  Therefore I must presume that it’s another iteration of The Invisible Postman; also called “having blinders on”.  Node, Ruby, Python; all great languages and can do some really cool things that PHP cannot.  But they do not solve the problem of resource scarcity on the same level that PHP does, when it comes to web-based applications.

For software companies that are looking to break into the web there is only one language to start with.  As long as HTTP is the de facto protocol of the web, PHP will be its de facto programming language.  Suck up your pride, build your stuff, and be successful.

 

… and let the trolling commence.

12 comments
Gwyneth Llewelyn
Gwyneth Llewelyn

Hahaha :) I loved reading this old article of yours; maybe one day I'll start sending links to it to those people who pester me about PHP...


I'm sure that some of your readers here are professional developers with a decade of experience and who learned Java (and perhaps C++) at university. Well, I'm an old girl, and while in my days the Internet already existed, there was no Web, and obviously no PHP. C++ was the most complex language we were expected to learn, and pretty much everything that academia had developed in terms of conceptual frameworks on how people ought to programme was then "ported" to Java.


When the Web gained CGI, the languages of choice were Perl, and, obviously, plain old C. CGI was rather hard to configure at the very beginning when it was a novelty. Soon afterwards, PHP made its debut, and, as you so well put it, it was ridiculously easy to use. Variables being used without being declared? No strong types? Oh yes! We could immediately throw in some code and get things done easily, instead of having to write behemoths with thousands of lines of code (like in Java and C++) just to get something that actually compiles...


Obviously I'm quite aware of the limitations of PHP, and why strong typing and all the other nifty features from other programming languages are so important, specially in a multi-developer environment. But the point is that PHP is _cool_ to programme in, and you can start from scratch with a handful of lines of the most horrible code, which already does something useful, and then improve it to make it look better.


Fortunately, I'm not a professional developer, and mostly "programme to get things done" — which often includes getting different technologies to talk to each other and offering REST-based APIs to encapsulate all the mess beneath. The easiest way to do that is to have PHP at the top. I'm not saying it's the "best" way. It's just the "easiest" way. My current work is exactly to hide the complexities of a net-based (but not web-based) C# application, by throwing a PHP-wrapper on top of everything. Then I can develop my remaining application logic on PHP, embed it as a WordPress plugin, run it from the command line as a simple PHP CLI script... whatever. It's so much easier. Ugly? Perhaps.


One nice thing about PHP applications is that how they're so neatly isolated from each other in a common environment, because, ultimately, from the webserver's perspective, they're just files on disk which communicate to the outside world through the webserver. Recently I had a wonderful Python application running on a subdomain — lightweight, very fast, compact, with all the bells and whistles. Then people liked it so much that they wanted several instances of that application working on the same server, under different domains, so that they could isolate user groups neatly. Uh... right. That started to become impossible — the application was designed to run as a single instance. You could run it on different ports, then throw in a port redirector in front of everything, and... well, you can imagine the mess. I had gone through that tons of times before with Java applications — if they haven't been designed from scratch to run as multiple instances, it will be a nightmare to do that. Obviously there are tricks: you can create virtual machines, each running an instance, for example. Messy!


With a PHP application, all you do is to copy the files from one directory to another and have your webserver point a virtual host to it — and, there you go, you get a second instance. No fuss. No overhead. No incompatibilities. Couldn't be easier!


Obviously PHP's most visible limitation is that it doesn't work nicely outside a Web environment. A company I used to work with tended to ship their PHP application with a whole server around it (a Mac mini!) — it was far easier to develop, maintain and support customers that way, and have whole companies just use any browser to access their PHP application, instead of developing a Java/.NET/whatever traditional client-server application. In fact, I still have nightmares from working as a consultant for companies that had those kinds of client-server juggernauts running the business logic of their companies, with huge maintenance issues, as each desktop computer needed to be _exactly_ the same to make sure the application would work fine — but of course there would be always someone from the Board who would be issued a non-standard laptop, and the time to maintain that would quickly become a nightmare. While native applications on the desktop can certainly leverage performance (specially as web browsers get more and more bloated...) far better, and developing a front-end (on the desktop) and back-end (on the server) using exactly the same language (say, Java, C# or Python) is far easier for programmers, in the "real world", I really prefer maintaining and supporting PHP on the backend — and just have anyone in the workplace point the browser on their Internet-connected device (whatever it might be — from Blackberry to a gamer's PC) to an URL.


Still, it's quite true that PHP programmers are not exactly seen as "real programmers" (because PHP is not a "real language" — hey, it just has _arrays_! Where are the double linked lists, the B* trees, the hash/sparse tables...?) In fact, almost two decades ago (PHP was still very young back then!), I got fired when trying to add a PHP wrapper on top of a proprietary Oracle database running a public library. The issue back then was that they just barely managed to get 7 terminals connected to the mainframe back then. I proposed to use one of the 7 to run Apache + PHP, interface with Oracle, and export the results through the Web to anyone who could install a web browser on their networked device (and yes, some people even used text-based web browsers back then, on ancient VT100 terminals!). It was seen as "too revolutionary" back then, of course. But even today — even though PHP programmers can get jobs easily enough! — as soon as an organisation starts to "get serious" about what they're IT infrastructure is supposed to look like, PHP gets dumped in favour of one of the other "serious" programming languages. I see that happening all the time.


Because I'm _very_ biased, all I can see is that ugly-but-doing-the-job PHP applications with a few hundreds of lines get replaced by behemoths in Java which take years to develop, and, while they have flawless coding and expert developers behind them, they require oogles of more computing power to achieve pretty much what the poor, old, ugly PHP application did. Well, I guess that this makes the hardware business grow, which is not bad. On the other hand, I see way too much sloppy programming on the so-called "serious programming languages" that I always wonder if it's worth making the change... PHP is sloppy by nature, but designed to handle sloppyness well and efficiently. I can't say the same about the other programming languages...


I would say that PHP _does_, indeed, appeal to sloppy and lazy programmers, who just want to get things done quickly and efficiently. That is one of the reasons why I believe it gets so little credibility from "real" programmers. Specially real programmers who work at Google or Microsoft — no wonder, thus, that they take so long to embrace PHP...


Even though I have seen Microsoft reps firmly stating that PHP is, indeed, a Microsoft-supported language. Or they wouldn't be able to support their WordPress-enabled blogs on MS Live...

JamesHansen
JamesHansen

PHP gets the job done, more APIs available, you do not have rethink the wheel; C like language. Can be used in the desktop, etc....

_hhandoko
_hhandoko

This article started up great, but ended up sounding like trolling.

Cheap hosting and 'flatter' learning curve is, I believe, what propels PHP to dominance, and the inertia has kept it there since.

And, the reason why graduates and CS majors shy away from PHP is because Java, C#, or Python has a much wider application than just the web. You'll find Java in desktop, web, and mobile... As you would with C#.

blacksonic
blacksonic

I looked in the source code...global static Mage object is dominating...why would a professional developer take this code seriously?

_hhandoko
_hhandoko

PHP is not a first class citizen on the desktop.

aniketpant
aniketpant

@_hhandokoI understand the point you make here that other languages have a wider application base but PHP is a really simple and effective language. The web frameworks available have frequent updates compared to other languages.

Also, one major point everyone fails to notice is that PHP is 18 years old. It is still evolving and learning from the newer languages like Ruby and Python.

Python and C# definitely have wider application but developing web applications using them is a pain at times. They are not at all simple to use!

I feel that it is just a matter of acceptance. If you like PHP then you should and if you don't then coming out with points like PHP's dominance and cheap hosting availability is like ranting!

indy2kro
indy2kro

@blacksonic Indeed, the code is pretty much a mess.

Also, this one is quite funny: "Magento is probably the most complicated application platform available for PHP". It may be true for open-source projects, but don't worry, there are MUCH bigger PHP projects used by many big companies.

nostriluu
nostriluu

@aniketpant @_hhandoko have you looked at PHP's implementation of i18n and objected oriented features? they're a grafted on mish-mash of other language implementations, except much worse, much more complicated. They make the "flat" learning curve of PHP suddenly turn very steep. Yet these are essential features, but due to their afterthought implementations many PHP programmers won't use them or will use them badly. 

_hhandoko
_hhandoko

@aniketpant No, just a rebuttal of the author's arguments, e.g. the (more likely) reason why CS majors learn languages like Java: they will be more employable.

I agree about PHP being easier to pick up, but I'm curious why you say effective? What does that mean?

And it's not like other languages / platform remain static. Taking for example ASP.Net: 1) LINQ has influences from Haskell, 2) ASP.Net MVC is RoR inspired, 3) Async in .Net 4.5 is simpler with very minimal overhead.

kschroeder
kschroeder moderator

@indy2kro @blacksonic I'm not sure why this is funny.  You specifically state that it may be true for open source projects, i.e., publicly available platforms.  I was not talking about private applications.  Note the paragraph before.  I was talking about Wordpress.  Note the paragraph after.  I was talking about Magento, Wordpress, Joomla, etc.  I made no claim that Magento was the biggest PHP project.

Latest blog post: The cost of logging

_hhandoko
_hhandoko

@kschroeder I'm alluding to employability for a fresh CS graduate in a general. Market demand and supply always changes. But the market for C-like language skills combined is still far greater than PHP and has been like that for a while, thus it is a safe choice.

Regarding effective, exactly why I questioned it. It's all anecdotal because it highly depends on the problem domain. Good developers are far more productive in any languages / platform.

The more plausible explanation for why AppEngine doesn't have PHP until recently, is because Google is mostly Java and Python, not because they hate PHP.

I draw analogy to GAE as a cash generation office: they have extra resources and they want to sell it. It probably doesn't make sense to build support for other languages until they get a good enough footprint on the market.

Consider this, GAE is still a minor player in the PaaS market compared to rivals such as Heroku.

kschroeder
kschroeder moderator

Actually, employers have difficulty finding PHP developers.  If you know PHP well you will probably get a job.

And I defined what "effective" meant.  It can get the required job done quicker and with less resources than other options.  (yes, I expect that this will be argued  with as much anecdotal evidence as can be mustered)

But note the actual point of the article instead of bickering over the pointless banality that happens on so many tech blogs.  Google was surprised that their implementation of PHP on the App Engine was as popular as it was.  My point is that it should not be surprising given what PHP has and is doing.  Given that Google has the best data concerning the web, their surprise must be based on something OTHER than data.  THAT is my point.

Latest blog post: The cost of logging

Trackbacks

  1. […] é uma tradução do artigo original “Google finally acknowledges that PHP extists” do […]

Post Navigation

Web Analytics