Multi-Device C++ is used everywhere on planet Earth and beyond!
C++ is used in major operating systems including:
- Microsoft Windows
- Linux
- Apple Mac OS X
- Apple iOS
- Solaris
- HP-UX
- Google Chrome OS
- Google Android
- Blackberry OS
![]() |
C++ is used in Major Enterprise Databases including:
- Oracle
- MySQL
- IBM DB2
- Microsoft SQL Server
- Informix
C++ is used to build many of the most popular application software programs and Internet sites including (just to name a very small number):
- Microsoft Office
- Open Office
- Adobe Photoshop
- Autodesk Maya
- World of Warcraft
- Mozilla Firefox
- Intuit Quicken
- Halo 3
- PayPal
- Amazon.com
- NASA/JPL Mars Rover
- The International Space Station - including "World Map (word document)" written in C++Builder
- The CERN Large Hadron Collider
C++ is used in "Hard" real-time systems:
For building "Hard" Real-Time Systems, Bjarne, in the CodeRage 7 C++ conversation, said that for these types of critical applications, "every operation has to be predictable". In C++ everything is predictable with exception of the following:
- New
- Delete
- Throw
- dynamic_cast
How can you guarantee that code gets to a handler within a defined/short period of time? Bjarne said, "there is no guarantee in the C++ language". Bjarne said, "what is needed is a tool to analyze the throw paths to determine an upper bound for handling time." On Bjarne’s website there is a paper (pdf format) that can help developers who are building life, mission, business critical systems, "Practical and Verifiable C++ Dynamic Cast for Hard Real Time Systems", http://www.stroustrup.com/fdc_jcse.pdf.
C++ is used in the Joint Strike Fighter. You can read the "JOINT STRIKE FIGHTER AIR VEHICLE C++ CODING STANDARDS FOR THE SYSTEM DEVELOPMENT AND DEMONSTRATION PROGRAM, Document Number 2RDU00001 Rev C, December 2005" document at http://www.stroustrup.com/JSF-AV-rules.pdf. The document provides guidance for C++ programmers "that will enable them to employ good programming style and proven programming practices leading to safe, reliable, testable, and maintainable code. Consequently, the rules contained in this document are required for Air Vehicle C++ development and recommended for non-Air Vehicle C++ development." I believe that this document provides great advice for all C++ systems and application developers.
C++ is used to build Infrastructure Software
In an IEEE Computer Magazine January 2012 article, "Software Development for Infrastructure", Bjarne Stroustrup writes "Infrastructure software needs more stringent correctness, reliability, efficiency, and maintainability requirements than nonessential applications. This implies greater emphasis on up-front design, static structure enforced by a type system, compact data structures, simplified code structure, and improved tool support. Education for infrastructure and application developers should differ to reflect that emphasis." In the article, C++ code examples are used to highlight best practice programming techniques including:
- Compute Less
- Access Memory Less
- Practice type-rich Programming
- Use Libraries
- Prefer highly structured code
C++Builder XE3 — Multi-Device C++ Development
The list of multi-device C++ goes on and on. For ISVs and Enterprises the #1 application development challenge today is supporting the growing heterogeneous mix of client devices, UI approaches, OS versions, and emerging form factors. With traditional development approaches, for every new platform supported, a whole new team is required to create and manage a separate codebase. This approach multiplies your costs and time to market with each addition. To turn this mounting challenge into a competitive advantage developers need an edge, a way to virtually replicate their R&D staff several times over. C++Builder is the only native multi-device development solution for targeting desktops, laptops, Slates and tablets including Surface Pro. And coming in 2013, iOS and Android*. Embarcadero C++Builder XE3 enables C++ developers to easily target desktops, laptops, Slates and tablets including Surface Pro with a single C++ codebase.
Additional Lists of Systems and Applications built with C++
- Bjarne Stroustrup's C++ applications page - http://www.stroustrup.com/applications.html
- Vincent Lextrait's The Programming Languages Beacon - http://www.lextrait.com/Vincent/implementations.html
- Github repositories for C++ projects - https://github.com/search?l=C%2B%2B&q=C%2B%2B&ref=simplesearch&type=Repositories
- Source Forge C++ projects search - http://sourceforge.net/directory/?q=C%2B%2B
- Google Code C++ project search - https://code.google.com/hosting/search?q=C%2B%2B&projectsearch=Search+projects
- Code.Nasa.Gov open source C++ software - http://code.nasa.gov/language/c-2/
Where do you find C++ being used?
Post a comment with your favorite systems and applications that are built using C++. Post links to cool sites that are built using C++.


