Drupal, Joomla and WordPress benchmark results - wordpress

So there is this benchmark at http://sven.webiny.com/benchmark-webiny-vs-wordpress-vs-drupal-vs-joomla-vs-tomatocms/
Can I really trust it? I mean it came as a surprise to me that Drupal is so much faster than Wordpress and Joomla. I always thought of it as a super heavy CPU devouring monster compared to the aforementioned.

That benchmark is like comparing a train with a plane. Yes, a plane is faster, but that doesn't mean that you should take a plane to commute to work.
A CMS is just a tool, and you need the tool that is most suitable for your project. There is a huge difference between a corporate brochure (5 pages, little interaction, no logged in users), a blog (100 pages, some interaction, some logged in users) and a community platform (10000 pages, lots of interaction, most users logged in). I think every CMS in that benchmark can be the top performer for a specific type of site.

Benchmarking stock installs of these three CMSes is useless. No one uses them without additional modules (which often have major performance implications), and anyone competent is going to set up performance enhancers like caching.
Do note, also, that the CMS that comes out on-top for every benchmark category is the blog author's own project.

Wordpress with a caching plugin would be just as fast.
Put NGINX in front of the webserver, and what CMS you use is immaterial. The site will be much faster.
Put your site's static assets on a CDN, and even better.
WP is easy to work with and expand. Drupal takes a gazillion modules and many queries per page. Both have excellent caching modules.
This is 2011. Not 1999. Frontend "performance" of a website to a visitor has very little to do with the backend. Movable Type would be the fastest of all of these because it writes out plain HTML files, but who wants to use the archaic CGI technology with limited plugins.

I have to say I'm a big fan of Joomla. If you're new to CMS, Joomla has much
less of a learning curve - and despite statements to the contrary - is just as
capable as Drupal for running large/popular sites. But choosing a proper CMS
depends on your experience level and the time you have to spend on the project.
To know more about the differences among your mentioned CMSs refer to
Comparison of Top 3 CMSs: WordPress vs Drupal vs Joomla. There you can get
the detailed info in a simple format.

Related

How can I test Wordpress 4.1 for stability?

How could I test (suggest me the test techniques, or what to test) if the latest version of Wordpress (4.1) is stable for building a company presentation website?
this is more like a kind of assignment, not something real that I have to conduct.
my initial thoughts: the platform is already released, so I would suggest making "domain testing", testing for boundaries and testing for high loads on the system... what do you guys think?
thank you!
For stability testing on the Wordpress you can use some useful tools:
1. WebPageTest
This is one of the most helpful tools available online to help you test the performance of your website. It runs your site from multiple locations around the globe using real browsers and at real consumer connection speeds.
The only disadvantage this site is that you sometime have to wait in queue for other tests to be completed.
http://www.webpagetest.org/
2. Pingdom
Pingdom speed testing is not only free, but also gives you full information about your site’s performance including load time, page size, and a detailed analysis of page. You can also measure how much time it takes to load all the elements on a specific page, you can then use that information to speed up your website.
Other features include testing from multiple locations, performance grade & tips, ability to share the results with your friends, and more.
Apart from all the great features, Pingdom also saves your performance history, so you can review it later and see how things change over time.
http://tools.pingdom.com/fpt/
3. GTMetrix
Another great tool for measuring your site’s performance and fantastic tool to have in your arsenal. This site not only gives you all the useful information you need to develop a faster and more efficient website, but also compresses the images that are slowing down your site for you.
This feature is quite useful, but if you have a ton of images, then you would be better off with Smush.it WordPress plugin.
http://gtmetrix.com/
Also you can use WordPress Split Testing Tools.
If you’re using WordPress, then it’s worth considering a tool designed specifically for the platform. While some of the tools in our last roundup (such as Google Content Experiments and Optimizely) also work with WordPress, here are a few more.
1. AB Press Optimizer
AB Press Optimizer allows you to test variations of page elements such as images and buttons and content, such as headlines and text on a self-hosted WordPress site. To use it, you need the plugin plus the ability to use shortcodes (though you can use PHP if you wish).
You can run and get real time reporting on unlimited experiments with unlimited visitors for the $39 personal license, though you will have to upgrade if you want additional support.
https://abpressoptimizer.com/
2. AB Theme Testing
If you’re running a WordPress site, sometimes you need to get back to design basics and test a couple of themes. That’s where AB Theme Testing is useful. It integrates with Google Analytics so you can see your data in your Analytics account. This plugin costs $19. The developers have used it to tweak their own site, as this case study shows.
https://premium.wpmudev.org/project/ab-theme-testing/
3. Simple Page Tester
Simple Page Tester says it’s an SEO friendly plugin that allows users to setup quick split tests. It works well with caching plugins and is available for free. You’ll need to upgrade to premium to work with custom post types, PHP template tags, Javascript and shortcodes and to get more in-depth analytics.
https://simplepagetester.com/

