One of the most frequently asked questions about this project is **"Why?"** |
|
There are many reasons, The first one and the most important is: |
|
**Performance** |
|
If you build your personal blog, create small or even medium community or building a web site for a small company --- CppCMS is not for you. Take any of existing and good CMS like [Drupal](http://drupal.org/) or develop with great [Django](http://www.djangoproject.com/) framework, you'll be fine. |
If you're building a personal blog, creating small or even medium sized sites, or perhaps a website for a small company --- CppCMS is not for you. Take any of the existing CMS's like [Drupal](http://drupal.org/) or develop with perhaps the [Django](http://www.djangoproject.com/) framework, and you'll be fine. |
|
However, when the loads become more then average, the process of scale-up using existing web frameworks may be painful: |
However, when the loads become more than average, the process of scale-up using existing web frameworks may be painful: |
|
1. Low performance of dynamic or JIT languages enforces you to add more servers even on quite small loads. |
2. The caching becomes more complicated and less efficient because the system becomes distributed and does not scale-up linearly. |
3. Creation of such system requires skilled stuff and costs even more. |
3. Creating such systems requires skilled staff and adds to costs. |
|
CppCMS allows you to increase the performance of typical system by an [order of magnitude](/wikipp/en/page/benchmarks) and thus: |
CppCMS allows you to increase the performance of a typical system by an [order of magnitude](/wikipp/en/page/benchmarks) and thus: |
|
1. Remove requirement of maintaining a big server farm where few servers or even single one would solve the load problems. |
1. Remove the requirement of maintaining a big server farm, where a few servers, or even single one, would solve the load problems. |
2. Reduce maintenance costs and power consumption. |
|
**Make the world greener and better place** |
|
By reducing the number of servers running your applications |
you actually reduce the pollution of CO<sub>2</sub> to the air and |
make your software less energy consuming and thus _greener_. |
By reducing the number of servers running your applications, |
you actually reduce the pollution of CO<sub>2</sub> to the air, and make your software less energy consuming and thus _greener_. |
|
Don't you believe? Read [this article](http://developers.slashdot.org/story/09/12/20/1433257/The-Environmental-Impact-of-PHP-Compared-To-C-On-Facebook?art_pos=12) about Facebook's server farm. |
Don't believe me? Read [this article](http://developers.slashdot.org/story/09/12/20/1433257/The-Environmental-Impact-of-PHP-Compared-To-C-On-Facebook?art_pos=12) about Facebook's server farm. |
|
**What about development costs?** |
|
That is the major point of CppCMS. It makes the development fast easy and allows programmer to deal with an application logic rather then all unrelated things. |
That is the major point of CppCMS. It makes the development fast and easy, and allows programmers to deal with an application's logic rather than all the unrelated things. |
|
Today, the major problem of web application development in C++, is lack of suitable tools. CppCMS solves it and gives you tools that any other web framework gives you. |
Today, the major problem of web application development in C++ is the lack of suitable tools. CppCMS solves this, and gives you the tools that any other web framework gives you. |
|
**What about crashes, buffer overflows, memory leaks?** |
|
These issues are mostly in past for _modern_ C++ development. Smart pointers, STL, Boost and other decent programming tools allow to write safe code easily and fast. |
These issues are mostly in the past for _modern_ C++ development. Smart pointers, STL, Boost and other decent programming tools allow you to write safe code easily and fast. |
|
Modern C++ development is easy and safe as C# and Java development. |
Modern C++ development is as easy and safe as C# and Java development. |
|
Also a developer who uses CppCMS mostly works on application's business logic and does not deal with low level issues that CppCMS takes care of them. |
Also a developer who uses CppCMS mostly works on an application's business logic and does not deal with the low level issues that CppCMS takes care of. |
|
For example, take a look on the [code of this wiki](http://cppcms.svn.sourceforge.net/viewvc/cppcms/wikipp/branches/for_cppcms_v100/), it is simple, safe and straightforward. |
For example, take a look at the [code of this wiki](http://cppcms.svn.sourceforge.net/viewvc/cppcms/wikipp/branches/for_cppcms_v100/), it is simple, safe and straightforward. |