It wouldn't be trolling if you actually explained why you thought PHP was not appropriate for this project. The developers already covered the reasons why they are using it in the FAQ - http://www.gnu.org/software/social/faq.html :
Why are you using PHP? Ruby/Python/Perl/A GUI in Visual Basic would be better!
Better for who? Look at the success of phpBB and Wordpress -- PHP is pretty much everywhere, and while maybe your favourite language is more elegant, PHP is largely ubiquitous.
But that aside, saying "its everywhere" is in my opinion the /poorest/ argument in favor of anything technical.
MySQL has their slogan as being the "Most popular Open Source database", which, by comparison to PostgreSQL's slogan "The most advanced Open Source database", awful.
If you're popular AND good, thats fine, but being popular alone is a poor metric.
I'm not making the argument from a technical perspective, but from a cultural one. Culturally, this stuff works best if there are bazillions of instances out there, not thirty.
PHP offers that, and I don't think I can name anything else that I can say that about.
Facebook has too much legacy code to switch from PHP to anything sane, but I don't doubt many of them would like to. The Quora guys promptly adopted Python after leaving.
Maybe some people will stick their noses up at working on PHP. I'm not super excited by those people, and I think its a shame when talented developers get embittered into language wars, but I can certainly understand why they happen.
I tell everyone working on GNU social that we're going it for the betterment of the world, not their own personal situation. That means running it everywhere.
PHP doesn't do enough to encourage building maintainable software. The vast majority of code I've seen "in the wild" grows from a thin, simple layer of logic & SQL queries into an insatiable maintenance monster.
Note: I'm holding back a lot of language nerd rage, so I'm keeping this post very short.
So use a framework. Php's problem is that it doesn't come with an structure. The plus is that you can use any framework that works for you. I use http://www.yiiframework.com and it has shaved 70% off my dev time.
I was the main pusher for PHP in the early stages of GNU social development -- out of interest, what would you use instead, given our goal of having this installed on as many web servers as possible and as cheaply and easily as possible?
The "its easy to get it on a webhost" is one I'll give you, its not really even arguable. Sadly this is one of those annoying chicken-egg issues I try rally against.
Lots of webhosts are really sub-par, and tend to rip off their clients, and much of these same webhosts refuse to give root access, which is a pre-requisite for most of the non-PHP languages.
Sure, PHP will work on these platforms just fine, but as usual, the more people who produce PHP products, the more people out there who'll start dirty nasty webhosts trying to capitalize on that fact, perpetuating the bad hosting situation.
As for personal preferences from a technical standpoint, I'd have hoped somebody like GNU would have had the intuition to develop something well developed like a long-lived FCGI servlet application, which seems to be easy to do in every language except PHP.
PHP seems optimized for the developer use-case where "Something that runs perpetually and handles each request through the system chain" is "Too hard, and Too confusing", and instead they tailor to the 'Every request reloads everything from scratch' style of programming, which is in my personal opinion a design flaw.
Context: I was a PHP programmer for a while. These days I tend to become progressively more and more ashamed of that fact ( except in the obvious case here where I use it to bash it =) ). As a result, I don't frankly care what you use, I like Perl myself these days, but go ahead, use Python or Ruby, both increasingly more common. Heck, use C++ or Java for all I care, there are many decent systems, libraries and web frameworks in those languages ( that is, compared to the pathetic PEAR/PECL + Several dozen frameworks which each and every one of reinvent every wheel twice ), just use one, as long as its NOT PHP.
Yes it is trolling, so please stop it.
If this thread gets started on each and every post that is somehow related to PHP it doesn't add to the discussion.
Go write the same thing in Ruby or Erlang or whatever if you can't stand the idea of software being written in PHP, or shut up.
There's no imagination here. It's just blindly following the leader, just like the legions of Linux desktops that have used a Win95 start menu for the past 15 years.
I apologize if this comes across as unduly harsh, but it's mostly that I'm disappointed with the waste of talent. If the GNU Social team can build a working product, the people behind it are obviously capable of good things -- so why are they just making more of the same?
I don't think the criticism was for prettiness, but just for aping existing social network look, feel and functionality.
Which the FAQ says up-front is one of their aims:
By default, we think it'll ship with a plugin to offer functionality that looks like the current popular social network sites, but plugins for other free software applications are expected.[1]
For my 2c, Diaspora looks even more like Facebook in most of the UI design details.
I actually don't know if that's going to be an important factor in determining if either platform becomes popular, though. Creating a decentralised social networking service will be difficult. Doing it while also reinventing social networking's user experience is an order of magnitude more difficult, although if they succeed then that's a compelling reason for people to migrate.
Open source has used "Embrace, Extend, E-surviveafteroriginalislongdead" for a long time. We're still in step one here. There's a lot of basic infrastructure to be replicated/created before opportunities for Extending will really present themselves.
You're right, there's little imagination going on there. It looks a lot like Facebook.
Right now, there are over 500 million users of Facebook, and approximately 250 thousand users of GNU social or a service based on GNU social and StatusNet code. Convincing those users to move to decentralized social networking, whether its with GNU social, Appleseed, Diaspora, etc is going to be a tough job no matter what, and we should do everything we can to make that easy for people.
One of the biggest problems with Facebook is that its ever changing UI causes people to leak their private information all over the place. I intend for that to not be the case with GNU social, but as we support themes out of the box, I do expect there will be some inconsistency.
Finally, we have a design contest right now -- http://twitter.com/timberners_lee/status/19860898949 -- for new themes and styles for GNU social. If you have some radical ideas, please share them with us and help us making decentralized social networking better for everyone.
I don't think the average non-techie user is going to get very far past:
You will need PHP5 (including the OpenID, gd and curl libraries) plus MySQL 5 or later. Apache 2 or later, or lighttpd are supported as web servers.
I guess the project is still in the very early stages, so it's probably a bit unfair to criticise them for that at the moment. Hopefully someone (or many people) will offer hosted versions.
Hopefully someone (or many people) will offer hosted versions.
I think this is the thing. I also like the idea of techy types (like us) being able to host our own servers for small groups of our less techy friends.
We're going to make this Wordpress-easy to install, but also have a vast array of reputable service providers offering both gratis and low-cost domain+social+identity packages.
I guess the trick will be to get people to view their social network as more like email (decentralised, everyone has accounts with different providers, etc) and less like facebook/twitter/etc (centralised). At the moment people see the network and the host all mashed together as one thing (I go to facebook.com for facebook). Maybe there are some parallels here with the early days of AOL...
It's not directly comparable to Diaspora or GNU Social, but to me it's much more interesting than either: a distributed, secure framework for building an ecosystem of HTTP-based social networking services, rather than simply a free software "clone" of Facebook.
37 comments
[ 1.6 ms ] story [ 120 ms ] threadWhy are you using PHP? Ruby/Python/Perl/A GUI in Visual Basic would be better!
Better for who? Look at the success of phpBB and Wordpress -- PHP is pretty much everywhere, and while maybe your favourite language is more elegant, PHP is largely ubiquitous.
But that aside, saying "its everywhere" is in my opinion the /poorest/ argument in favor of anything technical.
MySQL has their slogan as being the "Most popular Open Source database", which, by comparison to PostgreSQL's slogan "The most advanced Open Source database", awful.
If you're popular AND good, thats fine, but being popular alone is a poor metric.
PHP offers that, and I don't think I can name anything else that I can say that about.
On vaguely which subject, is there some documentation of the protocols anywhere? I had a quick look on the site and couldn't see anything like that.
Easy to deploy, but hard to find skilled hackers who will voluntarily work in it.
I tell everyone working on GNU social that we're going it for the betterment of the world, not their own personal situation. That means running it everywhere.
Look at the number of horrific security holes in phpBB and Wordpress. Every other release or so fixes some new flaw.
Note: I'm holding back a lot of language nerd rage, so I'm keeping this post very short.
Lots of webhosts are really sub-par, and tend to rip off their clients, and much of these same webhosts refuse to give root access, which is a pre-requisite for most of the non-PHP languages.
Sure, PHP will work on these platforms just fine, but as usual, the more people who produce PHP products, the more people out there who'll start dirty nasty webhosts trying to capitalize on that fact, perpetuating the bad hosting situation.
As for personal preferences from a technical standpoint, I'd have hoped somebody like GNU would have had the intuition to develop something well developed like a long-lived FCGI servlet application, which seems to be easy to do in every language except PHP.
PHP seems optimized for the developer use-case where "Something that runs perpetually and handles each request through the system chain" is "Too hard, and Too confusing", and instead they tailor to the 'Every request reloads everything from scratch' style of programming, which is in my personal opinion a design flaw.
Context: I was a PHP programmer for a while. These days I tend to become progressively more and more ashamed of that fact ( except in the obvious case here where I use it to bash it =) ). As a result, I don't frankly care what you use, I like Perl myself these days, but go ahead, use Python or Ruby, both increasingly more common. Heck, use C++ or Java for all I care, there are many decent systems, libraries and web frameworks in those languages ( that is, compared to the pathetic PEAR/PECL + Several dozen frameworks which each and every one of reinvent every wheel twice ), just use one, as long as its NOT PHP.
Go write the same thing in Ruby or Erlang or whatever if you can't stand the idea of software being written in PHP, or shut up.
There's no imagination here. It's just blindly following the leader, just like the legions of Linux desktops that have used a Win95 start menu for the past 15 years.
I apologize if this comes across as unduly harsh, but it's mostly that I'm disappointed with the waste of talent. If the GNU Social team can build a working product, the people behind it are obviously capable of good things -- so why are they just making more of the same?
(As a side note, the GNU profile example using Sunny in Philadelphia crew is > funny than the Diaspora profile e.g. :)
Which the FAQ says up-front is one of their aims: By default, we think it'll ship with a plugin to offer functionality that looks like the current popular social network sites, but plugins for other free software applications are expected.[1]
For my 2c, Diaspora looks even more like Facebook in most of the UI design details.
I actually don't know if that's going to be an important factor in determining if either platform becomes popular, though. Creating a decentralised social networking service will be difficult. Doing it while also reinventing social networking's user experience is an order of magnitude more difficult, although if they succeed then that's a compelling reason for people to migrate.
[1] http://www.gnu.org/software/social/faq.html
You're right, there's little imagination going on there. It looks a lot like Facebook.
Right now, there are over 500 million users of Facebook, and approximately 250 thousand users of GNU social or a service based on GNU social and StatusNet code. Convincing those users to move to decentralized social networking, whether its with GNU social, Appleseed, Diaspora, etc is going to be a tough job no matter what, and we should do everything we can to make that easy for people.
One of the biggest problems with Facebook is that its ever changing UI causes people to leak their private information all over the place. I intend for that to not be the case with GNU social, but as we support themes out of the box, I do expect there will be some inconsistency.
Finally, we have a design contest right now -- http://twitter.com/timberners_lee/status/19860898949 -- for new themes and styles for GNU social. If you have some radical ideas, please share them with us and help us making decentralized social networking better for everyone.
Good to see you guys are taking a pragmatic approach with regard to your audience.
My concern isn't even so much with the look or theme of the system as its social model and the UI for exposing that model. I've written about this somewhat: http://interuserface.net/2010/05/ http://interuserface.net/2010/02/buzz-facebook-and-social-fl... and there's an excellent if long-winded slide deck by Paul Adams here that makes a great case: http://www.slideshare.net/padday/the-real-life-social-networ...
I really hope you guys do succeed, and I hope you succeed through innovation!
You will need PHP5 (including the OpenID, gd and curl libraries) plus MySQL 5 or later. Apache 2 or later, or lighttpd are supported as web servers.
I guess the project is still in the very early stages, so it's probably a bit unfair to criticise them for that at the moment. Hopefully someone (or many people) will offer hosted versions.
I think this is the thing. I also like the idea of techy types (like us) being able to host our own servers for small groups of our less techy friends.
We're going to make this Wordpress-easy to install, but also have a vast array of reputable service providers offering both gratis and low-cost domain+social+identity packages.
I guess the trick will be to get people to view their social network as more like email (decentralised, everyone has accounts with different providers, etc) and less like facebook/twitter/etc (centralised). At the moment people see the network and the host all mashed together as one thing (I go to facebook.com for facebook). Maybe there are some parallels here with the early days of AOL...
http://5ttt.org/
It's not directly comparable to Diaspora or GNU Social, but to me it's much more interesting than either: a distributed, secure framework for building an ecosystem of HTTP-based social networking services, rather than simply a free software "clone" of Facebook.