Comments
-
Vijay Rao Thursday, 28 February 2013
Just browsing through JSV-AV-rules.pdf;
AV Rule 57
The public, protected, and private sections of a class will be declared in that order...
This attests to a misunderstanding of how declaration order affects initialization/definition order. It may be a general modus operandi, but it certainly cannot be a rule.
AV Rule 113
(MISRA Rule 82, Revised)
Functions will have a single exit point.
This is exactly what a former co-worker, ex-Lockheed employee said to me. The same co-worker who thought it was fine to construct zombie-objects where the class' invariant was (re)checked in every member function. The same co-worker who did not use exceptions and accordingly did not clean up stuff in the dtr. The rule is mandatory for strictly imperative languages but is a nuisance for C++. Rather than include the exception to this rule, the rule itself should be inverted to "Maintain your invariants using destructors (combined with constructors) and only if the invariant is maintained through imperative language constructs, ensure that your functions have a single point of return and catch (...) or else don't use any code which may generate exceptions". This rule in its current incarnation disregards exception safety.
There's more but I'm done for now. -
Steve Saturday, 2 March 2013
Oh yeah and I forgot the links:
KDE Plasma desktop: http://www.kde.org/workspaces/
KDE Software: http://www.kde.org/applications/ -
Multi-Device C++ is used everywhere on planet Earth and beyond | My Daily Feeds Saturday, 2 March 2013
[...] Hacker News http://blogs.embarcadero.com/davidi/2013/02/26/42586 Tweet#call_to_action h4{padding:0px 5px;} This entry was posted in Uncategorized by admin. [...]
-
Agree with your comments and enthusiasm for C++, but it all begs the question of why Embarcadero (and Borland/Inprise before it) always make C++Builder the poor cousin of Delphi when it comes to new releases. It has always been thus.
You guys could have absolutely OWNED the C++ space, and also totally OWNED the cross-platform mobile space, but by focusing on propping up a language which is fading (Delphi) you've missed a huge opportunity. I implored Borland back in the late 90’s to port C++ VCL to WinCE but there was no interest – yet that would have bought into the very start of the mobile market and you'd have grown astronomically with it.
C++ has also been the poorer for it because without consistent cross-platform RAD tools it has fragmented into Java, C#, Objective-C.
I look forward to the promised (but delayed) C++Builder ability to natively code for iOS and Android, but also hope that Embarcadero will keep their eye on the ball and focus on C++ as the main game.
Delphi is becoming a footnote in history and I'd be disappointed to see C++Builder and Embarcadero end up that way too.
Speaking of footnotes, your comment about C++Builder doing iOS and Android in 2013 has an asterix (*) next to it – but this is not explained anywhere… more caveats about when it ‘may’ be delivered?
On C++. Why is it not possible to get the address of the address of a reference (since it is just a dereferenced pointer in any case). Has this been fixed in C++11?
Thanks again for your article. I know Embarcadero is trying to move in the right direction. -
stereomatching Tuesday, 8 October 2013
About Multi-Device C++ Development, maybe you forget to mention Qt5?Although Qt5.2 haven't released yet, but it promise to provide us ability to develop native c++ apps which could cross windows, mac, linux, android, ios and blackberry.Besides,Qt5 is free and open source, I think it is not a bad idea to introduce this good library.
-
Please login first in order for you to submit comments
- Page :
- 1
Nice post against Delphi/Pascal ;-)