Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?

Journal deadlinegrunt's Journal: C++ Programming Links

If you are programming and using C++ I might recommend the following links:

POCO Portable C++ Components
This is a recently added library. It is even released under the Boost Software License now. This library contains all the things you wished were standard in C++ minus one thing, a GUI library (which isn't feasible due to politics) It uses the latest features of the C++ Standard so it's a fully written C++ library and not a hacked up version of better C. It is pretty polished and worth checking out.

The true power in this library is the ability to use core C++ langauge in a hassle free way. It does not take advantage of the latest in C++ idioms but when you need a cross-platform library that will work this library is something to remember. And just because it does not use STL does not mean that you cannot use STL in your code. I have had the luck of working with some compilers though that makes using STL problematic. Unfortunately compliance and implementation defined versions of STL can make some code less portable and effecient when using some of the more interesting features of C++, enter PTypes. Note that I would consider myself a proponent of STL and generic programming. This library is useful but does have a hint of C flavor to it in its useage. The unfortunate aspect of this library is that while just about any intermediate C++ coder can hack the source, it isn't maintained anymore from what I have noticed. A real shame because it has unique way of doing ip streams for example. With the added players of Boost::asio, C++ Sockets, or POCO - I believe this library is nearing its cycle of new development. If you are new to C++ or not quite ready to grok the "big boy" libraries like Boost, this may prove to be a good starter library. Don't be fooled into thinking it isn't functional however, it is quite handy to know.

I did not realize that I left this off the list initially. This is a cross-platform database and communication library. Very functional and very easy to use. Lots of documentation both in the code itself and standalone. Subjectively I would consider this a middle ground between PTypes and ACE with regards to a learning curve and functionality. You have more prebuilt potential for middleware objects with DReel or ACE IMHO.

This is a bit of a chore to get up and running at times on different enviornments but works really well. Depending on the environment and team (as well as project needs/goals obviously) our decision usually boils down to ACE or PTypes. If writing any type of middleware with C++ you would most likely be interested in this or DReel for prepackaged libs.

I know that this is not a C++ library but this library is still useful, functional, and cross-platform enough to make my list of libs that I have at my disposal.

C++ Sockets
When all you need is sockets this fits the bill really nice.

I am not sure how you can be a C++ programmer and not have familiarity with Boost and as such not much of a need to list it here. The biggest reason I am commenting on it though is a reaction to the messageboard and newsgroup postings I see relating to it and preparing it for use. I realize Jam (and it's derivitave Boost.Jam) is a nice build tool but myself I typically build the necessary components of boost manually. Also keep in mind that Boost does not have to be compiled into library components. It does make life easier to just include the headers and necessary libs. For that reason I recommend you get familiar with the command line usage of your compiler, scripting, and know how to combine these things to build libs manually.

This is by far the slickest database library for C++ that I recommend. Easy to use, functional, powerful.

This is the STL version of ODBC database programming. Similar in comparison to ACE vs PTypes I would compare DTL vs OTL.

This is the cross-platform GUI equivalent of what Java has but for C++. 10+ years of support and it is still going stronger than ever. I always tend to fallback on this library for anything that needs a GUI in regards to desktop applications.

Though I do not use this library as much as wxWidgets or FLTK, it still deserves mention. It is a very simple toolkit to pick up though I do not care for the Windows 95/98 look that it often provides regardless of platform. If you are not familiar with it then I suggest at least taking a look at it (as is with any of the libs I listed)

This is by far the easiest, quickest, lightest widget toolkit I know of for C++. You can do quite a bit with it and do it quickly. This library works really great in an embedded/kiosk type system with very low resources. It is fast and it is light - just like the name implies. This library has some unique ways to accomplish things that other toolkits do not attempt. Here is very effective demonstration for people who have never heard of this library before.

Where are GTKmm for things like GTK? Well the fact that you are asking or even know means you are familiar with them. They are abundant in many open source projects so I consider them pretty well known. The libs that I have listed (some of which are arguably more well known than GTK for example) are libs that I do not see in abundance of use and I do not believe it is for technical reasons that they are not. Exposure is what I think keeps some of these libraries in niche cases.

If you seriously program using C++ then I recommend you look into these links if nothing more than to just know that they are there. Better yet is to code a simple project using any of the libraries and see for yourself what is useful and what is not. This is how my list came to be.

If you have any tips/advice/recommendations please comment. I am particularly interested in anything I have glaringly missed.

This discussion has been archived. No new comments can be posted.

C++ Programming Links

Comments Filter:

Can anyone remember when the times were not hard, and money not scarce?