writing from scratch or using CMS for heavy database use website

we want to build a website that have some forms (including image attachments, info, etc…) online payments, tracking system, and other features that I may add later.
The number of users using the site is estimated to be maybe more than 50,000.
I'm using Wordpress to develop regular websites, but I'm afraid to use it in this project because I don't know how optimized is WordPress for high database usage (and page rendering, bandwidth usage, and …)
My options (those that I know) are:
WordPress
Drupal
Pressflow
Agility CMS
Writing PHP/MySQL code from scratch (or using a framework)
I know it maybe unrelated, but how good is to use ASP.net instead of these options?
Right. If you are most comfortable with PHP (the scripting language behind Wordpress and Drupal), you'll most likely be more comfortable making the step to Drupal. Pressflow is just a fork of Drupal optimized for particular needs (and there are other forks of it -- all of them are really just Drupal and are often the basis for various Drupal distributions).
ASP.NET has a lot of capable options to do this. The most common ones (at least in my world), are Kentico, Umbraco, and DotNetNuke. There are a ton of others.
You'll find lots of capable CMS systems to work with no matter what language you're looking at. Use what you're most comfortable working with.

Developing a newspaper site in Drupal

I need to develop a newspaper site in Drupal, I've already played around with Drupal a little, and I think I know which modules would best suit my purposes. Naturally, one of the modules I'll be needing to use most is Views, but I have a couple of questions:
Because this is a content-intensive site, I was wondering if using 5-6 views on each page to generate node teaser + thumbnail lists would impact performance adversely?
I am a designer with significant front-end development experience. Like I said I've played around with Drupal quite a bit and other than running into a few hurdles which I eventually overcame, for the most part I was able to get it to do what I needed it to. Having said that, does one also need strong programming skills to fully develop a site in Drupal?
Thank you very much for your help!
Jane
Views offers caching and Drupal also has block caching, which should help you improve performance. The SQL that Views generates is never as good as handwritten SQL, but if you make simple Views, the SQL is actually quite good and not a performance problem (unless you have millions of page views).
If you can create the features you need, with modules from Drupal.org, you don't need strong developer skills. But you do need to know some PHP to make a Drupal theme which is what controls the layout of the site. It will also be a great help, in understanding the Drupal theming system, but not a requirement.
First off, check out openpublishapp.com for a Drupal distro that is made for publishers from the ground up, it's pretty hot.
To answer your questions:
1) As far as performance and views goes, having 5-6 views on a page is a normal requirement for a drupal news site and the performance issues are usually handled by views/panel cache, and using a page cache like Varnish in front of a web server, Object caches like Memcached (for the DB) and opcode caches like APC...if you don't want to learn all that off the bat you should still be fine if your traffic isn't too intense (but go sign up at getpantheon.com for awesome hosting with all of that and the kitchen sink, and check out groups.drupal.org/pantheon)
2) If the functionality exists by way of core/contrib modules, to fully develop a site for the most part one only needs to understand enough PHP to theme, and often with starter themes like Fusion, and some of the others you hardly even need that, just an understanding of how they work and are extended (which is well documented). That said, if you want functionality that doesn't exist, you'll have to code it, or have someone code it for which strong programming skills are desired, but not necessarily required :)
Even I recommend the use of the OPENPUBLISH - https://www.acquia.com/solutions/publishing
On top of to this you can make an efficient usage of
1. APC - PHP byte-code caching
2. Drupal Caching - block/template/view level caching
3. Boost - Caching module which doesn’t need any external tools
4. Varnish - HTTP accelerator
5. Memcache - Data intensive content.
Apart from this you will also need to think effectively on deciding on DEPLOYMENT ARCHITECTURE of the site - preferably Acquia or Amazon environment.
Learning curve may vary depending on your current skills in PHP or Drupal. Usage of already established distribution like OPENPUBLISH may help you to minimize the dependability on too much custom coding.

why is the springsource.com website built in drupal?

