CppCMS vs. C++ Server Pages vs. Wt

10,631

Solution 1

First of all, several differences:

  1. Wt is GUI like framework, it is quite far from traditional web development. So, if you want to develop a code as if it was GUI it is for you.
  2. CppCMS is traditional MVC framework optimized for performance, it has many features like template engines, forms processing, i18n support, sessions, efficient caching and so on, support of various web server APIs: FastCGI, SCGI and CGI. If you come for Django world, you would find yourself at home.
  3. I'm less familiar with the third project, but it feels more like PHP -- you put the C++ code inside templates and has no clear separation of View and Controller.

Stability, I can tell only about CppCMS, it is stable, and there are applications running it 7/24, the authors blog and the Wiki with documentation of CppCMS are written in CppCMS. So, there shouldn't be major critical bugs.

Disclosure: I'm developer of CppCMS.

Solution 2

I am the developper of libapache2-mod-raii and I am very disappointed we did not recommend this library for production work... Cause I do ! :)

I also like to point out that the project page is also available in English.

On the other hand, I do not agree with Steve about the fact that servlets are not compiled on the fly, as they are !

Otherwise, on the lacks of prefork support is not my point of view, although I was looking on the issue.

Solution 3

On a side note, I used mod_raii a while ago to rapidly port some parts of an existing C++ application on the web.

It takes exactly the same approach than JSP, with the whole compilation part delegated to the Apache module.

I cannot recommend it for production use, since I don't have much experience in it, but it is definitely something worth playing around with, and I didn't have any issue at the time.

It lacks some features like the support of a preforked apache, but has all the needed core features.

Solution 4

Answer from 2018:

I am running on limited hardware resources, so C++ is the first thing I think of. I made a decision by looking at this benchmark of web frameworks. cutelyst (a Qt derivative) and Wt dominate the top spots. They are all non-libre. So, I looked into treefrog. Right after its first and only tutorial, it is apparent that it uses qmake from Qt and thus Qt's LGPL applies.

I reluctantly go with CppCMS at the bottom of the list, as ffead has too many errors and poco is not a fullstack framework.

Diving into the tutorials, CppCMS is way ahead of treefrog when it comes to documentations. The first several tutorials are easy to follow. However when I start encountering problems, help is almost non-existent. I can't imagine how it would be like going with treefrog to get something done. Lack of documentations (and good ones) is the reason why I dumped it in the first place.

I almost dumped CppCMS also due to a serious roadblock. A tiny community cannot offer much help. Got Laravel (a very popular PHP framework) installed and about to test something. Then, the CppCMS issue seemed resolvable and I am back to it. Guess I am about to get stuffs done with CppCMS but its constraints are showing.

The incident got me thinking, and I look back at the benchmark, allowing Java and PHP to be there. I need some alternatives in case things don't work out. Lo and behold, the top three spots are occupied by Java frameworks. Laravel may not be the fastest, but it is really hot right now. Plus, I can call my C++ executables from PHP codes.

According to this discussion: if you use Qt with dynamic linking, it seems that you do not have to disclose your code if you use Qt with dynamic linking. This has to be researched, and Qt cannot be mastered within a single day. I suppose that makes cutelyst a possible choice again, IF AND ONLY IF you can do dynamic linking, and do all your things that way. I am just not a fan Qt's legal minefield and jumping hoops.

Through all this, I have a different look towards Java. Will still do Laravel because of all the rage, and I am now open to things other than C++.

Share:
10,631
the_drow
Author by

the_drow

My name is Omer Katz and I am a very passionate software developer who specializes in ALM & SCM practices. I'm also an Agile & Lean enthusiast and practitioner. I am only 23, therefor I have only started working in the industry in 2010 but I have been programming since I was 11 and I have never stopped being passionate about it. I have a vast knowledge when it comes to planning, designing, developing & delivering software. My greatest passion is finding new ways to make the developers' lives easier and let them focus on what they know to do best, software development.

Updated on July 06, 2022

Comments

  • the_drow
    the_drow almost 2 years

    I know Wt is the most stable of them, but it's a bit uncomfortable to use.
    CppCMS sounds good but how stable is it? How secure is it?
    I have encountered C++ Server Pages as well but there's nothing about their security in there.
    Has anyone had some experience with any of those libraries and can enlight me?

  • Artyom
    Artyom almost 15 years
    >>I'm developing an embedded application that will eventually have a 3d interface<< What do you mean? >>What do you think that fits best<< Both CppCMS and Wt can be used in embedded applications. CppCMS has an option to be compiler for embedded system as CGI.
  • the_drow
    the_drow almost 15 years
    True. But do you think it fits for what I'm looking for?
  • the_drow
    the_drow almost 15 years
    Hmm I'm not sure we have time to build testcases.
  • Popplars
    Popplars over 14 years
    i18n stands for internationalization. Abbreviations are often unnecessarily confusing.
  • Ratah
    Ratah over 5 years
    I do realize a proof of concept POC with CppCMS and I am impressed by session management, form widget gestion/validation, template mechanism, json server configuration and securisation. Indeed the version 1.2.1 that I test do not need any 3rd library expect PCRE, and it works well with C++03. I would have prefered to use HTTPS protocole and Websocket, features already available on Wt (heavy use of widgets)