A major feature of RAD Studio XE7 is its Parallel Programming Library. XE7 brings task-based parallelism to a variety of platforms including Windows, OS X, iOS, and Android. Unlike Mono, this tool-chain offers fully native applications on all target platforms.
At CppCon 2014, Herb Sutter gave a talk about lock-free programming in C++ where he provided the fundamental concepts of lock-free programming, and presented three algorithms to show lock-free techniques. Here is a summary of the most relevant points in the talk.
At CppCon 2014, Herb Sutter gave a talk presenting the essential idioms of modern C++ programming. Here is a short summary.
CppDepend is a primarily a source code analyzer, with features geared towards making it easier to understand large code bases with complex interdependencies. In addition, it can integrate with static analyzers. With the introduction of version 5, CppDepend now supports C and C++14.
JetBrains has released CLion EAP, a new IntelliJ-based IDE for C and C++. The IDE comes with Code Completion, Code Generation (for constructors, getters/setters or methods), Intention Actions, Quick Fixes, Refactoring, Project Search and Code Navigation. They also want to bring ReSharper to Visual Studio C++.
C++14, the new C++ standard succeeding C++11, has been finally approved and is heading to ISO for publication this year. While improvements in C++14 are "deliberately tiny" compared to C++11, says C++ creator Bjarne Stroustrup, they still "add significant convenience for users" and are a step on the route to make C++ "more novice friendly."
Streams is a C++14 library that provides lazy evaluation and functional-style transformations on the data, to ease the use of C++ standard library containers and algorithms. Streams support many common functional operations such as map, filter, and reduce. InfoQ interviews Streams' author.
The RakNet networking library used in several projects (including Lego Universe, Unity, and Sony Online) has been acquired and released under a modified BSD license by new owner Oculus. This means the library can now be used in a project without cost, offering numerous powerful features.
Google Play Games services got new features in Events and Quests, and a new Save Game API last month. The C++ and the iOS SDKs are now up-to-date with these features.
Google engineers have recently published a research paper presenting an empirical study of 26.6 million builds produced during a period of nine months by thousands of developers at Google. The paper describes the build workflow, and analyzes failure frequency, compiler error types, and resolution efforts. Such a study, its authors say, can help improve the build process and support to developers.
The Google "Fun Propulsion Labs" team has recently open-sourced FlatBuffers. Built especially to support performance needs of game developers, FlatBuffers stores serialized data in buffers which can be either stored in files or transferred across the network as-is, without any parsing overhead.
Visual Studio "14" Plans Improved C++11/C++14 compliance. As part of the this effort big changes are being made to the Standard Template Library bundled with "14".
C++14, the new C++ standard, will bring a host of changes to the language. Although it is planned to be a small extension over its predecessor, featuring mainly bug fixes and small improvements, it is inevitable that a few changes could make a correct C++11 program break under a C++14-compliant compiler. With the new standard approaching a mature status, it is now worth asking where the risk lies.
Dropbox developers have recently given some talks describing how they support both iOS and Android in their apps without having to recode everything on each platform. Let's review the reasons that led to their approach, the benefits it brings, and some key points learned through the process.
TechEmpower has been running benchmarks for the last year, attempting to measure and compare the performance of web frameworks. For these benchmarks the term “framework” is used loosely including platforms and micro-frameworks.