<div dir="ltr"><div>Just got back from CppCon (<a href="http://cppcon.org/">http://cppcon.org/</a>), WOW what a great conference for C++.</div><div><br></div>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).<div><br></div><div>WOW AGAIN for a great conference.  Really heavy-hitters there, with information I don't know is available elsewhere.  For example:</div><div><br></div><div>*- 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.</div><div><br></div><div>*- 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)</div><div><br></div><div>*- 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.</div><div><br></div><div>*- 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)</div><div><br></div><div>*- 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).</div><div><br></div><div>*- Lots of Clang goodness -- have a look at Clang Format and Clang MemorySanitizer.</div><div><br></div><div>*- 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.</div><div><br></div><div>*- 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.</div><div><br></div><div>*- 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.</div><div><br></div><div>*- 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.</div><div><br></div><div>*- 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).</div><div><br></div><div>*- C++ language standard is maturing in a non-trivial and deliberate way through the Standard C++ Foundation (<a href="http://isocpp.org/">http://isocpp.org/</a>) , 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).</div><div><br></div><div>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.</div><div><br></div><div>CLOSING REMARKS </div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>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".</div><div><br></div><div>LAST STATEMENT</div><div><br></div><div>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).</div><div><br></div><div>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).</div><div><br></div><div>--charley</div><div><br></div><div><br></div></div>