Earlier this week, I have attended Freescale Technology Forum in Orlando. The trip was well worth it, there is a lot of stuff going on in the microcontroller world. The most remarkable trend is blurring the line between 8-bit and 32-bit world – Freescale now provides hardware and software tools compatibility. A significant trend also is from 8 straight to 32 bit, skipping 16-bit chips altogether. And then, Freescale and IBM are back in bed on Power architecture. From the operating system point of view – there were numerous RTOS vendors present offering microkernel (of which I am a fan, btw) products, but Linux seems to be ubiquitous (and pushed by Freescale, too). I think we’ll see the history repeated once again (Betamax, TokenRing, Amiga anyone?) – Linux will win. Not because it is best, but because it is good enough (sigh), vendor neutral and open.
Now where does C++ fit into this picture? In Orlando, I’ve heard a little bit about C++ – and nothing about Java, thankfully – QNX and Trolltech were there. One comment (by a uCLinux guy) stung me: “C++ is a memory hog”. I refrained from an exchange of opinions because it would most likely be counter productive – from an 8-bit, memory constrained MMU-less perspective, C++ as a hog may be a valid opinion. But 8-bit is headed toward history, even in microcontroller world. And C++ will thrive in the embedded world for the same reason it has thrived elsewhere – higher level of abstraction (meaning more design power) at minimum (often zero) performance price and compatibility with C.
The highlight of the conference was definitely the closing session speech. They brought in a living legend – Neil Armstrong. I was 4 years old when the man made the step and I do remember it. Engineer to the bone and a very humble human being, he gave an inspiring and motivating speech sprinkled with a good dose of humor. My favorite was the description of how, on their journey to the Moon, they were regularly called from the Earth in a following manner: “Hello Apollo 11, this is Houston.”.
“I could never figure out why they kept on saying that.” – he said – “I mean, who else could it be?”
I have updated the Coding Styleguide. Not much has changed, content wise, but the whole thing should be a bit clearer now. Thanks Alex for your remarks.
I recently stumbled across the Joint Strike Fighter Air Vehicle C++ Coding Standards, which have recently been declassified and made available to the public. Might be an interesting read, although it has a whopping 141 pages (including one that has been intentionally left blank).
The POCO Community Wiki is now open and ready for your contributions.
Also available are various Forums and answers to frequently asked questions (more are coming soon…).
Please help fill the site with some life!
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.
The POCO project was started in 2004 by Günter Obiltschnig. In the following years he was joined by developers from Applied Informatics and the open source community. Günter has been a fan of the open source model for many years. This led to the decision to make POCO available for free, under the Boost license.
So go ahead, download POCO, have fun with it and give us a couple of minutes and let us know how you are doing. That’s your contribution to the ongoing development of POCO. Thank you for being part of it.
Don’t hesitate to get in touch with us if you have any questions or you like to contribute to the project.