I was trying to learn a little about JAVA frameworks like Spring. I hit view source on springsource.com and it's totally Drupal (a PHP CMS).
What's up with that? You would think they would build the site in their own framework, huh?
Because Drupal's more geared to a site of that nature, as it's a content management system instead of an application framework. It has modules for just about everything they wanted to do.
As Colin says on this page:
We have a very finite amount of resources which are frankly better spent on enhancing parts of Spring that are of use to the largest audience, not on modifying or implementing a CMS. While we did have to spend a decent amount of time tweaking the theme to our satisfaction, and inputing the old content, equivalent or more effort of this type would have been requiered with any solution. On the other hand, Drupal out of the box comes with all the functionality we need, so we didn't have to spend any of those scarce resources on development or customization of the product itself. It's that simple.
I think they figured that there was more value in servicing clients than writing a CMS for their web site. Springsource was (is?) a small company that cared about billable hours. I think going with this software was a good business move.

Web application integration with Drupal

We want to build a web application, that is specific to our domain, but also includes forums, blogs, etc in this application. Some integration points to Twitter and Facebook are also required.
There will also be a desktop application that connects to our web application for uploading data and downloading configuration and reports.
The question is, can we extend Drupal to host both the regular modules and our web application? (There will be business entities and their properties and daily data uploaded from the desktop application)
Or can Drupal be integrated with external applications? As an example, users and roles need to be the same and consistent across both. We may also want data from the web application searchable in Drupal.
I know this is a bit vague, but I cannot reveal more. I am very new to content management and I just wanted to know if someone has built this kind of application.
I try to rephrase what you wrote, just for you to check that I got your question right. You basically need to create a web application that:
Implements some of the standard functionality of Drupal
Have some custom functionality that should "blend into" the Drupal one (same users, same permissions, etc...)
Be able to upload/download content (or data) from desktop applications.
If I got you right, the short answer is: yes, you can do that with Drupal.
Now for the extensive one:
- Drupal has literally thousands of modules, so I expect you to get most of the things you want by simply installing the right combination of readily available modules.
- Of course, any custom functionality can easily be implemented in form of a module too (quite standard thing these days).
- The interaction with a desktop application is normally implemented via webservices rather than querying the DB directly. Drupal comes natively with a xmlrpc server and client, but you can scale up to SOAP - if you wish - via a couple of contrib modules.
Some additional thoughts:
If you choose to use Drupal, and you start from scratch, then you have to be aware you and your team will need to dedicate some time and effort to understand how Drupal works. Although - differently than Palantir - I stuck with Drupal, I agree with her/him on the fact that Drupal gets complicated complex right off the bat. This is the trade-off you have to pay in order to have a platform that - rest assured - is very flexible, extremely pluggable and rock-solid (otherwise it wouldn't have been used to redesign the whitehouse, nor Drupal would have got for the second year in a row the "best PHP CMS" award, I suppose).
The good news is: there are some excellent books out there, and I would certainly recommend "Pro Drupal Development" for an in-depth and all-around explanation of the system. Just be sure to get the 2nd edition, as the first deals with the now obsolete 5 seres. That said...
A very good thing about Drupal, at least in my opinion, is that most of the tweaks you might need to do to an existing functionality can be implemented by hooking into the original code from a custom module too. This IMO is the biggest advantage of Drupal: you never have to touch other developers' code to achieve your goals, and this means - for example - that you will be able to keep your core and contrib modules up-to-date without breaking any customisation you might have done.
Drupal is heavy. Compared to other CMS it sucks plenty of processing power and RAM from your server, and - unless you are going to have a very small site - I recommend to deploy it in conjunction with nginx, rather than Apache.
Drupal scales well, thanks to a good mechanism of caching and "throttling up" mechanisms. Strange as it might sound, Drupal scales very well on large traffic websites, so that big increases in traffic do not necessarily imply big increases in resource usage.
The user experience out-of-the-box on a Drupal site is quite poor. There is a massive work being done on this at the moment (here and here (video)), but improvements won't be available until D7 is released [soon, but then you will have to wait for the modules to be ported], so it is advisable to allocate some time to create an administrative theme, if the admins of your website won't be of the technical type.
At the end of the day, my advice is: if your site is going to go big / complex / with complicated business logic and lots of functionality, then Drupal is probably a good candidate. If your site is contrarily a small-scale one with standard functionality plus a few custom bits, maybe Wordpress / Joomla could fit your needs better [not because they are 'less powerful' but because Drupal strengths would be unused in this case, while Wordpress/Joomla simpler architecture would probably represent an advantage in this scenario]
Other options would certainly be frameworks like CakePHP or Django, for example, but that - IMO - is a totally different approach to the matter, I would say.
Short answer: Drupal is well suited to build something like that, especially if you are willing to integrate your app/logic into Drupal as a suite of custom modules. The other way, integrating Drupal into an external application, can also be done, but will give you more friction, as Drupals architecture is pretty much geared towards being a framework in its own right.
Longer answer: I have a pretty much opposite opinion/experience compared to Palantirs. I've been working almost exclusively with Drupal for a year now, in the context of two fairly complex/'enterprisy' projects (after several years of 'on the side' usage for smaller things). While I agree that it imposes some rigid rules (but not limits!), I consider this to be an advantage, as those rules give a clear guidance and provide proven ways on how to do things. The three parts Palantir mentions are good examples for this:
Menu system - Provides a well structured and effective dispatching mechanism that is easy to extend with your own stuff, while giving huge flexibility to tweak/manipulate existing/default paths. (Note that 'menu system' in Drupal denotes the whole topic of managing your URL space, not just the subset of 'visible' menus that is usually associated with the term)
Forms API - A declarative approach to web forms, with a well designed processing workflow and a whole lot of built in security features that you would otherwise have to take care of yourself. Also highly extensible, with straight options to adjust/extend already existing forms on demand, add new validation rules to any field or whole forms, multi step forms, javascript based form adjustments, etc.
Translation system - This is pretty complex, simply because internationalization is fricking hard to do. But it is built in, again giving clear guidance on how to do things in order to work in a generic way (though there are problems with quite some contributed modules that are not using/supporting it the way they should).
I could give more examples for parts where I appreciate the 'rules', but this post is getting long already, and I still have to cover some downsides ;)
So to sum up the positive part - if I where given the rough specs you posted, I'd say 'no problem' and go with Drupal, being confident that it would be a solid foundation for the custom parts, while providing all the 'standards' like forum, blogs, twitter/facebook integration and many, many others in the form of already existing solutions (even though those might need some adaption/tweaking).
Downsides: As always, there are flaws, and some of them are substantial, depending on requirements/circumstances.
Learning curve - Drupal is quite complex, and 'grokking' its concepts takes time. 'Playing with it for a week', as Palantir suggests, will certainly give you a general feeling/broad impression, but it is in no way enough to allow for a serious judgement of its pros and cons, as those will only surface while coding in/for it. So if you are already deeply familiar with an established web development framework, this might be an issue. If you have to learn one anyways, this should be less of a problem.
Database restrictions - As of Drupal 6, database support is MySQL or PostgreSQL only, using a Drupal specific 'abstraction layer' (which obviously isn't one ;)
Drupal 7 will move to PDO, which should (finally) end this questionable state.
Test/Stage/Production migrations - Parts of Drupals 'out of the box' flexibility are due to many things being configurable in the administrative backend, which implies that many important configuration settings are stored in the database. This makes migration of data and/or configuration between several instances pretty difficult/tedious, once you left the (early) stages of development where you can get away with complete dump/restore operations (see e.g. this question & answers)
These are the main ones for me, but you'll probably find more :)
I worked for over a year using drupal extensively, but I ended up abandoning it. Drupal, and other CMS systems out there, have very rigid limits and rules. I'd use Drupal for projects where you have simple requirements and few or no business rules. Drupal gets complicated almost immediately when you want to do complex things (especially pay attention at the menu system, forms, and the translation system if you need to be multilingual).
If your system will really be large, with all the things you mentioned, then I'd rather use a PHP framework to implement your business logic, and integrate external products as they fit (a forum, a blog, a twitter client, etc...).
But the advice is: don't trust anyone :) Download it, and play with it for a week. You'll be able to make your mind and be more confident about your choice!
As Drupal is open source, you can pretty much do as you wish with it. A couple of points though:
Changing Drupal's user/role structure would be tedious and unnecessary. You would need to have your desktop application authenticate from Drupal's MySQL database.
Drupal has hundreds of plugins for just about everything, so Drupal could no doubt run the whole "web" side of things including visitor stats etc. You would just need, again, to connect your desktop application to the correct MySQL tables and show the data as desired.
Don't forget to check other content management systems such as Joomla! (and many others). Each has its pros and cons. www.opensourcecms.com allows you to easily test CMSs and I've used it extensively in the past.
Just be sure to map out all the components first. Every hour planning up front saves many hours of headaches later.

Resources