Rationale Behind CppCMS
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 or develop with great Django framework, you'll be fine.
However, when the loads become more then average, the process of scale-up using existing web frameworks may be painful:
- Low performance of dynamic or JIT languages enforces you to add more servers even on quite small loads.
- The caching becomes more complicated and less efficient because the system becomes distributed and does not scale-up linearly.
- Creation of such system requires skilled stuff and costs even more.
CppCMS allows you to increase the performance of typical system by an order of magnitude and thus:
- Remove requirement of maintaining a big server farm where few servers or even single one would solve the load problems.
- 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 CO2 to the air and make your software less energy consuming and thus greener.
Don't you believe? Read this article 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.
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.
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.
Modern C++ development is 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.
For example, take a look on the code of this wiki, it is simple, safe and straightforward.
