Why POCO

I mean really, why Poco?

Why another framework? And why in C++? Aren’t there enough frameworks around? Hasn’t everything been said and done with C++? Doesn’t everyone know by now that Java is future and C++ is dead (or at least on the deathbed) and C# is even better and … well you know what I’m talking about. Indeed, if one wants to quickly get acquainted with programming, no doubt Java provides shorter and less thorny path. Not that I’m comparing the two, but VB used to do that once upon time. Is it surprising that Java is “succesful”? Not at all – so was MS DOS (see interview w/ A. Stepanov). It’s all marketing. But, as Beverly Sills said, “There are no shortcuts to any place worth going”. Maciej Sobczak puts it well: “I just don’t like when somebody gives me half of the language and tells me that it’s for my own protection”. I happen to strongly agree, although Maciej is an optimist – I see it as withholding half the language from me. And I particularly do not like when somebody owns the language. If anything should be free as speech, it is a programming language. Before I proceed, a note to Java/C# militants out there reaching for their guns: hold your fire – I am well aware of the fact that VM based languages have their place and there are good and bad sides to everything under the sun (no pun intended), C++ included. So, let me straighten things out: C++ is kinda like western type democracy – far from perfect yet the best thing human kind was able to come up with so far.

Now all that being said, back to main thread …

As I occasionally browsed Java code, I couldn’t help but enviously notice the enticing abundance of libraries and code that all had this same “feel” to it and looked tidier than most of C++ (not to mention C) found around. You know what I’m talking about, it gives you that good feeling to see things tidy. But it is a superficial thing, because language is still restrictive – everything has to be object, single object hierarchy tyranny and garbage colection are non-negotiable etc… I thought, heck, there is no reason why C++ code wouldn’t look and feel like this or even better and had such abundance of libraries on top of all the freedom the language offers. Yet, even ACE or Boost, although top-quality well-designed code, could not completely make me happy and convince me to fully commit. Somehow, something did not feel right. Enter Poco. It was one of those things you find and immediately know that’s it – you’ll be able to really use it, and use it with joy and enthusiasm. It was C++. It was well thought-out, well designed and really neat and tidy. (Speaking of tidy, have you ever been in Poco home country Austria – if you have you’ll know what I mean. If you haven’t, go see it – it’s the tidiest place in the world – and I’ve been places.) So, I have found a framework that looked and felt like all that Java stuff, but was full blown standard portable C++ instead. Since I fail to see a significant difference between “write once run anywhere” and “write once compile and run anywhere”, I was sold. I started playing with it, then I started using it for serious work and then contributing to it and I never looked back. Is Poco perfect? No, but it’s the best general-purpose framework known to human kind written in the best general-purpose language known to human kind.

That’s why Poco.