__Are you crazy or masochist?__ |
|
As far as I know --- no. |
|
__Why develop web sites in C++?__ |
|
Many reasons, see [Rationale](/wikipp/en/page/rationale). |
|
__Is CppCMS ready Content Managment System like, Drupal?__ |
|
No, CppCMS is not Content Managment System (CMS) like Drupal, it is web development framework like, Django or RoR. |
|
__If CppCMS is not CMS, where does this name come from?__ |
|
The original idea is: "Write your own _CMS_ in _C++_" |
|
__Why develop web sites in C++? It is dangerous language!__ |
|
Modern C++ is indeed hard language and it takes much more time to get familiar with it, in comparison to dynamic languages like Python or PHP, or static one like C#/Java, that are very popular in web development. |
|
However, once you know it well, you have great set of tools that allows you writing applications fast and safe, without memory leaks, without random crashes. Once you stick to RAII principles, write exception safe code and _understand_ how STL works, everything becomes simple and quite straightforward. |
|
__Isn't the major bottle neck of any web application is SQL engine and not server side language?__ |
|
This is quite common misconception. And it is quite easy to check. Running simple benchmarks on typical CMS you are going to find that it may create about 5-50 pages per second. |
|
If you log the database queries and run them as if these where requests from the CMS engine, you'll discover that you can reach up to 1000 requests per second (requests, not queries)... So, SQL makes about 5% of your performance problem. |
|
In fact, if you take real big projects like WikiPedia, you |
can see, that there are much more computing resources wasted on PHP processing than on processing of SQL queries. See: [Is Data Base the Bottle Neck of Web Service?](http://art-blog.no-ip.info/cppcms/blog/post/42) |
|
__How can I contribute?__ |
|
Read [this guide](/wikipp/en/page/contrib) |
|
__How does it licensed?__ |
|
The framework licensed under [LGPL](http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License) and other LGPL compatible licenses. That means (in general): |
|
1. You can create commercial and FOSS application with this framework. |
2. You **must** release changes you did in the framework itself. However, It does not enforce you to release your own application code. |
|
CppCMS Based applications that are part of CppCMS Project, like this wiki, are licensed under GPL. |
|
__Do you plan to change the framework's license in future?__ |
|
Unless I got crazy (see Q1), I'm not going to change the license to proprietary or strong copyleft license. Meaning: |
|
1. I will not close the source. |
2. I will not switch to something like GPL and enforce commercial users to purchase licenses. (Like Trolltech or C++ Web Toolkit). |
|
I may change the license to something more permissive. |
|
|
__What existing frameworks had inspired you?__ |
|
Mostly Django. Sometimes, when I want to add some feature |
to the CppCMS I read Django documentation and try to understand how did they do it. |
|
Good examples are: templates inheritance and forms. |
|
__Is this project cross platform?__ |
|
_Short answer:_ Yes |
|
_Longer answer:_ Depends on how do you see cross platform portability. |
|
_Long answer:_ |
|
Version 0.0.x of this framework is written for POSIX compatible/Unix like platform. It is known to run on Linux, FreeBSD, Solaris and Windows/Cygwin. |
|
Windows does not confirms to POSIX standards, thus CppCMS 0.0.x can be build only via POSIX compatibility layer --- Cygwin. |
|
It would not run as native Win32API application or can be build and debugged using Microsoft tools. |
|
Future CppCMS release 1.x.x, would support Windows naively including support of MSVC compiler, however, Windows would have second priority support due to nature of CppCMS -- which does not fit "Micrsoft development model". |
Future CppCMS release 1.x.x, supports native Windows builds without POSIX compatibility layer, including support of MSVC9 compiler. However, Windows support is second priority support due to nature of CppCMS -- which does not fit "Micrsoft development style". |
|
|