Main  /  Edit  /  History  /   /  Users Area

Frequently Asked Questions

Are you crazy or a masochist?

As far as I know --- no.

Why develop web sites in C++?

Many reasons, see Rationale.

Is CppCMS really a Content Management System, e.g. like Drupal?

No, CppCMS is not a Content Management System (CMS) like Drupal. It is a web development framework like Django or RoR.

If CppCMS is not a CMS, where does this name come from?

The original idea was: "Write your own CMS in C++".

The lead developer asked in 2008 for a better name but didn't get any suggestions, so the name stuck.

It was decided later to keep this name as it was already well known name and all the software around used cppcms as the namespace.

Why develop web sites in C++? It is a dangerous language!

Modern C++ is indeed a difficult language and it takes much more time to get familiar with it, in comparison to dynamic languages like Python or PHP, or static ones 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 to write applications rapidly and safely, 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 the SQL engine and not the server side language?

This is a 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 were 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 SQL queries. See: Is Data Base the Bottle Neck of Web Service?

How can I contribute?

Read this guide

How is CppCMS licensed?

The framework is licensed under the LGPL 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.
  3. You must allow the user to do changes in the CppCMS library - basically this implies dynamic linking with CppCMS library.

CppCMS based applications that are part of CppCMS Project, like this wiki, are licensed under the GPL.

Do you plan to change the framework's license in the future?

Unless I become 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 has inspired you?

Mostly Django. Sometimes, when I want to add some feature to the CppCMS I read the Django documentation and try to understand how they did it.

Good examples are: templates inheritance and forms.

Is this project cross platform?

Short answer: Yes

Longer answer: It 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 nor can it be build and debugged using Microsoft tools.

The upcoming 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 "Microsoft development style".

When CppCMS 1.x.x will be released?

Hopefully soon:

Is CppCMS 0.99.x is stable?

This branch is officially beta release brunch, however

This version is the recommended version and it is actually used by most of CppCMS framework users (if not all of them).

Why HTML templates are compiled? Why don't you use an interpreted template system or XSLT?

Let's start from the history. First CppCMS template system (CppCMS 0.0.1b) was interpreted and dynamically typed. It required from user to provide some glue between the data he uses and the rendering system.

But this template system was abandoned in favor of statically typed compiled templates for the following reasons:

There are few disadvantages of compiled templates:

The first issue is not so critical because when using templates compiled to shared objects or dlls the compilation time becomes very short and user do not need to wait too much. For example: wikipp templates compilation and linking takes about 1.5 second.

The second issue was addressed in CppCMS 1.x.x where templates can be reloaded automatically as view's shared object or dll is updated without restarting the application at all.

Also Note: Nothing prevents from you using any other template system if you find it suitable, you can always write an output directly without templates.

About

CppCMS is a web development framework for performance demanding applications.

Commercial

CppCMS is available under Open Source and Commercial Licenses.

For more details, visit our website:
commercial.cppcms.com

Hosted By

SourceForge.net Logo

Support This Project

CppCMS needs You


Navigation

Main Page



Valid CSS | Valid XHTML 1.0