About This Website


This web site is an effort to:

  • Specify the minimal requirements that a C++ library must fullfill to be useful to the C++ community.

  • Provide the tools to meet those requirements with minimal effort.

  • Impose no more requirements than the minimum required.

That is, while specifiying the library requirements and suggesting tools to be used, we wanted to permit libraries to use their own tools if the author desired. This means that we can add per-existing conforming libraries to the site without disruption. Also, in practice, there is a wide variety of size of libraries. Some are very small maybe one header file, while others might be very large. So its very likely that different solutions for things like issue tracking, documentation preparation etc. might vary. Finally, tools evolve. In the last ten years, preference in source control systems has evolved from CVS to SVN to GIT. We want to permit library tools to evolve as well. It is for this reason we don't implement facilities such as issue tracking in this website but rather expect the a library submission provide links to where these facilities are actually implemented.

Finally, I wanted a website that had all the features that modern websites should have:

  • Aesthetically pleasing with good typography, flowing text, etc.

  • Ease of maintenance, update, etc.

  • Accept commentary and library submissions.

  • Appropriate user control and spam suppression.

Alternatives Considered

Achieving the above turns out to be much more effort than one would think. The whole web development universe turns out to be a very unpleasant place for a C++ programmer. I won't spend time with the details, but here are the options I considered.

PERL

Previously, many years ago, I made some websites. To implement forms I used PERL. It was easy to use, but ended up very much a hack. Good enough for the simple things I wanted to do then, but I knew immediately that I needed more help than PERL could offer.

RVSiteBuilder

This is a websie bulder which generates all the site pages by answering questions. Actually not bad as far as it goes - it can only go so far. Fortunately I didn't have to invest a huge amount of time to understand that it wasn't going to do the job.

PHP

I looked at PHP and was quite impressed.

  • Excellent documentation of the language and libraries. This really impressed me. Also all the documentation pages permit additional explanation, examples, etc. To be added by the community. This turns out to be very, very helpful. I resolved to include such a facility on this web site as well. I also considered the possibility of permitting users to annotate documentation of submitted library documentation. I set that idea aside as it would take me further off course, but I remain intrigued with it.

  • The PHP language is sort of "irregular" in comparison with C++. It's sort of a poor man's C++ interpreter. But in reality this isn't a huge problem as the task for which PHP is used - creating dynamic web pages - isn't all that demanding.

  • Web pages generated with PHP tend to be HTML interspersed with PHP (or vice versa). Since a lot of it isn't carefully written, it turns out to be indecipherable to the human brain.

  • I'm not sure if there is a way to debug it interactively. At the vary least it would require a server on one's local system. I didn't think I should have to go to all that trouble just for a relatively simple application.

  • I'm not sure how much overhead dynamically interpreting PHP adds to the serving of web pages. I just assumed that it would be an issue on this low traffic web site.

I actually made a prototype web site using just PHP. It was not unsatisfactory, but by this time I became enamored with the ability to comment on submissions and pages and added this facility as a requirement. Also, maintenance would be an issue. So I resolved to find a more complete solution.

TikiWiki

Having seen the PHP documentation and being a being a huge fan of WikiPedia, I investigated MediaWiki and other Wiki systems. There are many of these. Most are written in PHP. After spending too much time, I concluded that making this do what I want would entail too much work and resolved to look elsewhere.

Wordpress

Next I tried Wordpress. This is a very impressive setup.

  • A complete system for administering the site including users, pages, PHP code etc.

  • An architecture which supports "plugins" and "themes". These permit one to decouple - to some extent, the look and feel of the sight from the content. There are thousands of plugins and themes available. They are easy to try out. Turns out that most of these are deficient in some way so one has to try quite a few of them to get things just right. It's no perfect, but it's great when it works.

  • Documentation is not too bad. In addition, there are books available.

  • Support for commenting on library submissions and web pages. This includes spam filtering, user logins, email notification, etc.

So it was a good start. However, getting things "just right" finally meant learning quite about the whole system which consumed a lot of time. Like most things, it has to be "made to work". Still, all in all I got it to make most of the things in this site work the way I wanted.

Acknowledgements

The logo for this website was designed by Matias Capeletto. It's cleverly designed to evoke the idea of "boost library under construction".

Comment on This Page