Recommend Unix Compiler and Unix Platform?

Dear Boost Users: I have developed a number of reliable web based applications and ISAPI filters for Windows in C++ using several of the Boost libraries. Although I have no experience in Unix, I am very interested in doing similar web development in C++ on Unix. Can someone recommend a good compiler and platform (Unix Variant)? I've noticed that the following seem to be pretty popular for web servers. To keep things easy, I guess that I'd be using a specific variant for both development and web server: FreeBSD, Fedora, Ubantu, and CentOS. Please Advise, Jeff

-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Jeff Dunlap Sent: Sunday, May 25, 2008 19:49 To: boost-users@lists.boost.org Subject: [Boost-users] Recommend Unix Compiler and Unix Platform?
Although I have no experience in Unix, I am very interested in doing similar web development in C++ on Unix.
Can someone recommend a good compiler and platform (Unix Variant)? I've noticed that the following seem to be pretty popular for web servers. To keep things easy, I guess that I'd be using a specific variant for both development and web server:
FreeBSD, Fedora, Ubantu, and CentOS.
FreeBSD is a BSD derivative. Fedora, Ubuntu, CentOS are Linux derivatives (of which you could add Debian into the mix). I, plus a good chunk of the population, have a preference to the Linux side, ISP, in general, people have a preference for the BSD side. I'm sure others will have other opinions. Anyway, in general, there are some larger OS and filesystem differences between the two basic derivatives. g++ is the usual gnu open source C++ compiler. Eclipse/CDT is an IDE (I've used that one, but Code::Blocks is rumored to be a good IDE as well). Do a google for Wt, which is a pretty good C++ based web development kit. And is based upon boost slots/sockets and ASIO. -- Scanned for viruses and dangerous content at http://www.oneunified.net and is believed to be clean.

Quoting Jeff Dunlap
Dear Boost Users:
I have developed a number of reliable web based applications and ISAPI filters for Windows in C++ using several of the Boost libraries.
Although I have no experience in Unix, I am very interested in doing similar web development in C++ on Unix.
Can someone recommend a good compiler and platform (Unix Variant)? I've noticed that the following seem to be pretty popular for web servers. To keep things easy, I guess that I'd be using a specific variant for both development and web server:
FreeBSD, Fedora, Ubantu, and CentOS.
Please Advise,
Jeff
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- Pau Garcia i Quiles http://www.elpauer.org (Due to my workload, I may need 10 days to answer)

Ray & Pau, Thanks for your input. I'm sort of thinking of going the FreeBSD route since my main reason would be for hosting web applications. I also want to change web development frameworks and will definately be looking at C++ Web Tool Kit. I want something cross platform but it must support html templates. Please read on... I've looked at quite a bunch of C++ web development kits and one thing that I definately don't like is mixing html with C++ code. The only systems that I've worked with and found are: Microsoft ATL Server and VBMcgi. They both have their good and bad points. One thing that they both allow you to do is to create 'templates' or 'stencils' which are your html web page or web form, etc. In both of these frameworks, your C++ code NEVER mixes with html code. Of course, you can if you want, but that is very messy. I like keeping my interface totally separate from my business logic. Being able to completely modify the interface at any time without touching the app is an additional bonus. I wrote this app here: http://app.directcorrespondentlender.com Please note that all business logic is in C++ and all interface files consists of a single html file (plus a css file for styling, and a javascript file for ensuring that basic field formatting, i.e. $250,000). All logic is in C++, the drawback is that it is in MS ATL Server, thus not cross platform, plus its design is not the best, MS took a backward, complicated approach in my opinion. While VBMcgi was designed well, I love its design but I don't like the way it was coded. They use their own string class for instance :( and cookie handling does not seem to work right for multiple valued cookies. That made me decide to stick with ATL Server even though I don't like the design at all. Does C++ Web Took Kit allow you to work with templates aka stencils? I am looking for alternatives. Best Regards, Jeff

Quoting Jeff Dunlap
Ray & Pau,
Thanks for your input. I'm sort of thinking of going the FreeBSD route since my main reason would be for hosting web applications.
I also want to change web development frameworks and will definately be looking at C++ Web Tool Kit. I want something cross platform but it must support html templates. Please read on...
I've looked at quite a bunch of C++ web development kits and one thing that I definately don't like is mixing html with C++ code.
The only systems that I've worked with and found are: Microsoft ATL Server and VBMcgi. They both have their good and bad points. One thing that they both allow you to do is to create 'templates' or 'stencils' which are your html web page or web form, etc.
In both of these frameworks, your C++ code NEVER mixes with html code. Of course, you can if you want, but that is very messy. I like keeping my interface totally separate from my business logic. Being able to completely modify the interface at any time without touching the app is an additional bonus.
I wrote this app here:
http://app.directcorrespondentlender.com
Please note that all business logic is in C++ and all interface files consists of a single html file (plus a css file for styling, and a javascript file for ensuring that basic field formatting, i.e. $250,000). All logic is in C++, the drawback is that it is in MS ATL Server, thus not cross platform, plus its design is not the best, MS took a backward, complicated approach in my opinion.
While VBMcgi was designed well, I love its design but I don't like the way it was coded. They use their own string class for instance :( and cookie handling does not seem to work right for multiple valued cookies. That made me decide to stick with ATL Server even though I don't like the design at all.
Does C++ Web Took Kit allow you to work with templates aka stencils? I am looking for alternatives.
Best Regards,
Jeff
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- Pau Garcia i Quiles http://www.elpauer.org (Due to my workload, I may need 10 days to answer)

