9 ms·
Ask HN: Why no love for PHP?
I'm curious as to why I rarely see PHP articles on Hacker News.
Is it because PHP isn't considered a "serious" language, and is mostly the realm of "designers" and "script kiddies"?
Do the developers who visit this site all code in Ruby, Erlang or Objective-C? Are PHP developers a minority in this community?
I play with Ruby & Objective-C on my own time, but at work it's an all PHP shop. We primarily use the Zend Framework, and honestly it's pretty good (good enough for IBM...). With the recently announced build tools, and some of the classes we've developed on top of ZF, I can develop just as quickly in PHP as I can with RoR.
PHP is also fairly popular with successful startups. Larger sites like Digg, Flickr and Facebook are using at least some PHP to scale to fairly massive traffic; even Wufoo (a site which I feel represents what so many of us here are trying to achieve in essence) is written in PHP.
I will agree that PHP is a bit of a mess (backslashes for namespaces?), and that the internet is full of the wrong way to use it; however, there certainly are talented developers writing quality software in PHP. Is there no interest in that here?
Apologies if this is a rehash of a tired topic; I poked around for a few minutes and didn't see anything relevant/recent.
- ErrantX 17y agoholds hand up I use PHP. Indeed I use PHP for most of my commercial web stuff (i.e. stuff I make at work & most of my startup ideas). Mostly I'm a Python fan but for websites PHP is just 100% easier for me because I have a framework I know well (KohanaPHP) and years worth of snippets/experience to use in prototying sites. I bet I can code a simple site faster in PHP than Python. As to why PHP isnt discussed much on here: well I will hazard a lot of people take the same approach. We love exciting stuff in Python, C and Ruby (well, not ao much ruby for me :P) but PHP is our grab-it-and-run language. If someone knocks on the door and says "make me XYZ website in 2 days" we will probably pull out the PHP. Nothing exciting and new is really happening with PHP - it is doing what it is supposed to do: help us produce dynamic websites fairly quickly with little fuss. So we can get on with the real job of hacking in Python (or Ruby or C or..... etc.) :D I could be wrong :)
- RossM 17y agoI agree with this statement. I've reached a stage where I could code a PHP-based website much quicker that in other languages. Admittedly it's what I started programming on (and has taught me a few bad things, but certainly kept my interest in programming). I don't agree that there's nothing interesting going on though. I'd like to see some more innovative extensions (which might be because they are coded in C) but PHP Classes (http://phpclasses.org http://phpclasses.org) is constantly producing PHP libraries and snippets for common tasks
- breck 17y agoGod I hate phpclasses.org The code is great, but the site is awful, just awful. Mirrors? What is this 1999? How much bandwidth can downloading ZIPPED php scripts use? Oh yeah, and there's registration required and big, ugly, flashing banner ads. If someone knows of a site with the same contents, please, please let me know :)
- ErrantX 17y agoseconded: Im sure there is LOADS of great stuff on there. But I just cant face finding it :)
- RossM 17y agoI can agree with that, the site does look like it's still in the 90s. It's a shame there isn't anything much similar (searching GitHub can turn up some gems though). It's an idea I toyed with once.
- zeantsoi 17y agoHow about an Ask HN poll on language preference... anyone?
- coglethorpe 17y agoPHP has a few downsides, everything from poor naming conventions to security vulnerabilities. People around these parts are always looking for the cleanest solutions to their problems and the latest methods available. PHP's relative age and problems make it neither. That said, I coded my first startup in PHP. It's dead simple to make a dynamic web page with PHP, but it's also dead simple to create a huge mess. In that sense, PHP reminds me of C. It's pretty simple to write an app in C, but there are 1,000 pitfalls. Just like with C, there are definitely talented coders out there who can make PHP behave correctly. Sadly, they are a minority. Many of them move on to other languages and frameworks. I've since moved on to Ruby (on Rails) as well as Python. Both languages offer simplicity and power. Rails, in spite of being the Dane Cook of frameworks, makes it extremely easy to create a web application.
- j2d2 17y agoWell said. I would recommend Django to people who prefer Python to Ruby.
- rbanffy 17y agoDjango is Rails, without the toxic company. That's why I am unsure about Zed Shaw at EuroDjangoCon. I love to have smart and capable people around, but Zed still has to prove he can play well with others.
- JustAGeek 17y agoI agree with more or less with what you said but a downside of PHP is not security vulnerabilities, that's really just a myth. I can't remember the last vulnerability which could be directly attributed to PHP as a language. Sure, there are plenty of apps containing holes but those are not caused by PHP but by not coding correctly, eg not checking input making SQL injections possible etc. Which might confirm what you said, it's easy to create a huge mess with PHP. But then, it's easy to create a huge mess in any other language, too. It's probably even easier with Ruby due to its highly dynamic nature. Languages are like tools, you have to know how to use it but you can't blame the tool if somebody misuses it. Edit: Fixed typo.
- swolchok 17y agoIt reminds me of Perl. Perl literally gave me a headache last time I coded in it. (Incidentally, this is why I'm wary of Ruby as well.) Besides, I am totally satisfied with Python.
- apgwoz 17y agoI don't see too much similarity between Perl and PHP. Perl has a the syntax of a loose cannon. PHP's syntax is very Java like. * PHP doesn't have special variables that change things about the language like, the starting index of an array. * Out of the box, Perl requires you to import modules to get functionality that PHP has with a simple function call. * Perl has support for classes, but you feel like it's a hack every time you write one. * PHP has classes, that give you the notion that they are part of the language (which they are of course, so are Perl's) Until recently, I hadn't programmed in Perl in years, but I find that coming back to it again has given me a new outlook on it. You might wanna take another look. I still much prefer Python though.
- davidw 17y agoPerl is also way faster than PHP, and has had nice things like closures since... well, for a long time now. Not that I'd want to use Perl these days, but language-wise, it's a bit more advanced than PHP is.
- dbul 17y agoway faster -- sounds subjective to me. What references say this?
- berntb 17y ago>>* Perl has support for classes, but you feel like it's a hack every time you write one. Check out Moose for Perl. Then name an OO system in production that is better. (-: If you can give an example, I'll immediately buy a book on it. :-) Edit: Syntax.
- apgwoz 17y ago
- badger7 17y agoPHP is like a mobile phone that's a year old - it's perfectly good, but ain't what the cool kids are playing with.
- josefresco 17y agoExcept every year the 'cool' phones come and go, and PHP is still around, kick ass and taking names.
- TallGuyShort 17y agoPHP offers little more than convenience. I use it myself because it's so easy to integrate with PHP and MySQL, and it's easy. I think it's a decent platform for a basic web-site, but further than that it doesn't offer anything truly unique or powerful.
- JeremyChase 17y agoI have often thought the same thing as PHP is a fantastic web development language, and it is very well developed. The documentation is very good, and as you mentioned there are useful code examples right in the documentation. The learning curve for PHP is very low, and there is library support for pretty much anything you want to do. Oh, and it is dead simple to deploy. I think RoR is one large reason why PHP is looked down now. More specifically, there isn't a leading PHP framework that has a proven following or as well executed marketing plan. There are a lot of PHP frameworks, but none that capture the attention of the masses like RoR. The other argument I hear is that the language is annoying to program in. This just doesn't not compute in my brain as PHP code looks perfectly normal to me. I think that some people just prefer certain syntax, and I have yet to come up with a reason that I understand. As you have probably guessed I have been a PHP fan for years, but I recently started seriously using Ruby/Rails for some side projects. There are two reasons I am playing with this instead of cakePHP/KohanaPHP/Symfony/Zend 1. There is a lot of literature about Ruby/RoR 2. I found myself resisting Ruby/RoR, and I don't want to be the old guy that won't learn new technology
- ErrantX 17y agoWHat would you recommend for getting into Ruby? I tried it once but their site is horrible and the "Hello World" example is really babyish and idiotic - and it put me off :) I've never "got" RoR. Python makes sense to me as a killer all-purpose language just as PHP makes sense to me as a niche for-the-web language (I cant get these people that insist on running PHP standalone :o). But I never quite figured the rails niche.
- JeremyChase 17y agoErrantX I would highly recommend learning Ruby before trying RoR. The first time I tried to learn RoR I didn't know any Ruby. I had limited success because I had to battle the framework and the language. You don't need to know everything about Ruby to start on RoR, but you should be able to write some basic programs. There are a number of online resources for Ruby: Unofficial and old, but has a lot of good info: http://www.math.umd.edu/~dcarrera/ruby/0.3/ http://www.math.umd.edu/~dcarrera/ruby/0.3/ http://www.whytheluckystiff.net/ruby/pickaxe/ http://www.whytheluckystiff.net/ruby/pickaxe/ http://www.ruby-doc.org/docs/UsersGuide/rg/ http://www.ruby-doc.org/docs/UsersGuide/rg/ http://qa.poignantguide.net/index.html http://qa.poignantguide.net/index.html For RoR guides online, I didn't find anything that I really liked. I ended up with Sitepoint's Simply Rails 2.0 and followed it. I didn't find any free guides/books that really helped me much. Once you get a basic understanding of MVC you can learn a lot of from http://railscasts.com http://railscasts.com though. PS: Sorry to everyone for the RoR/Ruby hijack EDIT: Wrote a sentence misleadingly, fixed it.
- ironkeith 17y agoIn the past I've purposefully avoided submitting articles to Hacker News if they were about PHP. I kind of just assumed that they would be downvoted just for being PHP. I wonder if I'm alone in that? Edit: fixed a typo.
- Jem 17y agoYou can't downvote articles (only flag them)?
- dbul 17y agoIf these articles are thought provoking, they could be written about PASCAL and reasonable HN members would upvote it. Someone can be a language snob, but also a computer scientist; computer scientists keep an open mind.
- mixmax 17y agoIf the submissions were quality I would definitely upvote them. I use PHP as well.
- Jem 17y agoI'd love to see more PHP on HN (I am here to learn, primarily, and PHP is what I do), but the problem seems to lie in there being a lack of quality PHP articles. Maybe I'm being unfair, but just lately I've been getting the impression that the more someone knows, the less likely they are to share.
- ironkeith 17y agoI follow the Zend Developer Zone (http://devzone.zend.com/public/view http://devzone.zend.com/public/view) and find that an interesting article pops up every now and then. I've added a few developer blogs to my feed reader from articles that I discovered there.
- garethr 17y agoOne of the things that I think is relevant to startups hiring is that (warning experience mixed with opinion ahead) there are lots and lots of PHP developers of wildly varying quality. This makes the initial stages of recruitment time consuming. By looking for people with skills or interest in Ruby, Python or Scala (or whatever is hot that month) you'll probably see less interest but, on average, the quality and enthusiasm will probably be greater. Which means it takes less time to hire (well, maybe), as well as getting the better people (hopefully).
- ionfish 17y agoThis issue was discussed a while back in the context of hiring Haskell programmers. http://news.ycombinator.com/item?id=468493 http://news.ycombinator.com/item?id=468493
- Zak 17y agoPG made similar arguments in his 2004 essay "The Python Paradox" - http://www.paulgraham.com/pypar.html http://www.paulgraham.com/pypar.html I'm inclined to agree. If you know how to advertise within a language community then using a lesser-known language will make it easier to find good programmers. This is probably even true for the short-term contract gigs often posted to freelance sites since there won't be hundreds of low-quality responses to sort through.
- unfug 17y agoI've been using PHP at work and on personal projects for years. It has a very low "barrier for entry", which is both good and bad. It's easy/cheap to hire entry level programmers to write simple PHP, but it's all too easy to let them jump into big projects too soon and write something that turns into a huge mess. Well written PHP code can be just as easy to read as Python/Ruby/etc., but PHP makes it far too easy to write something that is a horrible mess. At work we are still mostly a PHP shop, but anything I write on my own now gets done in Python. PHP's complete lack of a coherent function naming scheme is enough reason alone to get away from it.
- tannerburson 17y agoPHP doesn't get mentioned, because it isn't interesting. I've done a lot of PHP work, and still do. But there's not a lot of NEW going on in the PHP world. Their latest earth shattering move is namespaces. The only interesting thing about PHP's namespace support is how awful it is. Almost all of the cool concurrency, natural language, efficiency, functional programming, and what-have-you research and development, is going on outside of the PHP community. Those are topics that HN collectively finds interesting, so PHP gets left out. That said, just because PHP itself isn't particularly interesting, doesn't mean people don't build interesting things using it, and doesn't mean you shouldn't use it.
- indiejade 17y agothere's not a lot of NEW going on in the PHP world There was an article on slashdot yesterday about PHP6. Here's one from IBM: http://www.ibm.com/developerworks/opensource/library/os-php-future/ http://www.ibm.com/developerworks/opensource/library/os-php-... Not a whole lot of new, but something. I think PHP gets ignored sometimes because it is an older language, not the new and trendy thing.
- nuclear_eclipse 17y ago> * I think PHP gets ignored sometimes because it is an older language...* For what it's worth, Python is four years older than PHP, and it still gets a good amount of attention on HN. Python just has more of the "inspiring language" atmosphere, while PHP has more of the "corporate, mundane" feel. And I'm an avid open source developer working on multiple PHP and Python projects...
- indiejade 17y agoAll righty; I'll give you that. Try this logic: maybe because Yahoo! is all about PHP and Google is all about Python and Yahoo! is older than Google. :)
- unexpected 17y agoPeople who are really good at their jobs obsess about their tools- artists obsess over their paint, carpenters obsess over their power tools, cooks obsess over their knives. PHP is like buying a chef's knife at Wal-Mart. You can create a 5 star dish with it, it cuts perfectly fine, but it doesn't inspire the same passion that a Shun knife does. Most restaurants in fact, don't use fancy-knives, they use just regular knives and it works out just fine. But, to draw the analogy back to programming, we're not regular restaurants. We're wannabe "rock-star" chefs- coding and "startup-ing" isn't just a job, it's part of our core ethos, so we obsess over all the tools we use, the text editor, the monitor, even the chair- because it makes the experience all that much better. Most people do this about things they seriously care about. Runners debate intricacies of running shoes or the perfect in race meal. I've had debates with weight-lifters about weight-lifting gloves. Go over to a different forum, and you will hear arguments about the perfect size of a suit lapel. The "Everyman" tools can always accomplish 100% of the job, but provide 90% of the experience. We spend an inordinate amount of time trying to get that last 10% out. Is it probably unnecessary? Yeah. But people really bond over passions, and in arguing/debating that last 10%, you can really connect with people, which is why sites like Hacker News are fun and addictive.
- dean 17y agoThat's fine if you're starting a project or a business from scratch. Choose whatever tools make you happy. But if you work for someone else, chances are you will be stuck using the language they use. And if you are professional, you do it. And you still try to do a good job. Like Tiger Woods switching to Nike clubs.
- noodle 17y agoprofessional and passionate are not necessarily (and, for most people, not usually) the same things. you can use a php framework professionally and be passionate about rails.
- agotterer 17y agoI think your analogy is great. While I agree that "most" tools will accomplish the same goal or job (Walmart knife vs Shun). I don't agree that the tool determines passion or commitment. I'm a PHP developer (just started learning python!). I work full time for a big website that is coded in PHP. I have a startup that is written in PHP. If you had a conversation about PHP with me, I'm super passionate about what I have accomplished and will accomplish in the future. I think the real problem is that the passion pool gets diluted... Let me explain... PHP has an extremely low barrier to entry. Its a loose language (lets not argue about this right now) that someone can get their feet wet relatively quick. These developers never really learn the true power of PHP, they aren't passionate about their projects and they dont contribute back to the community. They dilute the pool of truly passionate PHP developers. Owning a Shun knife just lets everyone around you know that you are "serious" cook. But hell, I like to cook too.
- jlsonline 17y agoBack in the day, PHP was exciting. It was free, it was powerful, it was easy to learn. Everyone coming out of college knew C anyway and it has a similar structure. You could suddenly give your circa 1999 web pages a page date in REAL TIME and you could respond to forms without nasty cgi-bin. Eureka! Nobody gets excited about it anymore because it solved the problem it was aiming to solve a long, long time ago.
- begemot 17y agoWhen you know you could save pages of code with it, being without proper higher-order functions is beyond tedious.
- jxcole 17y agoI use PHP every day at work. I find that the best way to program PHP is to pretend it is java and ignore (almost) all the other features. Many of the features of the language are very powerful and because they are so powerful, PHP has a tendency not to scale well. If there are 200+ ways to do one thing you can guarantee that looking at someone else's code will always be an adventure. You CAN write good code in PHP, but it is flexible enough that bad programmers will be able to take it and do much worse things than they could with, say, java. Call me old hat but I think type safety is an important aspect of scalable projects. If I could add one feature to PHP it would be enforced type safety.
- mdasen 17y agoThere are lots of reasons. * PHP attracts idiots. Partly that's because you don't need to know anything to make simple PHP. So, in the large pool of PHP programmers, there are a ton of idiots. And those idiots produce a lot of verbose code that gets used because it does something. Ruby, Python, Perl, etc. all put up a larger barrier because they don't just come with a session handler or whatnot built in. And that weeds out more of the idiots. Doesn't really have to do with PHP the language, but it is nonetheless significant. * PHP has a bad type system that leads to errors. There, I said it. The fact that 0 == "string1" and 0 == "string2", but "string1" != "string2" is unacceptably bad. * PHP has no namespaces. Yeah, they're planned for 5.3, but the implementation is just ugly. This makes it more likely to botch something in a larger project. * Which leads me to my next point: include/require. In PHP, it's decently common to say require('some_file.php'); and just grab a huge hunk of code. Eww! That code could be doing anything - adding in variables, executing code, etc. While it's true that other languages can do that as well, that's generally not the case - other languages are more in favor of importing objects or functions. Partly it's a language thing, partly it's a culture thing. * Magic! So, how does mysql_query() know which database to connect to when you don't pass in a database connection? I mean, I'm guessing they're either using a global or if it's in C a static external variable, but PHP is littered with this crap. It's not necessarily bad, but it's magical. * Functions! So, PHP now has cool object oriented stuff. Still, it doesn't use it at all. I don't object to strlen($var) that much when compared to $var->len(), but there are other cases where it's just crappy. So, PHP has a function strpos() which will return the position of the first occurrence of a substring within a string. Quick! In what order do you put the variables? In this case, it's string to be searched, search string. What about preg_match()? Oh, there you put it in the reverse order! And really, when writing functions, there is no "proper" order, but if you're doing $string.preg_match('/^apple$/'), there's a clear order. * Looking more at preg_match(). What does it return? It doesn't return a match, it returns a count of the matches it finds. If you want the matches, you need to pass in a variable that it will take a pointer to as an argument so that it can place the matches in there. Bleh! How would this be done in a nice OO-way? $var->preg_match('/^apple$/').count() would get you the count and otherwise you get the match returned. Easy in a way that requires less memorization of weirdness and doesn't feel so wrong. And crappy things like that are done throughout PHP where things are weird, but end up * php.ini. Terrible idea. PHP allows you to change very important things install-wide, directory-wide, app-wide, ick-wide! It's not just magic quotes. It's more that you never quite know what you're deploying to in a bad way. Finally, it's that PHP is an older-style language without the cool things that newer languages can do. PHP isn't bad per-se, but it isn't good either. The biggest thing it has going for it is that it's easy on shared hosting. With VPSs coming down in price to the point that they don't represent a huge premium over shared hosting, that's become less of an attraction. PHP is fine, but there's a decent amount to get annoyed with when creating a larger application.
- cardmagic 17y agoPHP is not a language that was designed to be a language. It was originally a set of scripts that slowly morphed into a kind-of language. Because of that, PHP lacks a lot of the language features (threads, namespaces, proper OO design from the ground up) that "serious" languages all have. Ruby was buit to be the best language Matz could think of. Erlang was built to be a great language for programming telecoms. None of the "serious" languages morphed out of some CGI scripts. As I already mentioned, PHP is not an OO language. It is a language that has OO as a feature, but the core API is not OO. This creates a very awkward mix of OO and procedural code. One of the most embarrassing things about PHP comes from its complete lack of naming and ordering conventions. Look at the array functions. http://us.php.net/manual/en/ref.array.php http://us.php.net/manual/en/ref.array.php 47 of these functions start with array_, 25 of them are a mismatch of whole words and partial words that happen to do array functions. The reason PHP documentation is so good is out of necessity. Without fantastic documentation, PHP would be completely unusable due to this staggering oversight.
- KrisJordan 17y agoI abandoned PHP about two years back. 8 months ago, after going to a conference and hearing the folks at Flickr talk, specifically Cal Henderson (http://www.krisjordan.com/2008/09/16/cal-henderson-scalable-web-architectures-common-patterns-and-approaches/ http://www.krisjordan.com/2008/09/16/cal-henderson-scalable-...) I got re-energized to take another stab at making PHP pleasant to work with. The results of my last push evolved into a PHP framework: Recess. (http://www.recessframework.org http://www.recessframework.org) It's got annotations for a declarative, meta-programming style. It's inherently RESTful (and more fine-grained content negotiation is coming soon). The Models/ORM are lazy so that you can chain together queries that evaluate at the last minute. Recess deploys just fine to commodity $5/mo servers and was designed to be lightweight and fast without giving up object-oriented design (a la Code Igniter). What I feel gets lost in the "PHP is terrible" literature is a distinction between PHP as a programming language and PHP as a technology / platform. As a programming language, from an academic perspective, PHP is embarrassing. As a technology/platform it's incredibly well suited for web applications because that's exactly its intention. PHP's shared-nothing execution model, simple deployment, efficiency & performance make it a great technology for authoring web applications. Tooling has gotten much better too with Eclipse's PDT & XDebug. If you're growing tired of PHP and looking for a platform/framework to develop on that is more productive and enjoyable try taking Recess for a spin. For me, at least, it's made PHP fun again: http://www.recessframework.org/ http://www.recessframework.org/
- KevBurnsJr 17y agoEvery language must balance expressivity, performance and utility. I think PHP strikes a good balance, and Recess definitely has the best performance I've seen out of any ActiveRecord ORM in PHP.
- fsniper 17y agoI'm a big fan of PHP for myself. But I've seen enough of PHP script kiddies out there making nearly free (as in beer) websites/webapps. They become a mess in no time. Mostly hacking phpnuke, joomla or some other messy portals. Hacked sites mostly never get any security updates or any kind. But employers having free work done are ok with this scheme so more and more script kiddies emerge. Also there is not much thing going on PHP nowadays. Maybe PHP is at peek for it's purpose - doing web apps easy and quickly.
- JoelMcCracken 17y agoHow is this a question?
- flooha 17y agoI've got nothing against PHP, it's just a matter of preference. There are a lot of fantastic apps built using PHP and I use them on a frequent basis. However, if I build something, it's Ruby all the way. I just find it much cleaner and pleasurable to develop with. Looking at PHP makes my eyes hurt now. The great thing about PHP is that the difficult problems have mostly been worked out. Getting a PHP site up and running and scalable is standard stuff.
- jcapote 17y agoIf you can develop as quickly in PHP as you can with RoR, then you are not using RoR to it's full potential.
- boundlessdreamz 17y agoThat is quite true. Even when using frameworks, PHP code is more verbose. Also PHP has a proliferation of frameworks, so you may come across different frameworks in different projects reducing your efficieny. Since Django and RoR dominate in python and ruby respectively, the issue doesn't arise as much
- breck 17y agoI strongly disagree. Maybe for a few classes of web apps, but if you know the LAMP stack well, you can create any type of web app you want in a flash. RoR locks you down to building conventional CRUD sites.
- knieveltech 17y agoI disagree based solely on the fact that there are multiple fully featured Open Source CMS's currently available that use PHP. No way anyone's coding (for example) a CMS faster than I can download and install a copy of Drupal, Joomla, or Wordpress.
- asnyder 17y agoPersonally, I enjoy working with PHP, but only because I work with a platform/framework on top of it. I would likely steer clear otherwise. While PHP by itself can be a challenge to work with, various frameworks and platforms abstract those idiosyncrasies while providing a significant increase in out of the box features and functionality. For instance, NOLOH (http://www.noloh.com http://www.noloh.com) is one such platform. Others such as Yii and CodeIgniter, while not as robust in certain respects, do a good job of this too. (Full-disclosure: I'm a co-founder of NOLOH)
- JoelPM 17y agoComing from a Java background into a startup that was built using PHP, it's been my experience that PHP is difficult to scale. This is for two reasons: 1) PHP isn't long-lived. Every time a request comes in Apache launches the PHP processor/interpreter and runs through the entire script. This means you don't get a heap that you can use to cache things[0], you don't get the benefit of JIT compilation, and you don't get the benefit of pre-compilation[1]. 2) PHP development always seems to be tied tightly to a database. At some point an extremely high-traffic app will need to scale beyond what a DB (even a sharded DB) can support. To do this you have to think in terms of asynchronous processing, out-of-process updates, aggressive caching, and more. The second point isn't really an issue of PHP, but more an issue of the PHP ecosystem - however, it affects the way I perceive the language itself. Places that use PHP for high traffic sites seem to use it to build the presentation layer, which seems to work for them, but the majority of the work is being done by back-ends written in some other language. [0] Yes, you can use memcache, but it still means, at the very least, a cross-process hop and most likely a cross-network hop. [1] Compiling to bytecode (for Java) is still better than no compilation. Also, you only take the hit of starting the JVM once, not on every request.
- e4m 17y agoPHP doesn't scale? Facebook has > 200 million users. It's written in PHP.
- aaronblohowiak 17y agoThe parent clearly talks about how PHP is used mostly for the presentation layer of that class of applications.
- dugmartin 17y agoInstall an opcode cache and you get the pre-compilation for free. Check out APC, x-cache, etc. http://en.wikipedia.org/wiki/PHP_accelerator http://en.wikipedia.org/wiki/PHP_accelerator
- rbanffy 17y agoPHP was a hack conceived long ago, in a time where there were no complex (as in "more than one page") web applications and little to no demand for them. It has the readability of Perl and the structural elegance of 70's BASIC. Need I say more?
- rbanffy 17y agoIsn't it lovely when people can simply mod you down when they disagree with you instead of trying to debate?
- lincolnq 17y agoYour comment wasn't worth responding to, because it was an obvious troll, designed to incite a strong emotional response from the reader. If you were intentionally trolling, you picked the wrong audience. If not, you should try to support your opinion with more facts and rational arguments.
- rbanffy 17y agoI really thought it was an accurate and concise depiction on the history, limitations and overall characteristics of PHP.
- shaunxcode 17y agophp is my virtual machine. It runs everywhere (and cheaply), Anything is possible with it - it's just really ugly - thus code generation is your friend. This is something I hope to drive home with http://lisphp.googlecode.com http://lisphp.googlecode.com (nearly r5 scheme) and LET (my smalltalk w/ macro expansion) which is used in http://voltron.googlecode.com http://voltron.googlecode.com.
- bcheung 17y agoI work as a full time web developer and am required to use PHP for everything server side. It's one of the worst languages I have ever used but I live in a LAMP world and everyone requires me to use it. I have used Clojure and RoR in the past and really like them but unfortunately I can't use them in reality. I wrote about it in this post on my blog. http://www.codeinnovator.com/uncategorized/lisp-vs-php/ http://www.codeinnovator.com/uncategorized/lisp-vs-php/ You can certainly develop professionally with it. It's just not a whole lot of fun.
- bcheung 17y agoI work as a full time web developer and am required to use PHP for everything server side. It's one of the worst languages I have ever used but I live in a LAMP world and everyone requires me to use it. I have used Clojure and RoR in the past and really like them but unfortunately I can't use them in reality. I wrote about it in this post on my blog. http://www.codeinnovator.com/uncategorized/lisp-vs-php/ http://www.codeinnovator.com/uncategorized/lisp-vs-php/ You can certainly develop professionally with it. It's just not a whole lot of fun.
- breck 17y agoI like to code in other languages more than PHP but for the startup, that's what we use. We use PHP because at the end of the day startups are a job, and you've got to be creating value. I find that PHP gets the (web development) job done better than anything else. Is programming in Ruby or Python more fun? Way more fun! But in the end, all that really matters is what happens when someone points their web browser to a URL. PHP was built for this use case and the whole LAMP stack solves this problem extremely well without needing any additional frameworks on top. Also, as ugly and awkward as the C {}; syntax is, and as much as I hate not having certain features in PHP (i.e. chaining), I think there could be something special about that syntax that has understated benefits as evidenced by the sheer fact that the most widely used languages (C++,C,Java,PHP) all use it. Maybe it's just because that's what everybody knows and not because it's better. I'm not sure.
- octane 17y agoPHP sucks, that much is clear to anyone who's ever used Python or Ruby or whatever. But... 1. It's on every server. 2. It works consistently. 3. There's a lot of it already written. 4. It's easy to find people who know it. 5. Who will work for reasonable pay. #4 and #5 are usually overlooked by people for various reasons which I won't get into here. You really have to go back to the days of Perl SSI, cgi-bin scripts, and stdout shell scripts to really understand why PHP became popular in the first place. The whole inline code paradigm grew directly out of Apache SSI and how much it sucked.
- Kaizyn 17y agoThe truth is that this is Hacker News. No matter how appropriate PHP may be as a tool for many web programming jobs, no one wants to admit to their cool 'Hacker' friends that they use it. Just like you won't hear many people talk about how they're using ASP.Net or C# for their startups. It's not that these are in some way inferior or bad; it's just that you don't get any hacker cred for using or talking about them.
- abyssknight 17y agoI use .NET and VB.NET. I am not ashamed. :) Oh, and ColdFusion too. I'm proud to be a language agnostic developer. Immune from hype, smoke and mirrors. Hehe. Okay, maybe not as immune as I think.
- c00p3r 17y agoJust imagine a fake swiss knife made in china with a hundred of blades and tools, no one is good enough for its task.
- lleger 17y agoMaybe I'm a pariah here, but I like PHP. Especially when I have teachers cramming C++ down my throat. But Ruby is a great language, too. I've had my fair share of fun with both. I think the thing to remember is that as programmers we should be language agnostic. This is because we need to chose the right tool to get the job done. Granted, most times we can just choose our favorite language; however, there are times when, say, PHP would do better than Rails, or vice-versa.
- keefe 17y agoI don't care for PHP because it's interpreted vs compiled, debugging is a pain and it muddles view and application logic! Separation of concerns is one of the key principles of software engineering. Also, library support is much better in Java and it's generally a more mature language. I really want to write my logic separately and unit test it against mock objects and this is harder with PHP. My preferred stack is Java server talking to jquery front end.
- TweedHeads 17y agoPHP is like Basic for web development Everybody knows about it, but nobody talks about it.
- FlorinAndrei 17y agoIt's the MS Windows of programming. Everybody uses it, nobody brags about it.
- tybris 17y agoI used it for years and still regret it.
- BerislavLopac 17y agoPHP is not a programming language. It's just an overblown template engine.
- ninjaa 17y agoFor all its flaws, PHP and Perl are the only web languages that let you build a web app in _whatever_ fashion you want. This extreme flexibility coupled with mature libraries makes web app development ridiculously easy. For a complex application that starts at ground zero I would probably recommend Ruby or Python but really even that decision is 50-50. We've faced this crossroads 3 times in the last couple months and 2/3 we've gone with PHP over Python, and not just cos of familiarity. For any existing app, it's probably already in PHP or something worse like ColdFusion, so migrating it to "good" PHP 5.x is usually the only logical step. That said threading, namespaces, sickening magic and the whole haystack/needle needle/haystack game SUCK. But you can get everything done quick and everything will scale and if you need to change it you know you always can without tearing down a house of cards so ... I for one don't mind it, in fact I quite like PHP and the PHP ecosystem.
- jrockway 17y agoI wrote a long post about this here a few weeks ago: http://news.ycombinator.com/item?id=579387 http://news.ycombinator.com/item?id=579387 Basic ideas -- missing language features, language features that don't work, improper OO, lacking modern abstractions (where's a good ORM?). Read the whole post for details.
- paraschopra 17y agoI guess one of the most strongest reasons why PHP got popular was its default support on shared hosts. You could taste your first real web creating with PHP real quick.
- abyssknight 17y agoPHP is like that kid in school who got everything right but everyone hated. I'll be honest, I love PHP. I love it as much as I love Ruby, Python and any other language. For some reason communities have sort of ganged up on PHP and beat it to a pulp. The funny thing is, PHP, for the most part, outperforms them all in real world memory usage. Of course, that's probably because PHP is a language and Rails, Django and such are frameworks. PHP was built for the web, and as such it does a good job serving up web content. The problem is that uneducated neophyte developers are polluting the tutorial scene and elitist, higher level language developers are shutting them down. Why aren't we helping these people progress? Why are they hitting a glass ceiling of knowledge? I know, I was one of them. I worked at a small PHP shop and the attitude was "make it work, ask questions later". We got the job done. It worked, and the customers didn't notice a thing wrong with it. The problem was that I stopped learning. There was nothing more to learn about PHP. Why? Because it was a language. It's finite. I've seen numerous posts about how horrible PHP is, but really, is it? It's a language. PHP, unlike a framework, is what you make of it. There are no standards, no methodologies, no guidance. That's what PHP needs -- a framework. Just as Ruby and Python after it needed a framework. Not because it makes you a better programmer, but because it allows others to understand, maintain and manage your code. The language you use doesn't make you a better or worse developer, it's how you use it. Tools are tools. Skill are skills. I think the biggest mistake we make is mistaking tools for skill. Some of the greatest programmers I know write ColdFusion and PHP, and some of the worst I know write Ruby and Python (and yes, PHP).
- santacruz 17y agoI earn money with PHP for 8 years now. I just love it. When you in love you don't give a flying f..ck about anything else.