by saurabh on 6/16/16, 12:39 PM with 281 comments
by trebor on 6/16/16, 2:21 PM
More work was available locally with PHP. Clients were more willing to pay. I've done a ton of things in WordPress that shouldn't have been, "to save money". And I've done greenfield development with CodeIgniter, Laravel (v3 and v5), and a customized set of the Symfony components. I've also maintained and improved brownfield projects that were outsourced.
I'm very tired of hearing that PHP sucks. PHP is a good language. And in my opinion, it has fewer ways to sabotage your own project than any language with monkey patching. PHP7 looks really awesome, and the community has been upgrading quickly toward it. PHP has always had best-in-class documentation in my opinion.
More often it's the programmer who sucks, not the language.
by leftnode on 6/16/16, 1:29 PM
My customers and users of my applications don't care what it's written in.
But, you should definitely learn more languages as a programmer.
> And to anyone considering programming as a career, or trying to get into it... stay away from PHP.
This is the part I disagree with the most. The language is getting better and better with every release. It's incredibly fast, much safer to use (the Error exception type, scalar static type hints, all the garbage from the early 2000's has been removed), and easy to work with. The ecosystem (with the introduction of Composer) has _completely_ changed and reinvigorated the language. It's easily one of the best package managers out there. I definitely recommend giving PHP a look or a second change if you've written it off.
by cdnsteve on 6/16/16, 1:38 PM
When you step outside these mini ecosystems and look at PHP as a vanilla tool to work or to use a proper micro/full framework you start to question why use PHP at all? One possibly acceptable framework, in my opinion, is Laravel. The problem is PHP outside of these mini ecosystems isn't nearly as popular. It looks like people migrate to an entire new language like Python, Ruby, Node, etc. If we're talking about sheer people hiring Ruby, Node and Python typically trump PHP every time and are using frameworks - not Drupal or WordPress. Granted there are custom PHP apps out there and some very good ones but they're not the norm.
I switched full-time to Python using Flask and Django. It's like a breath of fresh air. My 2 cents is if you're on the fence, figure out how to work on one project using this new language full-time. Then you can make a better decision.
by brokentone on 6/16/16, 1:55 PM
> ... And to anyone considering programming as a career, or trying to get into it… stay away from PHP. There’s lots of fun, interesting languages out there that also get the job done quick, but with a better reputation and this will have an actual effect on your future career options.
> Looking for a PHP developer for your next project? I'm looking for work! Check out my resume or drop me a line!
by swalsh on 6/16/16, 1:28 PM
Here, I deploy every other morning. Usually, while my coffee is getting to the right temp. The ability to just "throw it on the server", and to take it back if you need to make it great. There's a bunch of devs here, and that deploy all day long every day is one of the main reasons we move "so much faster" than our competition.
So as much as I hate how weird it is, and how frustrating it is not to have strong typing... i respect the heck out of it.
by imron on 6/16/16, 1:41 PM
by smoyer on 6/16/16, 2:12 PM
That's me but ... I've known quite a few good PHP developers like this author. I've also seen horrible, horrible things - things that other languages and frameworks simply won't let you do. A language that gives you a lot of slack also gives you more opportunity to hang yourself. There's nothing that says you have to hang yourself.
As mentioned, the barrier to entry is low with PHP. The combination of a "loose" language and a newbie programmer is dangerous. And didn't all of us, as newbs, think we were done when it seemed to work properly? So the correct statement is not that PHP sucks, it's that many write sucky PHP. I'd rather see everyone aspire to not sucking (and certainly not hanging themselves) regardless of the language they use.
NOTE: I wrote a lot of PHP code in the late '90s and reworked part of a project in 2005/2006 so I obviously don't know anything about the current state of PHP. I'm not against it - I simply choose not to use it (at least at the moment).
by steven2012 on 6/16/16, 1:59 PM
What we found is that most good programmers didn't want to work in php and most php developers were designers that learned how to code php. But they didn't understand CS fundamentals or even a decent idea how to code. They could cobble together a web site that worked and even looked great, but they didn't know how to write maintainable, modular code.
It got to the point where I would ask the candidate to merge two sorted arrays and 70% couldn't do it properly.
In terms of language, I thought php itself was a surprisingly productive language. I just quit though because I didn't want to be known as a php developer because of the stigma and there poor quality of other php developers that I encountered.
by mschuster91 on 6/16/16, 2:45 PM
In fact, this is one of PHPs greatest strongs, not a weakness! NodeJS, Ruby and especially long-running Java web apps easily turn into huge memory leaks.
PHP, on the other hand... not so much.
> PHP is generally not approved in the enterprise
I believe OP is looking from the wrong angle. There certainly are successful, enterprise-used PHP applications (e.g. SugarCRM, Drupal, Typo3), so it certainly is not a problem of approval.
IMHO the real problem is the total dominance of (extremely!) outdated COBOL/FORTRAN/(other mainframe stuff), SAP and Java (hello Lotus Notes!) applications in business.
by rob74 on 6/16/16, 1:32 PM
by arenaninja on 6/16/16, 1:50 PM
I think it's possible my salary has hit a plateau. Most SMBs do a false equivalence between PHP developers and junior developers. One place I worked at the owner used to brag about hiring people starting out for $12/hr.
The thing is, with my experience in PHP it's easier for me to write secure code in PHP than anything else at this point. I can do it really fast, too. I've internalized a lot of micro-optimizations in PHP. Project scaffolding on a greenfield project ends up looking a LOT like Express if you use the Slim framework. And I stay away from PHP if I need concurrency (and so far, per business requirements, I haven't). I can scale it really well, and I rarely have to worry about memory limits like you do with the JVM.
I'm hoping for a breath of fresh air with PHP7, because I'm not entirely sold on the current runtime alternatives - JavaScript, Python or Ruby. I've been trying Scala and I write less code than Java, but definitely more than PHP. It's also hard to jump into the Play framework if you don't grok the 'weird' operators. I also find that it's easier to hang yourself with incompatible components/libraries. So far it's fun to write though, but I don't think I've seen anyone hiring for Scala in my town.
by agentultra on 6/16/16, 6:22 PM
In my experience the modern PHP developer is characterized by a crippling self-consciousness. When I meet someone who is a fellow developer and tell them that I do C and Python and stuff... they usually begin with a bit of self-deprecating humor: I do PHP and stuff, not real programming like you, blah blah blah. I feel obligated to correct them.
The best thing you can do for yourself as a programmer is to not pigeon-hole yourself to a single language regardless of how tempting it might be from an economic/marketing perspective. Learn maths and get good at identifying problems and simplifying them. Become an expert in at least one general-purpose language and one specialized one for sure... but remember to think like an engineer: these are just the brick and mortar of the job! You still need a good mind for design, creating blueprints, and the experience to make informed trade-offs.
PHP is good for many things. Deal with it.
by tybulewicz on 6/16/16, 1:47 PM
by gregoriol on 6/16/16, 2:04 PM
All trendy technologies might be replaced anytime (hey React, Go, I'm looking at you!), one day they are very cool, the next day nobody maintains them and everyone talks about another new cool thing; how many of these have we seen?
New cool stuff are important to know, explore, test, use because they bring a lot of interesting stuff, but often they only address some use cases, as they have been made by a team with specific needs (looking at all hundreds NoSQL databases?); php and some others (like ruby) are stable, well known, cover a vast area of use cases with very well made and long thought frameworks and tools (symfony, doctrine, phpstorm, ...).
You are always free to follow trends, like with clothes, or just choose the best thing for what you need to do. You'll definitely find jobs with any of these, if you are able to explain why they are good for what you are doing.
by Vozze on 6/16/16, 1:25 PM
I hate it, because it makes me feel defensive. PHP in their minds
is much worse than it practically is. Im tired of defending
PHP, Im tired of being set back and having to proof my compete
by virtue of being a PHP programmer.
For me it is the other way round. I like it when journalists ask me what super advanced tech stack I use. When I get tweets about what libraries I use in my projects. And students mail me questions about the technology behind my Startup. And I can reply "It is just your average LAMP stack".by CiPHPerCoder on 6/16/16, 1:52 PM
Some people openly question if a PHP developer who understands security exists at all: https://twitter.com/MalwareJake/status/506488937096183808
This is silly when you think about it. If so many systems run PHP, wouldn't you want your infosec people to know PHP and work with it more often? Why are we, culturally, encouraging such a blind spot by ostracizing folks who know it well? That part never made sense to me.
This conversation plays out more frequently than I like:
Rando: Hahaha PHP security is an oxymoron.
Me: Okay, then hack paragonie.com. It runs PHP. Logically, you should
be able to hack it _just for running PHP_ if PHP is so insecure.
Rando: But that website's mostly static content!
Me: Yes, but it runs PHP. So it must be insecure, right?!
So far, despite giving people permission so the prospect of CFAA convictions don't discourage them, none of these "PHP is inherently insecure" folks have succeeded. I wonder why. :)TL;DR - A lot of the hate against PHP is founded on ignorance and peer pressure. Be open to constructive criticism, of course, but a lot of the hate you'll hear is bullshit.
by chriswarbo on 6/16/16, 2:26 PM
Personally, I don't see much point in arguing the merits of PHP compared to, say, Python, Ruby or Javascript, since those languages are so similar: procedural scripting by default; opt-in use of OO as the happy path for most libraries; functional programming possible, but an uphill struggle WRT APIs, tailcalls, language cruft, etc.
There's also a lot of interbreeding in those language's ecosystems, so there's rarely a killer library/framework/app in one which doesn't have a few carbon copies in the others. I would recommend developers in those languages look at what the others are doing, but I don't see much point in switching between them as an end to itself; go for it when convenient, but nothing much will change (e.g. I was heavily into Python, but fell into PHP dev roles commercially).
The more interesting comparisons are to be made with languages/ecosystems which have a different philosophy, e.g. Java/C#, Haskell/ML, Lisp/Scheme/Lua, C/Go/Rust, C++/D, Smalltalk, Forth, etc. Those kinds of comparison have meat; they're not just bikeshedding about which syntax to write imperative procedural/OO scripts in. I commend the author's choice of learning Go (although I'm not familiar with it myself).
I think the procedural/OO scripting languages will be around for a while to come, but I think their niche is in public-facing applications (usually Web sites, but Python certainly has a heritage of desktop GUIs and CLIs). Certainly the use of REST services is making it easier to use languages for those jobs they're good at; for example, using Go for data crunching, while Web site rendering is done in PHP.
by Gnarl on 6/16/16, 3:52 PM
by staticelf on 6/16/16, 1:41 PM
Still, PHP is so goddamn cheap it's not even funny. But I recognize everything the author is describing.
by ishener on 6/16/16, 1:38 PM
Besides, learning a new language is fun and not that hard... They are all pretty much the same...
by tszming on 6/16/16, 3:50 PM
by agentgt on 6/16/16, 4:51 PM
Yes it gets the job done and you can argue it is readily available, a calorie is a calorie etc....
...but the reality is even "new" McDonald's is not terribly good for you and people will judge you if continuously eat there (I'm not saying that is a good thing but it does happen. Just try asking coworkers to go there with you).
And that is the point. The OP doesn't like to be judged but the general consensus is PHP is "probably" not good for you long term (regardless of the caveats of the language one cannot argue that other language programmers are generally paid much higher).
Imagine it this way. Imagine a fitness professional saying: "you know calories are the main thing that make you fat so I eat a small McDonald's meal and fast the rest of the day".... what would you think of this fitness expert... would it honestly not affect your judgement?
I'm not saying PHP is bad... I'm just saying I understand the behavior the OP doesn't like.
by datashovel on 6/17/16, 12:40 AM
This is what a function call looks like in PHP:
myfunc($arg1,$arg2);
What a mess, right?Functions can represent any subset of computation within a program, or in some cases a function can represent all of the computations of an entire program. If you're hung up on small nuances of a language, you're probably just not doing it right. That's not a bad thing. A lot of people find themselves in this position, but the bottom line is you're probably just not writing your programs with the correct lower level abstractions.
That's it. It's not magic, but it's not always easy either. You shouldn't feel bad about it. Just keep trying and one day you'll realize that very little of what makes a great programmer has anything to do with the language you're using.
NOTE: This isn't in response to the author. They appear to have a strong reputation within the PHP community. This is really just a general response to all of the PHP hate in this thread.
by jccc on 6/16/16, 2:51 PM
The author didn't explicitly state it as a causal relationship, but doesn't this have more to do with supply and demand than respect?
It's true that if you're a guru in a more esoteric language you're going to earn more respect than a guru in PHP (although if you're really a guru in PHP you're probably also pretty good in more respected languages).
But it's also true that your skills would be in much higher demand for any available jobs in that esoteric language than PHP skills are for its available jobs.
[EDIT: I suppose an argument that cuts the other way is that PHP projects -- regardless of what the employers know or care about the language -- tend to be lower status and lower paying than those built on more esoteric or more "serious" languages.]
by mfonda on 6/16/16, 4:57 PM
This really hits the nail on the head. A lot of the criticism of PHP comes from people who have never worked with a good PHP codebase and have only seen some of the many examples of awful PHP code out there. A well written PHP codebase is really nice to work with.
> The problem I have with PHP has nothing to do with the language, it’s its reputation. I can’t count the times I’ve started a conversation with a programmer who upon finding out I primarily do PHP got awkward with me.
I've experienced this many times as well. I think the previous point is really the root cause of this. People have a lot of misinformed ideas about PHP due to the sheer amount of really low quality PHP code and "developers" (i.e. people with no experience just trying to get shit done).
by serg_chernata on 6/16/16, 1:59 PM
by chasing on 6/16/16, 3:01 PM
I'm a developer. I use tools to get things done. PHP is one of many tools in my arsenal. For certain projects, it's awesome. For others, it's very much not awesome.
That's the beginning and the end of it. I don't get defensive. If I bring up PHP and someone says something like, "Oh, I’m sorry about that" -- that's an indication of that person's immaturity, not any weakness on my part. It's a super condescending thing to say to someone...
If I didn't just give up on them at that point, maybe I'd explain why I chose PHP. If I'm wrong and I'm actually making a bad choice of tools for the given project -- happy to have that conversation and learn a thing or two!
by PaybackTony on 6/16/16, 5:10 PM
As an aside, my favorite syntax is C#.
But at the end of the day, the author has the right idea and it seems many of you don't. If you're a skilled programmer the language is a preference, not a precursor to what your app will turn out to be. If for any other reason than platform related your code turned out bad it's a good indication you're not one of those skilled programmers.
by stop1234 on 6/16/16, 2:03 PM
The HN post title is sure helping with the reputation.
by aeturnum on 6/16/16, 3:41 PM
> PHP is great at gettings things done, pedantic points about design don't matter.
> PHP is a huge mess of a language - that people have overcome that to create things doesn't change that.
Both of these responses can be (and are, imo) true.
by spriggan3 on 6/16/16, 1:32 PM
Asp.net on linux, Go, Elixir, Python, Ruby,Java ...
PHP kinda saved itself when it got Java like classes(which are fairly rigid thus allowed retrofitting "type safety" in PHP) which allowed engineers to write large and maintainable codebases (Symfony,Doctrine...).
So again, no need to complain, go see your manager and try to convince him to try an alternative solution. Of course if you're using a CMS like Worpdress or Magento it might be a bit more complicated to migrate. But for projects started from scratch frankly, an engineer that can write a Symfony/Doctrine app can easily switch to Asp.net, it's exactly the same level of complexity.
by DonaldFisk on 6/16/16, 4:14 PM
http://www.azquotes.com/author/47278-Rasmus_Lerdorf
As a language designer myself, I would find it hard to design a language worse than PHP, but Mark Rendle has tried: https://www.infoq.com/presentations/worst-programming-langua...
by tmaly on 6/16/16, 4:57 PM
You can hate it as much as you like, but bad code comes from bad coding practices. PHP has all the features other languages have. It even fairs pretty well in the benchmarks game against its peers http://benchmarksgame.alioth.debian.org/
by at-fates-hands on 6/16/16, 3:53 PM
The one thing I never understood about developers is how your programming languages are a total pissing match. If it gets the job done, who gives a fuck if it has a few quirks here and there? Can you create something cool? Can it be properly secured? Ok, great, let's focus on building something instead of whether we're using wood or concrete.
by awalGarg on 6/16/16, 4:02 PM
On the article itself, it is a mindset issue with people. Not sure how it is different from people saying "haskell is useless" or "JS is a toy language".
by velmu on 6/16/16, 3:03 PM
by programminggeek on 6/16/16, 2:08 PM
Once you need a framework and the complexity that goes with it, PHP starts to suck. It lacks the behavior and tools to nicely manage complexity beyond a pile of files.
But when what you need is a pile of files, PHP is awesome.
by githubber123 on 6/16/16, 4:14 PM
by SFJulie on 6/16/16, 4:04 PM
But I love them. As long as they stayed doing PHP they didn't contaminated other communities.
Now that they came to python with their bad practices exacly for the bad reputation reasons described in the article, I see PHP kind of coding ... SQL injections, shell injections ....
Please PHP coders I love you doing PHP, don't leave PHP.
by joshmanders on 6/16/16, 2:17 PM
by efnx on 6/16/16, 4:09 PM
by talmand on 6/16/16, 2:52 PM
Anyway...
>> For many people, PHP is the first programming language they try without formal education.
>> We’re not taken as seriously, and we’re being paid less.
Is this one of those correlation not causation things I keep hearing about?
by legohead on 6/16/16, 3:43 PM
by sleepychu on 6/16/16, 3:53 PM
What a great way to look at this. Author has some really interesting insights into why the PHP stigma exists and the problems that it creates for a (good) PHP developer.
by billpg on 6/16/16, 1:15 PM
by chj on 6/16/16, 3:06 PM
by vans on 6/16/16, 3:25 PM
by SadWebDeveloper on 6/16/16, 2:57 PM
And don't start talking about docker... that's a patch/hack to a serious problem, if i need an entire "jail manager" just to run your app then deployment is not as easy as you kins think it is.
by adamors on 6/16/16, 2:49 PM
by whamlastxmas on 6/16/16, 2:14 PM
by combatentropy on 6/16/16, 4:52 PM
by icedchai on 6/16/16, 4:08 PM
I've made a ton of money doing PHP contracting locally. For my day job, it's been Python, Java, and Go.
by supbpeerr on 6/16/16, 2:34 PM
Coming from php to golang is insane, you will be very impressed by all the mature and insanely fast tooling.
For example I now have test suite running in about 0.3 seconds, where my last PHP (laravel) app took about 20 minutes testing similar stuff.
by axelarroyo on 6/16/16, 2:32 PM
by EugeneOZ on 6/18/16, 10:28 PM
Composer is not a new wave but piece of shit which brings old shit-code style with rules "don't touch it while it works" and "legacy code is a good reason for bad architecture".
And Golang sucks too.
by the_common_man on 6/16/16, 3:02 PM
by paulgrimes1 on 6/16/16, 10:56 PM
The child suspended in the air is wailing about how the whole playground is being totally ruined by the other kid.
The other children watch, bemused, from the other playground equipment, happy that they've grown out of the seesaw; all the parents watch from outside the playground, not caring who plays with what.
I'm overweight and enjoy seesaws. Yay!
by Gargoyle on 6/16/16, 3:03 PM
And yet this morning I'm earning yet another paycheck digging deep into PHP.
by micwo on 6/17/16, 2:15 PM
by Im_a_throw_away on 6/16/16, 2:49 PM
by ThomPete on 6/16/16, 2:51 PM
PHP will still be the most accessible backend language for a long time and only JavaScript stands a chance at outcompeting it for a long time. (And yes I know JavaScript is normally seen as a frontend language)
by acoderhasnoname on 6/18/16, 12:32 AM
by gabrielc on 6/16/16, 4:17 PM
by 0xmohit on 6/16/16, 4:03 PM
Shit producing daemons suck.
by draw_down on 6/16/16, 2:21 PM
by FussyZeus on 6/16/16, 3:29 PM
I'm kind of glad I'm very disconnected from the communities and the various groups that handle this stuff, I just write my code and go home. It sounds like thousands of bickering children.
by ooooak on 6/16/16, 3:42 PM
tell me something new
by pbhowmic on 6/16/16, 3:35 PM
by knieveltech on 6/16/16, 1:59 PM
by anonjdgpogjsop on 6/16/16, 1:35 PM
Same for JS.
by jstewartmobile on 6/16/16, 1:36 PM
by mxuribe on 6/16/16, 2:02 PM
Perhaps remembering that PHP could mean "PHast Prototyper" could help you/your team come to terms with all this?
by muglug on 6/16/16, 1:39 PM
I've built a static analysis tool for it, and it sort of feels like writing a CAD tool for lego bricks.