I also want to change web development frameworks and will definitely be looking at C++ Web Tool Kit. I want something cross platform but it must support html templates. Please read on...
I used Mason with Perl a while ago for web development. It follows a template philosophy. However, with Wt, and the new 'dynamic' style web pages, you may need to change your thinking on how to implement your desires.
I've looked at quite a bunch of C++ web development kits and one thing that I definitely don't like is mixing html with C++ code.
I think this is the 'old' way of thinking. Rather than thinking of pages as HTML coded constructs, think of them of collection of objects. When you think of them in that perspective, suddenly the applicability of the object oriented capabilities of C++ become apparent and very applicable. For example, if you consider a web page loosely defined as header, left, right, footer, and mid-content, with each described as an object, C++ with its object composition and inheritance capabilities, a web page can be mixed and matched from a series of more static objects along with some dynamic objects.
The only systems that I've worked with and found are: Microsoft ATL Server and VBMcgi. They both have their good and bad points. One thing that they both allow you to do is to create 'templates' or 'stencils' which are your html web page or web form, etc.
If you do want something as a template structure, I did come across http://www.tntnet.org/index.html once upon a time. That may be more along the lines for what you search. However, I think the better way of thinking of things is with the MVC (Model-View-Controller). ASP.NET supposedly offers a form of MVC Framework. How it is implemented, Im not sure. The second picture down on http://java.sun.com/blueprints/patterns/MVC-detailed.html has a nice detail relationship of how the three components of MVC interact. If you allow yourself the idea that you can encapsulate the View as C++ code rather than as a stencil, and defining your business logic in the Model, and providing user interface control through the Controller, you may find yourself with a powerful concept for developing Web 2.0 type of dynamic applications, something I don't think you could pull off with the Web 1.0 concept of stencils and templates.
In both of these frameworks, your C++ code NEVER mixes with html code. Of course, you can if you want, but that is very messy. I like keeping my interface totally separate from my business logic. Being able to completely modify the interface at any time without touching the app is an additional bonus.
In the MVC/Wt case, there is no HTML code, or very little if any. It is all emitted through C++ objects. But, as stated before, MVC segregates your code into the business logic side and the visual side. Which logically leads into the ability to have multiple Views into one set of business logic.
I wrote this app here:
http://app.directcorrespondentlender.com
Please note that all business logic is in C++ and all interface files consists of a single html file (plus a css file for styling, and a javascript file for ensuring that basic field formatting, i.e. $250,000). All logic is in C++,
In addition to encapsulating HTML, it encapsulates a bunch of Javascript as well. In addition, it has built in objects for field validation for server as well as client side.
the drawback is that it is in MS ATL Server, thus not cross platform, plus its design is not the best, MS took a backward, complicated approach in my opinion.
You'll find Wt to be cross platform. Rather than separate html source files, you would be considering separate C++ class files for each web page. Also in Web 2.0, as they call things now-a-days, HTML is passé'. CSS is the way to 'visually' present a web page. You therefore have the following: Model: contains the business logic which emits events to the View when it needs to be changed View: HTML/DOM (Document Object Model) queries the Model in response to change events to update the objects in the interface CSS: Visually organize and format the objects on the page So in essence, or in a sense, HTML stencils have gone by the way side to be replaced by program generated web pages (which are HTML under the hood anyway) visually defined by CSS.
While VBMcgi was designed well, I love its design but I don't like the way it was coded. They use their own string class for instance :( and cookie handling does not seem to work right for multiple valued cookies. That made me decide to stick with ATL Server even though I don't like the design at all.
Wt has a Wstring class by it is readily interchangeable with the STL string capability. Session status is handled for you so cookies may not be so important, but are there none-the-less.
Does C++ Web Took Kit allow you to work with templates aka stencils? I am looking for alternatives.
See above for why templates/stencils may not be the 'modern' way of thinking. Ray. -- Scanned for viruses and dangerous content at http://www.oneunified.net and is believed to be clean.

I looked at C++ Web Toolkit, and I like alot of its features like its built in AJAX support, built in http server, and built in security features. The chat demo is very interesting. I'm going to have to take a really good look later when I have time available. Thank You, Jeff

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Can someone recommend a good compiler and platform (Unix Variant)? I've noticed that the following seem to be pretty popular for web servers. To keep things easy, I guess that I'd be using a specific variant for both development and web server:
FreeBSD, Fedora, Ubantu, and CentOS.
I am using Fedora on my laptop and Ubuntu on my desktop and I've come down in favour of Ubuntu merely for the simplicity of choosing packages using Synaptic. Ubuntu is a debian derivative and works really nicely (we use it on all our servers, too). Fedora is RedHat based and uses Yum for package updates which is slower and has a silly conflict between repositories (livna and freshrpm) which you're better off avoiding. As for C++ development environments, I use Eclipse CDT simply because of the code editor which I've been using for years (I migrated back to C++ from Java for performance) but I was impressed by the instant gratification of using Ultimate++ (http://www.ultimatepp.org/) for GUI applications. Another contender from the C++ side is Anjuta (http://anjuta.sourceforge.net/) and from the Web side, there's Bluefish (http://bluefish.openoffice.nl/) For all of these, I think it's safe to say that your compiler under the covers is gcc/g++. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org iD8DBQFIOvz5/X5Z5iyVCbERAt45AJ9lcNowEIyBJQ6RG3T/y4obZKBVFwCdGJpR t9dwTH4sA43mKU7pFI17P68= =9DlI -----END PGP SIGNATURE-----
participants (4)
-
Jeff Dunlap
-
Pau Garcia i Quiles
-
Ray Burkholder
-
Rupert Bruce