The first part of “Dynamic C++” article has been published in the ACCU Overload Journal.
On Thursday, May 16 2013, there will be two POCO-related presentations at the
C++ Now conference in Aspen, Colorado:
Code is in GitHub repository, stay tuned for slides and videos …
Slides are available on SlideShare
Courtesy of Schalk Cronjé tweet – his notes on the ACCU 2013 Dynamic C++ presentation:
Dynamic C++ in a nutshell
On April 11 2013, at the ACCU 2013 conference in Bristol (UK), a 90 minute “Dynamic C++” tutorial will be presented:
Data from external sources comes in diverse types and brings along the need for datatype conversion. How can a C++ programmer accurately and efficiently transfer data from relational or XML database to JSON or HTML without stumbling over the C++ type checking mechanism? The answer is by using type erasure techniques; session will enumerate, explore and compare the most popular C++ type erasure solutions.
Given the above problem as well as both historical (ANSI C union and void*, MS COM Variant, boost::[variant, any, lexical_cast]) and recent (boost::type_erasure, Facebook folly::dynamic) development trends (including pending boost::any C++ standard proposal), it is obvious that there is a need for a way around the static nature of C++ language. There is also more than one solution to this problem; session will explore the internals of boost::[variant, any, type_erasure], folly::dynamic and Poco::Dynamic. Design, capabilities as well as pros and cons of each solution will be examined. Performance benchmark comparisons will be reviewed as well.
Type safety is an important feature of C++; type erasure is a necessary technique for modern software development. Session examines and compares existing solutions to these important concerns.
Stop by if you happen to be in the area or attending the conference.
Friday, November 2, 2012 12:45pm (U.S. Pacific Time)
This talk will give an update on recent progress and near-future directions for C++, both at Microsoft and across the industry, with some announcements of interest in both areas. The speaker is the lead language architect of Visual C++ and chair of the ISO C++ committee.
UPDATE (Nov 4 2012): It turns out 1.5 release was just in time for the front page.
After talk interview
It’s official! C++ now has it’s own “Marketing Department” and a reliable place to go learn about the language, where is it going and what’s happening around it.
According to isoccp.org About page, goals are:
1) To promote dissemination of correct and up-to-date information about modern C++.
2) To promote greater availability of high-quality C++ libraries, including both standard libraries (by reducing barriers to submitting and adopting libraries in Standard C++ itself) and community libraries (by having an organized, and ideally tool-supported, way for C++ developers to discover and use libraries).
To stay in tune with your favorite language, make sure to bookmark the above web site and visit often.
The Code Camp 2012 “Dynamic C++” presentation went really well. There was 40+ attendees and lots of participation, discussion, interesting questions and suggestions. Slides are here.
Thanks a lot to everyone who attended and helped with this event.
EDIT: Code from the presentation is also available now.
I will speak at the Silicon Valley Code Camp (Oct 6-7 @ Foothill College in Los Altos, CA).
The title of the speech is “Dynamic C++”; here is the description:
The C++ static type system is beneficial in many ways; it can, however, also be a straitjacket. Is there a rationale for dynamic type layer on top of a statically typed language like C++? Given both historical (ANSI C union and void*, Microsoft COM Variant, boost::[variant, any, lexical_cast]) and recent (boost::type_erasure, Facebook folly::dynamic) development trends, the answer is a resounding “yes”.
This presentation is based on Poco::Dynamic::Var (aka Poco::DynamicAny) – a dynamic-typing set of C++ classes; furthermore, it will show the simplicity and practical advantages of mapping ad-hoc generated data sets of unknown type, size, and structure to C++ data structures. Specifically, the presentation demonstrates how to:
- Execute a generic “SELECT * FROM Table”;
- Dynamically map returned data (row/column count and types) to C++ data structures at runtime;
- Format the result as [XML, JSON, HTML, your-favorite-data-format-here];
- Stream the resulting formatted string to std::ostream compliant HTTP socket stream.
Surely, this must be very complicated to do in C++, right? Not at all – we’ll demonstrate all of the above done with a single line of code and then peek under the hood to see where/how does the magic happen. Portable? Of course. Scalable? You bet – it’s C++! The content of this presentation fits perfectly into modern AJAXian trends and we’ll prove it with an ExtJS example; it prompts re-thinking of the rationale for (a) employing dynamic languages on the server side or (b) polluting HTML with server-side code.
If you are in the neighborhood or interested enough to travel, register online (it’s free) and stop by for some good time and interesting presentations/discussions. Also, if interested in my speech, indicate it on the Code Camp website so I can gauge what audience size to expect. See you there!
I will give a talk titled “An Introduction to The POCO C++ Libraries” on Wednesday, August 8, at the monthly ACCU USA meeting. It will be at the Symantec VCAFE Building, 350 Ellis Street in Mountain View, CA. Doors will be open at 6:30pm, the talk will start at 7:00pm. Attendance is open to all and free. See you there!
There will be an informal meeting of POCO users and contributors in the San Francisco Bay Area on Friday, August 31, 2:00-6:00pm. We will meet at Plug and Play Tech Center in Sunnyvale, CA (440 N. Wolfe Rd). There will be a few presentations by Alex and me, as well as plenty of time for socializing and discussions. We’ll provide drinks and snacks. If you’d like to present something yourself, please let me know (email guenter at pocoproject.org or write a comment). I’ll post an agenda a few days before the event.
Please register at the event’s Eventbrite page if you’d like to join us. And yes, it’s free!