I think working in software involves a lot of shifting between making something that works and shipping it, and stepping back and thinking about the tools you use in a deep way. It's possible to dismiss one by focusing on the other. (I noticed that the author partially responds to criticism of PHP by pointing out who shipped with it) And it's possible to dismiss actual good ideas by noting how fashionable they are. I'm just sayin.
It's true that a developer using a tool doesn't say anything about their skill level, but as the author points out, those perceptions become reality so... yeah. Programmers are more fashionable than we like to think. But I would rather use that to my advantage than doggedly stick to something that I can't get a job with, just because I think it's so great. I mean... they're all Turing-complete, right?
There are a lot of things that I thought were pretty good, that fell by the wayside. Sure if I get riled up enough about it, I'll insist on how good they were, and how they died for unjust reasons.
If I came to work every day and felt like I was facing a torrent of people telling me PHP sucks -- even if I thought they were wrong I would start looking for a Javascript job. I mean... they're all Turing-complete, right?
The only other thing I have to say is that it's a bad idea to take personally the uninformed criticism of something you use every day. It's just not a good idea. Figure out why you think differently, but you have to stop there. Otherwise you will go nuts.
Out of curiosity, have you looked at other languages and decided you don't like them?
I know what you mean about JavaScript. It has many alarming problems, like PHP. Unlike PHP, however, there aren't quick fixes for them (e.g. strict error reporting).
Honestly, I spend a lot of my time writing JavaScript and Scala. My point with the article is just that PHP has a lot of stigma that creates a self fulfilling prophecy of being a 'bad language'.
PHP "was" a great motivation for someone starting out. It is far more understandable for non technical people and gets results witch fuel your motivation further. The above qualities "were very important" in a time where self learning material were rare, incomplete and expensive. I remember myself as a self taught back in 2006 that PHP gave me inner strength. For me this is the reason for PHP being popular back then.
But now things have changed. Self learning materials (MOOCs etc) are everywhere and in great format (videos, classes etc), so it is far easier to grasp harder and more complicated therefore more sophisticated topics and tools and be productive to fuel your motivation. Also things have changed, people have realized that web is not all there is in programming due to the rise of higher added value programming activities such as games, mobile apps, data science etc. So for me this is the reason PHP is not so popular nowadays. Many other languages support the above in expense of being more complex (for example python or java) but self learning materials nowadays make this problem obsolete.
TL;DR: IMHO the "only pragmatic problem" with php, which is also its great strength, is that its domain is mainly the the web. So in order to reach other cs areas which are of higher added value nowadays (eg algorithms, data, mobile, you name it..) you must switch tools.
I can definitely relate to the author's viewpoint. The dynamic he refers to is felt by talented developers who have an independent streak that runs to contrarianism. Not to toot my own horn but to speak up a bit in solidarity, I started programming on a TI-81 and then was lucky enough to attend high school where you could learn Pascal, so I got recursion early, then C++-based curriculum in college and also several semesters of AI in Lisp. So I'm not an absolute idiot at least.
My first real job was with PHP5 and it seemed fine to me then as now - of course I never used it as some do, with code and markup intertangled. My typical response to folks who denigrate PHP is similar to PG's discussion of Lisp as a competitive advantage (wonder what Zuckerberg might write if he were similarly inclined) - if you don't get it, fine with me. Except the author is right, developers are more trend-conscious than we would like to think, and without possessing a unique deep goodness such as Lisp's there's a real risk of PHP becoming redundant.
For my own projects, I've decided I will ride the PHP train as long as possible while spending a lot of time on the javascript side (so I have resume bullet points that are respectable to unenlightened folks) and then if/when the stars move too far out of alignment just switch to whatever looks best. I've got a framework (which I've been working on for a long time before it was trendy and then un-trendy) with the server components written in PHP but I seriously think it could be converted to Python in a few days. Clean code is clean.
This article doesn't touch on any of the reasons why PHP is a bad language, entirely glossing over it's inconsistent and often baffling internal design, and instead defending it's validity by arguing that you can ship things with it.
You can hammer nails with a rock too, and screw screws with a pocket knife, but that doesn't mean that people who've used hammers and screwdrivers will stop saying that rocks and pocket knives are bad tools to use for construction.
JavaScript is also a bad language - the === operator has no business existing, for just one example - but it's impossible to avoid, due to being the only language which runs client-side in a browser, and the same is not true of PHP.
If Facebook can get Hack to go mainstream, PHP may have a second chance. But for now, it seems like PHP is dying. There are now 2x more Ruby jobs than PHP in the Bay Area. Here's a link to Google Trends for PHP
I have the most experience in PHP, but I've been purposefully avoiding it lately just in case it becomes Perl. I've been using Node lately and will probably start using Ruby.
That may be true for the Bay Area, but it's different literally everywhere else. In Europe for instance Ruby is still quite rare compared to PHP and .NET.
Also, Google trends is hardly a metric. Compare indeed trends or StackOverflow tags, and you'll see PHP is much more relevant.
... And what a shock it was to see that Ruby is not more popular where I am in Europe. However, when I was looking for work, I had other skills to work with.
There is plenty of JavaScript jobs here, outside Java and .NET. Possibly though, that's a given.
Agreed. I've been in the Bay Area for ~1 year and definitely see the Ruby / Node / Java trend but back in Michigan it seemed like every tech job I'd run across was PHP or .NET.
The PHP ecosystem is huge. There are so many different platforms and frameworks. I can see myself as a PHP dev the rest of my career. It's easy money and if you're a decent dev you automatically stand out from everyone else.
"If PHP developers are made to feel terrible, they will leave and there will be less and less great developers working with PHP."
I don't quite see how this might be a problem. Does the author think those people would be less great in another environment? Does PHP own these people?
"Often times, people are just complaining about PHP because it’s a popular thing to do."
No. We do not complain about PHP because it's popular. We complain about PHP because it sucks and we are forced to use it.
It's true that a developer using a tool doesn't say anything about their skill level, but as the author points out, those perceptions become reality so... yeah. Programmers are more fashionable than we like to think. But I would rather use that to my advantage than doggedly stick to something that I can't get a job with, just because I think it's so great. I mean... they're all Turing-complete, right?
There are a lot of things that I thought were pretty good, that fell by the wayside. Sure if I get riled up enough about it, I'll insist on how good they were, and how they died for unjust reasons.
If I came to work every day and felt like I was facing a torrent of people telling me PHP sucks -- even if I thought they were wrong I would start looking for a Javascript job. I mean... they're all Turing-complete, right?
The only other thing I have to say is that it's a bad idea to take personally the uninformed criticism of something you use every day. It's just not a good idea. Figure out why you think differently, but you have to stop there. Otherwise you will go nuts.