Drupal or Custom CMS for Niche Social Network?

Yes the scrapping of the original and the subsequent ‘clean slate’ was the catalyst for the better ‘next generation’. Should we have planned to re-roll it, we would have the experience from the first rolled version and knowledge and experience gained and create something better. Ultimately we made the choice from the following:

[LIST]
[]Our team of developers could not make advancements as fast as a highly/quality driven larger team at Symphony would do. With technology advancing on the web at an seemingly ever increasing rate (especially compared to the mid 90’s), we would not be able to continue to advance the feature set as fast as the customer demand.
[
]Symphony had a good community which worked as a valuable resource for our re-development and excellent documentation; thus reducing training costs.
[]Symphony (at the time) had the best quality code, and its’ implementation was the best of the class
[
]We could evaluate new team hires based on a ‘more level’ playing field by asking to see what they have accomplished using Symphony and to demonstrate active design practices in the framework. At this position, we knew Symphony and could better evaluate potential hires based on what we knew we needed.
[]Our developers could better relate to each other because they had to respect the ‘Way of Symphony’. While some developers created ‘better ways’ this common terminology and limitations of the framework helped them focus on similar ways rather than their more disparate personal styles of coding.
[
]We looked at other larger projects built in Symphony and were satisfied enough that it would handle our requirements.
[/LIST]Decisions could have been made and supported for a custom roll too, but we were very happy with our decision and it proved to be robust enough to handle our highest volume of concurrency without poor performance.

Regards,
Steve

Thanks, others in this tread have great info too, so you created a good one that at least for the next little while others can learn from :slight_smile:

Steve

I have to agree that there has been a lot of useful information passed along in this thread. The process has been very enlightening. Thanks to everyone for the insights!

If you read that article you see that HipHop was written in C++
Facebook still uses PHP. They have created numerous frameworks including thrift http://thrift.apache.org/ Which should explain why they write things for so many languages. Their core system however is not written in PHP.

wonshikee is giving some good advise there!

Choose, what seems like a logical starting point and just jump in. There is no such thing as a perfect platform/framework - they all have pluses and minus - and in the end - the skill level of the developer can easily turn an asset into a liability and vice versa.

And I would like to add something to that. If you implement logs from the beginning you should be able to make good choices in the future about which parts of your system should be improved (the parts that get a lot of traffic for example or scripts that start to take longer to execute then others once the amount of users increases) And ofcourse you can get a lot of info from your apache/mysql logs aswell.

Drupal’s ability to scale may not be that dependable as customs when there are lots of logged in users.

To transform PHP into C++, doesn’t matter what HipHop itself is written in, that is irrelevent. Facebook started with PHP and grew and grew thus evolved around PHP. Whether Facebook still uses PHP at its core or not is also irrelevent. Stuff evolves, when nothing changes it means it is dead.

Oh I am sure there are servers out there that work better then apache :smiley:

I think I should have explained myself better. I meant that I don’t think that apache would be what is limiting the load capacity of your php/mysql application.
Ofcourse in the end you can stretch anything by using better CPU, RAM and whatnot. However, getting better hardware is costly so in my opinion it may be more efficient to use languages/database software or webservers that are more efficient in their use of resources.

I completely agree that at one point you need to invest in clusters though. No language is going to change that. But when you start to use clusters I think PHP is no longer the most efficient way to go. Not for your core system anyways.

HipHop programmatically transforms PHP source code into highly optimized C++ and then uses g++ to compile it to machine code.

Why do you think facebook wants to do that?

PHP is not fast enough for facebook:

HipHop was created by Facebook to save resources on its servers.

Facebook has written many frameworks that do similar things aswell as frameworks (like thrift) that allow them to work seemlessly between different languages. The only reason they do this is because PHP does not serve their needs.

I think you are misunderstanding me. I’m not saying anything about PHP being fast enough or anything of that nature. So I don’t know why you are putting words in my mouth. As I said, everything evolves. Facebook started with PHP and evolved around it. They did not start with everything they have now, nor did it come about over night. Thats all I said, nothing else.

I don’t know why you are so hung up on it.

Also, they created Hiphop so they could keep using PHP. =p

If they were just going to write everything in C++, why wouldn’t they do that from the start? Hiphop isn’t meant to convert PHP source to C++ source so they can write C++. It does it so they can still write PHP, but get the benefits of a truly compiled language.

The big problem with truly compiled languages, which a lot of people forget when they get into this argument, is often times you have to replace the whole site in order to make the smallest tweaks (because generally have one or several large executables or libraries which your code was compiled into). This can be difficult if you aren’t already working with a cluster where you can roll it out onto one and let it propagate without causing downtime. With PHP, if I need to make a tweak in just one file, I can and nobody would notice except for that fraction of a second moment when the file is actually being overwritten.

Compiled websites aren’t always the answer either. :wink:

Hell no. compiled websites suck. But something like facebook is not just a website. There’s a gazillion systems behind facebook that manage the files and the databases and the services, the apis and god knows whatnot. facebook wrote stuff like hiphop and thrift to be able to talk between these systems. the facebook “website” still runs php. hence their urls: “http://www.facebook.com/profile.php?id=5460830860376” for example.

We have quite a few clients running social networking type sites based on the Drupal platform. I would roll with Drupal - the community is outstanding and the extensibility of the platform is amazing. Love it!

Good luck!