The POCO C++ Libraries Blog

POCO Usage Survey – Results

Filed under: Development by guenter at 22:01

After having it open for 20 days, I have closed our POCO Usage survey today. We’ve collected 53 responses in total which is not really that much but at least something to work with. So, without further ado, here are the results:

Question 1: Which POCO libraries are you currently using in your project?

We clearly see Foundation, Net and Util being the most popular libraries.



Question 2: Which POCO version are you using?

Release 1.6.0 dominates with over 50 %, followed by 1.4.7 and 1.6.0.



Question 3: What platforms are you using POCO on?

Linux (79 %) narrowly beats Windows (~70 %), followed by OS X. We also have Android, iOS and Embedded Linux.



Question 4: Which compilers are you using with POCO?

The POCO user community prefers current compiler versions. On Windows, Visual Studio 2013 dominates followed by Visual Studio 2015. Interestingly, Visual Studio 2010 is used by twice as many as Visual Studio 2012. Regarding GCC, 4.9 and 4.8 are top, as well as Clang/LLVM 3.6.



Question 5: How do you like POCO?

We get a good 1.4 average. Most users find POCO great, one finds it sucks…


Question 6: Please tell us in what kind of project you are using POCO

Here we see everything from games, cross-platform desktop software, big data to different kinds of devices.

Question 7: What feature(s) would you like to see in POCO?

Unsurprisingly, top requests are for better C++11/C++14 support and asynchronous programming (go Alex!). Some people also would like to see better documentation.


For me, there weren’t really any surprises in the answers. It shows that we’re on a good path.
With upcoming release 1.7, we’re starting to move towards full C++11 and C++14 support. Given that most POCO users are on recent compiler versions, I also think we can specify minimum supported compiler versions for 1.7 to Visual Studio 2013, GCC 4.8 and Clang/LLVM 3.6, which will make our way towards C++11/14 much easier. Support for asynchronous programming has been on our roadmap for quite some time now, and if time and resources permit, we may have something coming this fall.

  1. Please make min gcc 4.3 at least for future 1.x series because there are some of us who cannot change the compiler we use. You can bump up the min requirements when 2.x series gets released.

    Comment by DS on August 28, 2015, 03:20

  2. If we want to support C++11/14, which is what most people are looking forward to, we have to make a cut with the past and require compilers with sufficient C++11/14 support. And these are Visual Studio 2013 and GCC 4.8. We will continue to support the 1.6 releases with bugfixes and continue to support GCC 4.3 and similar compilers with that release, but for anything new including 1.7 we’ll move forward. Everything else will lead us to maintenance hell. Also, there will be no big 2.0 release in the near future. We’ll introduce new C++ features gradually over the next couple of releases, keeping everything backwards compatible as good as possible.

    Comment by guenter on August 28, 2015, 21:30

  3. I would like to add my two cents to the requested features:

    1. Improved database access, adding native a SQL Server project, besides ODBC. Improved parameter passing, with more options, including the possibility of passing tables (or similar structures) as parameters.

    2. I use Intel C++ compiler 2016 (which runs inside Visual Studio 2015) and it reports a ‘lot’ of warnings when compiling the Poco solutions. It works well, after compiled, but the warnings give the goose bumps. Some are very scaring, such as data truncation alerts.

    3. I understand that not all users are using Poco with Visual Studio 2015 update 1, as I do, but please keep this solution version in the Poco projects.

    4. Finally, please do include C++ 11/14/17 features to the Poco library, they will be very welcomed, for this will modernize Poco.

    Comment by Eduardo Quintana on December 10, 2015, 12:31

  4. My $0.02 since I missed out on the survey…

    There’s not a lot of sample code for Poco so the barrier to entry is fairly high. Microsoft’s offering in this area, for example, is not nearly as functional and cross-platform, but they have tons of samples & documentation so people seem to be gravitating towards it.

    Here are some of the things I struggled with as a new user, plus some additional functionality that’d be nice.

    1. How to build Poco C++ the way I need to
    I need to build static libraries on iOS, Android, Win32, and Mac OS X. In order to do so I had to manually create my own project files on every platform. Doing so was significantly less-intuitive than it should’ve been.

    2. How to work with Poco::Dynamic structures & objects
    It was very difficult to figure out when to use which data type, when to type convert, and when to extract. The concepts are solid but the lack of examples and concept documentation leads to a lot of experimenting in order to determine what will work in any given context. In my case I do a lot with Poco::JSON and very much could’ve used some guidance with concrete examples.

    3. More Poco::Crypto features
    There are still some things that I must drop down into the OpenSSL SDK to accmoplish. For example, Diffie-Hillman key exchange, SSL pinning, etc. In the near future, SHA2 will become a requirement as well.

    4. More robust OpenSSL support
    Currently our App fails to connect with our Server because Poco doesn’t like the server’s wildcard (“*”) certificate, but it doesn’t indicate why — which would of course help us fix it if the problem’s on our end.

    5. New iOS, tvOS, and watchOS requirements
    I disagree with Apple’s unnecessarily fragmenting their OS like this, but we don’t get much say in the matter. So support for things like bitcode become necessary in all layers of an app.

    Comment by Alf on December 22, 2015, 22:50

RSS RSS feed for comments on this post. TrackBack URI

Leave a comment