5 ms·
this article didn't even address by far the biggest issue with PHP: there is a massive and divided community that is split between real professionals (the guys
by metaphorm 12y ago
this article didn't even address by far the biggest issue with PHP: there is a massive and divided community that is split between real professionals (the guys who build Facebook, for example) and total amateurs who don't know what they're doing.
critiques centered on the weaknesses of the language itself are missing the most important problem with PHP as a technology ecosystem. the technically rigorous, experienced, professional part of the PHP ecosystem is a minority and the signal:noise ratio is horrifically bad.
Do you know what happens if you put up an ad on a job board looking for PHP developers? You get flooded with hundreds of amateurs or lackluster freelancers (many of whom have no idea how far away from "good" they are) and a very small amount of responses from good developers.
Do you know what happens if you google search technical questions about how to do stuff in PHP? Flooded with blogposts and forum threads filled with actively harmful information instructing you on the wrong way to do things, without having any idea about why its wrong.
Other languages don't suffer from these problems to nearly the same degree. There are issues in the Python, Ruby, Javascript, Perl, Java, C#, etc. communities as well. Those problems are not nearly as intractable and damaging though. The communities of other languages have better signal:noise ratios and its really evident as soon as you try to do any hiring. It makes a difference.
- baggachipz 12y agoThe signal:noise ratio is better in Javascript, Perl, and Java? I can't possibly agree with you there. There's a lot of bad PHP out there. But that's also because there's a lot of PHP out there. I wouldn't say the ratio is any worse. Any respectable PHP developer nowadays uses a decent framework, and there are many. It's pretty easy to discern who's legit and who's not by whether or not they use/understand these frameworks. edit Why the downvotes? Am I not contributing? Or is this just typical irrational PHP hate? I'm not apologizing for it, I'm just talking from experience here.
- V-2 12y agoBut there's a culture thing, too. In case of many programming languages, there's certain culture built around them - with its own hierarchy of values, its own idiosyncrasies, approach and so on. Like the tendency of overengineering and devotion to design patterns in Java world. Now, the idea behind PHP is to "just get it working". This philosophy is perfectly summed up by PHP's inventor, Lerdorf: "I'm not a real programmer. I throw together things until it works then I move on. The real programmers will say 'Yeah it works but you're leaking memory everywhere. Perhaps we should fix that.' I’ll just restart Apache every 10 requests. " Of course the qoute may be tongue-in-cheek, but I'd say the mindset is real. (I've written software in C#, Java and PHP)
- dreamfactory2 12y agoso PHP culture is lean basically?
- vdaniuk 12y agoAmassing debt (either technical or financial) is not a part of any lean methodology.
- dreamfactory2 12y agoso what is the concierge mvp if not specifically taking on debt to get something out there and validated?
- EugeneOZ 12y agoIt's just your idea, it's not "idea behind PHP". Almost all of my PHP code is covered by tests, for example - it's far from "just works". And PHP is very far from ugly initial creature of Lerdorf.
- V-2 12y agoAnswering in the same spirit: it's just your code... :)
- metaphorm 12y agoyeah, you're right that its pretty easy to discern who's legit. its just more work getting to them in the first place.
- baggachipz 12y agoThat I can certainly concur with. It's a sea of crap, for sure. In my mind, it makes the good ones all the more valuable.
- mbesto 12y agoYou're getting down-voted because people probably disagree. (don't worry I threw you a bone...but for the future, pls don't ask why you're getting downvoted) Anyway, IMHO the signal:noise ratio is MUCH better in Rails. Are there bad Rails people out there? Absolutely, but to the OP's point, there is a much large proportion of Rails developers who take their job seriously as a professional than those who do it for small freelancing gigs, for the lulz, etc. Furthermore, many of the issues that you have to teach traditional PHP developers, are "solved problems" by those in other languages/frameworks (Laravel/Symfony are good examples of where those problems are solved). > Any respectable PHP developer nowadays uses a decent framework, and there are many. It's pretty easy to discern who's legit and who's not by whether or not they use/understand these frameworks. This is exactly the OP's point. It's not that "any respectable PHP developer" doesn't exist, it's that weeding through all of the shitty ones to find them is much harder than people who specialize in other technologies.
- cpayne624 12y agoThe chutzpah of telling someone what not to ask.
- sanderjd 12y agoIt was merely a reminder of this portion of the site guidelines[0]: "Resist complaining about being downmodded. It never does any good, and it makes boring reading." Guidelines are important for online communities and sometimes worth explicitly reminding people of. Personally, I think asking "why am I being downvoted" is better than just complaining, because sometimes it elicits a useful response. It would also be nice if the guidelines were more clear on whether downvotes should be used for disagreement or more like "this comment was made in bad faith". [0]: https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- dscrd 12y ago> Any respectable PHP developer nowadays uses a decent framework, and there are many. "There are many" equals "almost all are bad".
- krapp 12y agoNot necessarily, because there's no objective way to define 'bad' here. The existence of different frameworks allows for a competitive environment where new ideas can be tested or old paradigms moved away from, and different programming styles or needs can be catered to. If you're working with a language community for which there is only one canonically accepted framework that someone decided was 'the best', well, you're just kind of stuck with that. Granted, since pretty much anyone can hack together a basic framework in PHP (I have one that will never see the light of day) most of them are likely to be pretty bad. But it also stands to reason that most of the ones that get used aren't, because there are always alternatives.
- debaserab2 12y agoIt's a problem, but it's the very reason the language is as popular as it is. I started out as the total amateur copy and pasting terrible code to bring ideas that I had to life. I didn't care about code quality or security vulnerability. Having a broken app was, to me at that time, better than having no app at all. Now it's nearly 10 years later and at some point I crossed over into being a professional. Now things like code quality and security matter. When I started out, it didn't. Also on a side note nowadays search results almost always result in Stack Overflow answers - and while those aren't always quality answers either, they are far better than the random blog links you used to get.
- mcfunley 12y agoHonestly PHP could improve matters a lot by just removing the community comments on php.net.
- McGlockenshire 12y agoThey recently (within the past two years or so) added voting features and are actively removing harmful, obsolete, or otherwise unworthy comments.
- dsp1234 12y agoWhile at a PHP conference last year, which is the first I'd ever been to, someone did a presentation on abstract machines. At the end, there was a long applause, with many people commenting that the presenter was a genius for understanding these advanced topics. I was dumbfounded since these are topics which even a minimal CS education would cover.
- spacecowboy_lon 12y agoThat divide exists in all programming languages - good devlopers can move from the clueless side to the profesionsal
- metaphorm 12y agoyes, it does, but it is more pronounced and more problematic in PHP. the only other language I've ever developed in that had a similar problem was Java, mostly because there are many undergrad CS programs that teach primarily in Java so sifting through the clueless CompSci undergrads asking for homework help got kinda tedious. Most recently I've been developing in Python with a light touch of Go on the side (for some of our more specialized services that require first class concurrency). The communities of both Python and Go are much more professional and helpful (to me anyway) on average than what I experienced from the PHP community. This is anecdotal of course, but I think a lot of other developers have had similar experiences.
- Malic 12y agoThere was a time where computers was available only to "the priesthood of computing." You had to be in a special group in a very big company (or military research setting). Because no one else understood these so-called electronic-brains, few could question you for anything involving The Computer. I think PHP makes some developers frown because it represents an entry point for what they may consider the riffraff of developers. "Anyone can code now - if only a little!" <insert snobbish sniff here> So developers chase off to increasingly intimidating technologies and languages not necessarily because they have SO much more to offer but because the culture represents a return to The Priesthood of days of yore. A few centuries ago, "Don't know Latin? Get out!" and nowadays "Don't know Erlang? Get out!"
- metaphorm 12y agoI disagree with you here. You're discussing a different issue. There is not that much more difficulty in learning computing with any other modern programming language. This isn't about snobbishness or elitism. Its just about the real practical problems that exist with PHP but do not exist (or do, but to a lesser extent) with other modern languages. PHP is somewhat easier to deploy due to the elegance of mod_php and the Apache based LAMP stack. That's one of the things that has driven the proliferation of PHP. Mostly we're just dealing with history and inertia though. PHP offered a streamlined, relatively modern way to program web applications several years before good solutions became widely available in different languages. PHP is almost like a framework in itself, with built in HTML templating, database integration, and HTTP libraries. The builtins in PHP absolutely suck compared to alternatives (including more sophisticated versions of these same things implemented in PHP in frameworks) but that's besides the point. Its possible to build stuff even with shitty tools. The problem is that PHP has a large segment of its community that suffers from something that is almost like the inverse of elitism. Its a kind of willful ignorance or embrace of amateurism. A culture of mediocrity, basically. This is not a good thing for anyone. There are historical reasons behind it in PHP and they are vexing and difficult to overcome, but really they should be overcome, for the good of the future of the web.