[Development] CppCon Just Ended (next year will be 20-25 Sep 2015)

charleyb123 . charleyb123 at gmail.com
Sun Sep 14 18:43:07 CEST 2014


Just got back from CppCon (http://cppcon.org/), WOW what a great conference
for C++.

Apologies for cross-post qt-interest and qt-dev, but wanted to be sure both
groups saw the announcement for next year (20-25 Sep-2015).

WOW AGAIN for a great conference.  Really heavy-hitters there, with
information I don't know is available elsewhere.  For example:

*- Google C++ code base is 100 million lines, is managed as a single code
base serving many projects, and they don't use exceptions in it anywhere.
 Techniques on managing code base are impressive.

*- Similarly (from other presentations) lots of code bases don't/can't use
exceptions, and this is not a, "solved problem" (especially for the game
industry)

*- Facebook (Andrei Alexandrescu) "cheats" with "stealing bits" from their
implementation of a "shared-pointer" to "steal-bits" for the
"object-count", with the understanding that the count rarely goes above
"4".  Correctness is sacrificed to increase performance 0.4%, which is a
"huge win" for server load and electricity (saves $millions a month).
 "Leak, Log, and Leave" is what they do for the uncommon correctness
failure-case.

*- Empty constructors and empty destructors when "inlined" are not "free",
and in large code bases can have significant cost.  Optimizations are not
intutive, and must be measured.  (Facebook)

*- Microsoft compiler team, library team, STL team was represented.  Really
fantastic talks, and these guys are smart.  If you had any concerns about
the toolchain, they are absolutely going in a clear and strong direction.
 (My biased recommendation for us is to move off our reference compiler of
MSVC2008 to MSVC2013, and then move asap to the next compiler (probably
released early next year) to make it our "reference-compiler" for an
extended period of time (I am not concerned about "early adoption" on this
next compiler, and I _do_ want the new language features).

*- Lots of Clang goodness -- have a look at Clang Format and Clang
MemorySanitizer.

*- Great talks by Intel on concurrency/parallelism, interfacing with
hardware, etc.  Other HW vendors there too like IBM, panel discussions on
issues, etc.  It's increasingly obvious that C++ developers need to have
greater understanding of hardware architectures to create well-engineered
designs that take advantage of all the cores and caches.

*- Tremendous consistency in low-level talks on coding to consider the
instruction-cache, L1 and L2 caches, other memory issues related to
performance.  General/common knowledge:  Let your data structures take
advantage of understanding that fitting inside 64-byte units is a Big Win
for cache optimization, consider data layout for word-alignment, and
consider allowing array-processing of raw contiguous data.  Also, using
"std::vector<>" will never get you in trouble, many other
"std::container<>" things can often get you in trouble.

*- Game industry had strong presence, including a keynote by Mike Acton
(InsomniacGames) on, "Data Oriented Design".  GREAT example of engineering
in the face of hardware constraints, seemed similar to an approach of
"OO-using-C" (but using C++), talked about failed C++ design approaches for
games.  REALLY made a lot of the audience uncomfortable (you've got to
watch the video when it posts -- it will become a classic, was really a
"punch in the gut" for some people), but I thought it was one of the
highlights of the week (there were so many), and he wasn't wrong.

*- Some wickedly serious template metaprogramming techniques, including new
ones now possible through C++14, including expressing previous
meta-programming approaches with much greater elegance/readability and less
work.  IMHO there is a strong place for this, especially inside libraries.

*- It is estimated 3-4M C++ developers exist in the world (Google has 4K
C++ developers).  Tech book sales were down 3% over the past year, but C++
book sales were up 4% (C++ is growing in adoption).

*- C++ language standard is maturing in a non-trivial and deliberate way
through the Standard C++ Foundation (http://isocpp.org/) , especially for
more parallel/concurrent, and more intimate interface with hardware.  It
really is driven by the community -- you write a paper (proposal) so they
can review it, and it may eventually get codified into the language or
standard library.  They are always looking for people to review or write
papers, or work in any of the working groups.  Anyone can attend, members
can vote.  Especially when compared with what other programming languages
do for their standardization and evolution, the Standard C++ Foundation
IMHO really represents a great place for the community to substantively
address real-world issues (it is a tremendous asset to our community).

This is just a subset, because I could not attend all talks.  All talks
were professionally recorded, and will be posted online (for free).  Watch
them.

CLOSING REMARKS

This was a "first-year" conference, and it was a huge success (about 600
people, it exceeded their goals).  There is a strong possibility that it
will double in size for next year, and they have a venue that can handle
that.

It was tough to get your talk accepted -- so many submissions, I'd guess
the acceptance was 1:3 or 1:4 (not sure).  There were many very high
quality submissions that were rejected merely because the tracks were full.

Qt was not really represented.  That is understandable because there was SO
MUCH other C++ there, and these dates were "in-conflict" with QtDevDays and
KDE/Akademy, but I really think we need to, "come out in force" next year.
 We are a C++ library and framework, solving real problems in novel ways
that will benefit this audience.

That's not to say, of course, that attendees were unfamiliar with Qt.  They
know Qt, many of them ship Qt.  We just didn't talk about Qt.  I guess in
that respect it was like "Fight Club".

LAST STATEMENT

Even though it was a, "first-year" conference, it is interesting to note
that a "culture" is clearly starting to form.  It was incredibly open, and
collegiate, and supportive across the different industries and companies --
for newcomers and for experienced people (although it is most definitely a
place where experienced people can finally discuss their advanced issues
when they have nobody else at their company to help).

These were incredibly smart people merely coming together to talk about
problems and solutions and experiences in using and growing C++.  I'm going
back again next year (assuming their restraining order against me has
expired by then).

--charley
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20140914/dda11433/attachment.html>


More information about the Development mailing list