News for hackers. Stuff that matters.
Re:Google Compute Engine available for everyone, App Engine ... by iguana on Wednesday May 15, 2013 @04:48PM (#5714778)
PHP is popular because it's incredibly easy to get started for someone used to doing things with HTML. An HTML page can be renamed to .php, and that is a valid PHP page. For someone trying to go from HTML/CSS to the server side, PHP presents the path of least resistance.

When using PHP, a lot of the basic data structure transforms are implemented in the core language. You can integrate simple server side functionality into a static HTML page in just a few minutes, and it will work on 99%+ of hosting providers, and requires no fees and no tools.

For pedantic hackers like us, sure, it's garbage, but for the average person that just wants to get things done, it is pure gold.

Also, WordPress, while the biggest POS in almost every possible way, has a vast community of users, designers, plugin makers, and a marketplace for various extensions and themes.

Google just opened up a huge chunk of the web app / CMS market.

Re:Google Compute Engine available for everyone, App Engine ... by umsm on Wednesday May 15, 2013 @04:58PM (#5714855)
> For pedantic hackers like us, sure, it's garbage, but for the average person that just wants to get things done, it is pure gold.

I disagree. The developers of Wordpress are not "the average person". There are too many production sites that run on PHP to say it's garbage.

Re:Google Compute Engine available for everyone, App Engine ... by TheHydroImpulse on Wednesday May 15, 2013 @05:12PM (#5714951)
Wordpress is garbage. Just because there are a lot of production sites built or using Wordpress doesn't mean it's good. Wordpress is popular because of it's community, use of PHP which allows you to host it on many providers, and a ton of themes and plugins. Wordpress is probably the worst spaghetti code I've ever seen (we'll, close).
Re:Google Compute Engine available for everyone, App Engine ... by coldtea on Thursday May 16, 2013 @06:01AM (#5717709)
>Wordpress is garbage. Just because there are a lot of production sites built or using Wordpress doesn't mean it's good.

No, it does mean it's good. You're comparing opinion (everybody has one) with actual hard real world results (tons of major sites with million hits running on Wordpress and around 15% of the web too).

Re:Google Compute Engine available for everyone, App Engine ... by umsm on Wednesday May 15, 2013 @05:27PM (#5715081)
Most of the arguments are biased opinions and can't really be defended. But... if you don't like wordpress, why not assess projects such as Symfony2 or Drupal?
Re:Google Compute Engine available for everyone, App Engine ... by jtreminio on Wednesday May 15, 2013 @05:35PM (#5715126)
Because quality projects like symphony Symfony 2 does not fit into his works view of php.
Re:Google Compute Engine available for everyone, App Engine ... by astrodust on Wednesday May 15, 2013 @11:44PM (#5716783)
If Symfony is so amazing, why does nobody use it?

I mean nobody in the almost literal sense. Stack Overflow serves as a rough barometer of popularity and either Symfony users have no questions, use another support platform, or they don't make up a significant population.

The #1 problem with the PHP community is it's complete anarchy and filled with people that should not be developing web apps, or at least should not be developing the way they're going about it.

Maybe Symfony could fix that, but there's a lot of work to be done here.

Re:Google Compute Engine available for everyone, App Engine ... by jtreminio on Wednesday May 15, 2013 @11:53PM (#5716816)
You'd be very incorrect if you thought no one was using Symfony2.

I am specifically talking about Symfony2, by the way.

A great number of frameworks and CMSs are using Symfony2 components. Two popular ones are the http-kernel and http-foundation components.

Drupal is integrating several Symfony2 components.

Composer, the PHP package manager that has taken the community by storm, is using Symfony components.

eZ publish is integrating several Symfony2 components.

Joomla! adopted YAML, using a Symfony2 component.

Stating that Symfony2 is not widely used simply tells me you're not keeping up with the PHP community - which would be fine if you're not a PHP developer, but makes your statement not trustworthy.

edit: PHPUnit, the defacto standard PHP unit testing framework, also uses Symfony2's YAML component.

I can go on.

Re:Google Compute Engine available for everyone, App Engine ... by astrodust on Thursday May 16, 2013 @10:30AM (#5718779)
It's like Symfony2 is a gourmet restaurant in a town that finds McDonald's too expensive.

Nobody uses Drupal, or eZ Publish or Joomla. They just don't. There's good reasons for this, notably these are some really obnoxious platforms to build for, but that aside their impact on the PHP world at large is inconsequential.

PHP, by and large, consists of people slamming together applications from the ground up the same way they built them in the 1990s. It shouldn't be this way, and people should fix it through education and outreach, but I really don't see that happening on the scale that's required.

Also, if you think even a quarter of the PHP devs out there even know what a unit testing framework is, you're more of an optimist than I am.

Re:Google Compute Engine available for everyone, App Engine ... by TheHydroImpulse on Wednesday May 15, 2013 @06:11PM (#5715343)
Maybe. But the fact is PHP as a language is messy, albeit some frameworks have made it better (i.e Laravel). I'm assessing Wordpress because of it's praise by many people when it's not well built (have you looked at the codebase?). Just look at the author and history of PHP, the author hates computer science, and it was derived from Perl as a templating engine, not something I'd hold as quality. Nonetheless frameworks have made it better but I still feel the platform is broken and often attributed with newcomers to web development.
Re:Google Compute Engine available for everyone, App Engine ... by krapp on Wednesday May 15, 2013 @08:31PM (#5716070)
I think you would be hard pressed to find anyone praise Wordpress code if they've had to work with it, apart from actual contributors to the WP core of course. Wordpress is popular almost entirely because it's easy to deploy and has a vast ecosystem of plugins and themes which mostly just work.

You could probably build a competing CMS in, say Laravel 4, replace the plugin system with Composer packages or something similar, use Twig and PDO out of the box, and have a much more elegant and modern system that probably almost no one would use, unless the user experience was just as brainless as it is with Wordpress.

Which is also one reason why, I think, despite all the arguments in their favor, static site generators (which do get mentioned now and then as an alternative to WP) still have a while to go before they're ready for mainstream use. It's not enough that it's well coded, it has to be easy too, and easy wins out over pretty every time.

Re:Google Compute Engine available for everyone, App Engine ... by pestaa on Thursday May 16, 2013 @03:14AM (#5717346)
Using WordPress is not as brainless as you point it out to be. All software needs to be learned, and from my experience let me tell you WordPress is not always learnt well.

WordPress is being pushed only because the majority of web developers can tinker with PHP only.

Re:Google Compute Engine available for everyone, App Engine ... by krapp on Thursday May 16, 2013 @11:10AM (#5718998)
WordPress is being pushed only because the majority of web developers can tinker with PHP only.

I think you're forgetting that most of the people who use Wordpress aren't web developers at all, and most of the 'web developers' who use Wordpress probably can't code much, either, because they won't need to. The ease of the Wordpress install is something they advertise. Once you ever have to touch the code, yes, it's a nightmare, even if you're inured to the horrors of php code. Most 'web development' jobs with Wordpress involve the install, setting up themes, maybe editing the css and installing plugins (because even that is still more arcane than some non-technical bloggers and people want to deal with.)

The "low bar for entry" for PHP comes up as an epithet now and again, but if you're trying to increase the adoption of your particular language, having an application the plebs can run isn't necessarily a bad thing. Does anything similar exist in the Python or Ruby worlds yet, for which someone wouldn't be expected to know how to use a terminal, or handle git?

It is, I think, almost entirely down to being less of a hassle than anything else out there, and especially less of a hassle than anything not written in PHP. Call it laziness if you will, and I wouldn't entirely disagree with you.

Re:Google Compute Engine available for everyone, App Engine ... by astrodust on Thursday May 16, 2013 @10:39AM (#5718821)
PHP was built by a guy who didn't even know he was building a programming language. He's quite honest about this.

PHP is like Perl blended with C and a whole lot of confusion.

Frameworks have made it "better" like ketchup improves the quality of prison food, but it's still terrible on the whole.

Re:Google Compute Engine available for everyone, App Engine ... by astrodust on Wednesday May 15, 2013 @11:40PM (#5716773)
Because Symfony2 and Drupal are just different flavors of garbage, and Drupal is significantly less pleasant to work with than WordPress, which is about as pleasant to work with as an angry bear.
Re:Google Compute Engine available for everyone, App Engine ... by pestaa on Wednesday May 15, 2013 @05:00PM (#5714871)
You put it very lightly. It is not pedantry or elitist hackers, it is computer science. A sane engineer with a little bit of experience would not start off with PHP to build anything at all.
Re:Google Compute Engine available for everyone, App Engine ... by vidarh on Wednesday May 15, 2013 @08:11PM (#5715985)
Engineering is not computer science.

A sane engineer don't pick technology based on what is most theoretically pure, but based on what can deliver on the requirements on time and on budget.

If you are building a simple CRUD style application, for example, there's likely nothing in your technical requirements that precludes PHP in any way. Then the question turns to ease of deployment and maintenance, operational costs, cost and availability of developer time, and there PHP tends to score quite well, not least because there's a huge pool of relatively skilled engineers that know it.

I personally prefer Ruby and don't like writing PHP at all, but I'd be a horrible engineer if I wrote it off in situations, where, e.g., it is hard to hire Ruby developers at a reasonable price, or there's a lot of existing PHP knowledge within a team that is already in place.

Re:Google Compute Engine available for everyone, App Engine ... by iguana on Wednesday May 15, 2013 @09:22PM (#5716281)
Cost and availability of developer time is much more of a factor in platform choice than a lot of people think, especially engineers who don't have to worry about the business end.

If you can find RoR developers, they are not cheap. If you're building a v1 product on a limited budget, and don't want to spend 80 hours per week writing it yourself, PHP is an excellent choice.

Having to read the code with a clothespin on your nose is a small price to pay.

Re:Google Compute Engine available for everyone, App Engine ... by astrodust on Wednesday May 15, 2013 @11:48PM (#5716795)
For the question "I want to build a web application", PHP is not the answer. It is the worst in nearly every category you cite.

Are there automated deployment tools written in PHP for PHP applications? I mean ones that can be taken seriously.

What optimization options do you have for PHP? What latitude do you have with hosting? If you're not Facebook, writing your own PHP engine, you're going to be stuck with one of a few that are generally crappy.

Cost and developer time are non-factors since the time you'd need to learn PHP is probably higher than other languages that make more sense and aren't filled with anachronisms you will spend half your time working around.

You can train someone up in Ruby on Rails in two weeks. Django or Node would take about double that time, but only because the platforms aren't by default as feature complete and the tooling will vary from project to project.

Re:Google Compute Engine available for everyone, App Engine ... by vidarh on Thursday May 16, 2013 @11:26AM (#5719104)
> It is the worst in nearly every category you cite.

If you think that, you don't have much real world experience.

> Are there automated deployment tools written in PHP for PHP applications? I mean ones that can be taken seriously.

Why do you need a deployment tool written in PHP for PHP applications? Are you serious? It's a ridiculous proposition to care that much about the language the deployment system is written in. What I care about is what benefits it brings me.

Where I am now we have our own deployment system, btw. - we operate a private multi-tenant cloud specifically tuned to the type of workloads our customers have, at a cost ~1/3 of what it'd cost us to host our current infrastructure somewhere like EC2 with equivalent redundancy and performance. That is including the development and maintenance costs for our in-house tools. As part of that we have a rapidly improving set of deployment tools. Handling deployment of PHP was pretty much the simplest part of that system.

> What optimization options do you have for PHP? What latitude do you have with hosting?

Are you for real? I love Ruby. I'm working on a Ruby compiler as a hobby. But scaling PHP is trivial compared to RoR. I don't need optimization options for PHP - one of our clients processes restaurant bookings worth 50 million pounds a year via a setup that consumes ~30% of CPU resources on two frontend servers with a combined leasing cost of ~1000 GBP/year. The vast majority of their cost (their total yearly cost for their internet presence is about 3 orders of magnitude above the cost of the servers hosting the PHP code) for this system is marketing, support, power and bandwidth in that order. Cost of the frontends that PHP run on comes at the very bottom - it's a rounding error. If we needed more frontend capacity? We'd add another couple servers like that, and it's still be <1% of their cost.

What costs us money on the hardware side is database servers and network infrastructure. Web frontends for typical simple web apps are cheap. Sure, there are exceptions (but as much as I love Ruby, RoR is certainly not going to save you scalability grief in the cases where scaling PHP becomes hard or costly).

> If you're not Facebook, writing your own PHP engine, you're going to be stuck with one of a few that are generally crappy.

If you're not Facebook, there's no compelling reason to write your PHP engine as PHP is fast enough for pretty much anything you throw at it until you're in a situation where you have thousands of servers, where shaving a few percent off here and there starts creating large savings.

A vanishingly small number of companies ever reach that scale - optimising for that in advance is lunacy, and most "cleaner" languages does not provide a better starting point in that respect. Ruby, for example, is far more costly to scale.

> Cost and developer time are non-factors since the time you'd need to learn PHP is probably higher than other languages that make more sense and aren't filled with anachronisms you will spend half your time working around.

Spoken as someone who doesn't know the market. I have a steady supply of qualified PHP staff. In fact, we have recruiters hounding us every day with cheap candidates that know PHP. Ruby? Rarely, if ever. Those who know Ruby well enough have an easy time finding better paid jobs.

> You can train someone up in Ruby on Rails in two weeks

Bullshit. You can get a senior developers that is already expensive to relative beginner level in that amount of time. Or you can hire a PHP developer that is already skilled at ~60% of the cost.

I've seen "RoR developers" with two weeks experience, and what they produce is not pretty, and certainly does not result in a good ROI compared to more pragmatic solutions. I'm all for using Ruby if/when you have a good team of Ruby developers, but you then also need to realize that you have an expensive team. It makes sense when your team is highly experienced and rapid turnaround is more important than keeping the cost down, or if your personal satisfaction is more important to you than the cost - both can be perfectly valid reasons. If I were to start a new company now, I'd pick Ruby myself. But I would do it because it is what I would prefer to work with, not out of any illusion it's currently a cheap choice.

Re:Google Compute Engine available for everyone, App Engine ... by iguana on Thursday May 16, 2013 @01:37AM (#5717105)
Software snobbery.

"Cost and developer time are non-factors"

Bro, do you even startup?

Re:Google Compute Engine available for everyone, App Engine ... by pestaa on Thursday May 16, 2013 @03:09AM (#5717335)
Don't quote and cut half of his sentence off. You tried to change the meaning substantially.

His point was that learning PHP properly with all the shenanigans takes at least as much as time as learning a well thought out environment.

Re:Google Compute Engine available for everyone, App Engine ... by iguana on Thursday May 16, 2013 @06:26AM (#5717776)
His definition of properly is nothing but an ever moving goal post of software snobbery.
Re:Google Compute Engine available for everyone, App Engine ... by astrodust on Thursday May 16, 2013 @10:34AM (#5718798)
"Unit tests? SQL escaping? What are you? A snob?"

It's not snobbery. It's called doing your job like a professional. This is harder in PHP than it is in other languages.

The only language more cantankerous and difficult than PHP is C. Learning PHP properly is hard. There are hundreds of little things you will have to be very careful about because they are easy to get wrong and the cost of failure can be enormous.

If you can't see this, you're basically a PHP snob. You're holding your pet language to a different standard than others.

Re:Google Compute Engine available for everyone, App Engine ... by vidarh on Thursday May 16, 2013 @11:39AM (#5719180)
What you miss is that I can source a dozen qualified PHP candidates in ten minutes just by searching my inbox for e-mails from recruiters I haven't yet deleted, that already know these things, and that charges substantially less than equivalently skilled candidates in a lot of the languages we both might agree are more elegant, if I'd even find those candidates - contrary to PHP, I don't have recruiters beating down my door to place candidates that are skilled in Ruby, and when I've helped friends find candidates for Ruby work, it's always far harder, and they end up paying a lot.

I detest PHP from a language writers standpoint. Programming language design is a hobby of mine, and I am a real snob about programming languages from a personal preference point of view, and PHP certainly does not measure up.

But I don't let my pet ideas about what a programming language should be like stop me from doing my job, which is to ensure we have an environment and team where we can get projects in on time and on budget with a staff that is both skilled enough and cost effective enough to keep us profitable. Is it possible to do this with Ruby? Sure. But the dynamics are very different, and the potential customers tend to be quite different.

I've written web services in a number of languages, including C and C++, and been responsible for systems in a mix of PHP and Perl that handled ~$50 million worth of card payments and invoicing, and I've developed Ruby based systems and hybrid PHP - Ruby - C++ stacks. When I can justify picking Ruby, I do, because I love the language. But I refuse to pick Ruby just because I personally like it and it has a higher coolness factor in the face of economics where it doesn't make sense, such as when there's installed bases or teams that are already skilled at PHP. It'd be irresponsible.

Re:Google Compute Engine available for everyone, App Engine ... by iguana on Thursday May 16, 2013 @04:51PM (#5721055)
Where are you getting the notion that unit tests and parameterized SQL are difficult or not commonly used in PHP?

You don't have to use those things, but they are there if you want them, just like they are in other languages. Neither Python nor Ruby enforce unit test or parameterized SQL requirements.

I don't like the language itself, but I do like the myriad benefits it brings. The only pet language I hold to a different standard is Perl.

Re:Google Compute Engine available for everyone, App Engine ... by Joeri on Thursday May 16, 2013 @03:44AM (#5717419)
The framework benchmarks posted repeatedly here have shown PHP can hold its own performance-wise against ruby and python. PHP is not slow. PHP's per request model also makes it easy to build state-free front-end servers which you need in order to scale by throwing more hardware at the problem.

I agree that if you already know another platform there's no reason to switch to PHP, but similarly i've not seen much reason to switch away from PHP, aside from personal preference in language syntax.

Re:Google Compute Engine available for everyone, App Engine ... by regularfry on Thursday May 16, 2013 @06:24AM (#5717771)
> PHP is not slow.

Contentious. The VM itself is, but there are many functions implemented in C. Whether it'll be fast or slow for your application is not necessarily immediately obvious.

Re:Google Compute Engine available for everyone, App Engine ... by eli on Wednesday May 15, 2013 @08:22PM (#5716022)
So the apps I wrote in PHP are scientifically worse than the ones I wrote in Ruby? I had no idea!
Re:Google Compute Engine available for everyone, App Engine ... by toomuchtodo on Wednesday May 15, 2013 @06:27PM (#5715465)
Facebook. Wikipedia. Yahoo.
Re:Google Compute Engine available for everyone, App Engine ... by astrodust on Wednesday May 15, 2013 @11:50PM (#5716807)
Facebook could write their stuff in COBOL and it wouldn't matter to anyone else. Remember MySpace? It was written in ColdFusion, so I guess ColdFusion is a great idea!

Wikipedia's Mediawiki software is awful, and serves as a great example of how not to build an application. It makes WordPress look like a precision engineered Swiss watch.

Yahoo uses PHP because, like Facebook, they could make FORTRAN work in production if they wanted to.

Re:Google Compute Engine available for everyone, App Engine ... by Legion on Wednesday May 15, 2013 @07:06PM (#5715706)
pestaa's comment needs to be amended. It should read: "A sane engineer with a little bit of experience would not start off with PHP to build anything at all in 2013."

Facebook's former CTO has said that the only reason Facebook is still on PHP still today is legacy. It wouldn't be written in PHP if it were started today.

PHP once was the right tool for the job, but those years have passed. We have many better options now.

Re:Google Compute Engine available for everyone, App Engine ... by vidarh on Thursday May 16, 2013 @11:43AM (#5719198)
We have many technically cleaner solutions, but in the real world other factors, such as ability to quickly hire sufficient number of reasonably priced developers, often means a lot more than technical purity.

A sane engineer considers the full pictures before picking a solution rather than pick their pet languages just because it's nice and clean.

Re:Google Compute Engine available for everyone, App Engine ... by eropple on Wednesday May 15, 2013 @06:39PM (#5715535)
Were either of the first two started by "a sane engineer with a bit of experience"?

Inertia is powerful.

Re:Google Compute Engine available for everyone, App Engine ... by toomuchtodo on Wednesday May 15, 2013 @06:48PM (#5715588)
Perfect is the enemy of good enough. Doesn't matter what your site is coded in if it isn't revenue positive/have funding/etc.
Re:Google Compute Engine available for everyone, App Engine ... by eropple on Wednesday May 15, 2013 @10:28PM (#5716552)
I'm not sure where you got that from my post.

Though, to be honest, I don't think that using Play (today) or Rails/Django (yesterday) is sufficiently less productive to merit the technical debt you almost certainly will incur starting with a PHP stack. (And I am an ex-PHP person, to the point of hacking around in PHP core...that's a few months I'd love to have back.)

Re:Google Compute Engine available for everyone, App Engine ... by camus on Wednesday May 15, 2013 @05:14PM (#5714975)
Because no engineer out there use php to develop anything ? right ? those folks at dailymotion , (the only youtube real competitor that yahoo wanted to purchase ), they are such insane engineers using php... i bet you are better than them hey , what did you build that is famous and used by millions of people around the world ?