6 ms·
I think PHP's main problem on websites like these is that it's too mainstream of a language. It's like asking someone who's an avid fan of world cinema about th
by ticks 15y ago
I think PHP's main problem on websites like these is that it's too mainstream of a language. It's like asking someone who's an avid fan of world cinema about the latest Michael Bay film.
I'm not that interested in programming, so I think it's a great language. All those years back when first learning to use it, I remember going through a book and being so happy that it did practically everything itself.
- zaphar 15y agoYour second statements communicates to me that you like it because it's a toy language. It may be useful for just getting something small done and getting started but for someone who looks at programming as an enjoyable craft php loses it's shine. Especially once you've been exposed to other languages that highlight how much better it could be.
- EGreg 15y agoI actually disagree to some extent. I know, it's PHP. But it can do some pretty amazing things if you think in terms of files. If you're coming from a C background, it's actually quite nice. For example, you can use include ( ) in so many ways, autoload classes, write getters/setters and override anything, implement views, etc. Everything "just runs", or can be compiled into fast code with HipHop (or cached with APC). OK, to be fair, I would say that PHP with a framework that takes advantage of it can be very cool. I can't exactly share our codebase, but you can see the open source version from 2 years ago : http://phponpie.com http://phponpie.com to aprpeciate some of the "beauty" of PHP And it can be extremely expressive and powerful. Sure, it can't do everything that Node.js can do, but for serving requests it can be awesome. It isolates every script in its own memory space, so you never have to worry about anything! The one thing I do not like about PHP is that it's married to the outdated thread-based webserver model, while the new boys on the block (NGinX, Node.js and the new Apache) all use event-based programming. Don't downvote just because I said PHP can be cool. Look at our framework at least, before voting :)
- zaphar 15y agoActually I upvoted you. Just because I dislike PHP doesn't mean someone else can't like it.
- esrauch 15y agoFacebook uses a lot of PHP and seems to do fine, just because a language allows you to write horrible code doesn't necessarily mean it can't be used to write good code. PHP obviously has a lot of warts, but I think the bigger problem is that it gives you just enough rope to hang yourself.
- Darmani 15y agoThere are two kinds of programmers at Facebook: The ones who curse PHP every work day, and the ones who don't use it. "This language really sucks." -- paraphrased, intro to PHP on Facebook's internal Wiki
- esrauch 15y agoI wouldn't be surprised if it happened more than usual with PHP, but in my experience programmers always curse the language/framework/api that they use heavily. You always learn the seams and hit issues with the design if you work with something for long enough.
- zaphar 15y agoYep, It's a phenomenon frequently called "using in anger". The interesting thing about php is you don't have to use it very long before you use it in anger. Most of the time you can tell if someone is well versed in a language if they use it in anger. With PHP all you can tell is they've used it.
- prodigal_erik 15y agoIs that was "use in anger" means? I had assumed it came from "fire a shot in anger", meaning serious use rather than practice or ceremony. It's true that most software makes me either angry or sad, but PHP (where even "==" is wrong after Perl had gotten it right) was a singularly memorable peek into Special Hell.
- IgorPartola 15y agoNope! I love me some Python, JavaScript, C, and even ActionScrip, Java and Pascal. Blaming the tools is bad form unless you can prove they are bad, which can be done with PHP.
- handzhiev 15y agoWhat is the definition of "something small"? Millions of users and companies use PHP based software for various business needs, from small to big. Yes, the language has a lot of flaws, but I disagree that you can't create useful and rather "big" software with it. And it's easier compared to other languages. If it solves people problems, why not?
- zaphar 15y agoNothing I said was meant to indicate you couldn't use php for something big. All I meant to indicate was that once you've seen what other languages have to offer and have started to look on programming as a craft php starts to lose it's shine.
- nocipher 15y agoI spend a lot of my time writing Python, especially for Django powered sites, and writing client side javascript. Periodically, I'll get stuck maintaining large projects written entirely in PHP and miss the nice features from other languages. Javascript has its bug-a-boos, but with its dynamic design and jQuery, its easy to write clean code. Python is also much cleaner and usually just works. On the other hand, all of my programming horror stories and terrible hacks have been written in PHP. I remember having to use an older version of PHP that failed to support closures when it was needed in some legacy code. The code was passing functions as arguments, but because the functions were not bound in the local scope, there were issues with namespace collisions. I had to resort to global variables for a situation that should not have needed it because rewriting everything properly required a non-trivial refactoring that I did not have the time to complete. Granted, this has been addressed in more recent versions of PHP, but there are always old versions floating around where "gotcha's" like this show up. More recently, I ran into an issue porting PHP 5 code across different linux distributions where, for some strange reason, libraries on the include path failed to be found. Debugging something like that is ridiculously frustrating. Problems like this are bound to show up with any technology you use frequently, but my work involves using many languages and technologies and, of them, PHP is the only one that leads to these sorts of problems with such regularity.
- thurn 15y agoDoesn't the fact that Python won the "Favorite Language" poll kind of show that it's not just about hating on mainstream languages? Python's pretty mainstream, I'd say... definitely top 10.
- msluyter 15y agoBut HN isn't a representative sample, so our poll doesn't accurately reflect the overall popularity of a language.
- kamaal 15y agoPython has a very low barrier to entry and that is bad. Very bad, trust me. That sort of a market generally gets swarmed by low price developers very quickly.
- jcheng 15y ago> I'm not that interested in programming, so I think it's a great language I think this sums up everyone I've met who actually likes PHP. They like that they are able to get stuff done, and look no further. It is just frustrating to those of us who know that PHP is one of the most poorly designed (and I use that word loosely) languages ever to be successful. If you can get over the local maximum of getting stuff done in PHP, the grass actually IS greener in Python and Ruby land.
- mst 15y agoRasmus basically said he doesn't care if he copies and pastes stuff around so long as it gives him the end result he wanted. The language reflects that. And, actually, it's NOT necessarily a bad thing to have a language oriented around people who don't actually care that much about programming when it's also oriented around people who want to ship something useful to an end user (who might care if it's insecure but doesn't care if the code's pretty). I've encountered a number of orgs now that have PHP on the front speaking XMLRPC or JSONRPC or whatever to a backend daemon (either Java or Perl in the cases I've seen) and since that means messiness on the front end shouldn't be able to violate business rules, it works out really well.
- jeltz 15y agoPHP is not much good for security though for beginner developers. It does not help with XSS, CSRF, or SQL injection prevention. If anything it does actually encourage them if you do not know of the risks.
- georgefox 15y agoI feel like this is more of a role for a framework built on top of PHP than for a language like PHP itself. PHP itself is pretty low-level. How would you suggest providing better protection against these? In the past, of course, PHP did have magic_quotes, which was a misguided attempt at mitigating SQL injections. This has since been removed, and there's been a big push in the direction of using prepared statements/parameterized queries through a library like PDO, which I think was introduced in PHP 5.
- billybob 15y agoI agree there is some language snobbery. However, I moved from PHP to Ruby and love it. My two biggest gripes with PHP: 1) No standard package management system. I worked with some VERY smart developers at a PHP-only company, but nearly every part of their complex system was coded in-house, from the ORM up. Rubyists practically never code things that are available as well-tested gems, saving tons of effort, debugging, and training new people. That's a huge boost to Getting Things Done. 2) Little discoverability. If you can't remember the string method you want, you'll have to Google - and make sure you notice the order of the arguments. In Ruby, you can do `'foo'.methods.sort` and see all the methods available on strings. Since it's OO, you don't have to pass in the string itself, so there are fewer arguments to know in the first place.
- jamesgeck0 15y agoI thought PEAR was PHP's standard package manager?