Sometimes enterprise IT development shops that are doing development in Java, C#, VB.NET forget that it all began with C++. Invented in 1981 by Bjarne Stroustrup, C++ was arguably the first popular object-oriented language even though languages like Smalltalk proceeded it. Java was first released by Sun in 1995, fourteen years after C++ was invented.
C++ is alive and kicking as I was reminded by the 300 C++ programmers at the Qt Software Developer Days Conference last week in Redwood City where I gave a keynote on the Future of Application Development. Qt Software, formally named Trolltech before being acquired by Nokia late last year, develops an impressive cross-platform application framework used primarily by C++ programmers. Using Qt, programmers can develop applications and user interfaces once, and deploy them across many desktop and embedded operating systems without rewriting the source code. Qt supports well-known platforms such as Windows, MacOS, Linux, Windows CE, and others.
Why use C++ and Qt?
With all of the other choices in languages and frameworks such as .NET managed code and Java, you may be asking why C++ and Qt? Here is what the overwelmingly loyal developers told me:
- Qt provides an elegant, intuitive approach to a user interface framework. I asked all the developers I could and the unanimous answer is that Qt is designed the way they would design a framework. It is intuitive to use and has great documentation.
- If it has to be as fast as possible, it has to be in C++. C++ is very fast because it is still compiled and linked the old fashioned way. Unlike Java and .NET and scripting languages there is nothing in between. C++ converts to machine code. So for user interface applications that have lots of visualations and graphics speed is paramount.
- Qt is cross-platform. Applications developed in Qt are cross platform. They will run just as well on Windows as on the Mac. Skype is a great example of a cross-platform application developed using Qt.
- Embedded applications usually have less memory and power. The efficiency of C++ and Qt on embedded or mobile platforms is an advantage because many of these devices need every ounce of performance they can get out of smaller embedded processors.
C++ and Qt is a good choice if your application needs to be cross-platform and high-performance.
Some cool applications using C++ and Qt
- High End Systems developers entertainment lighting for shows and concerts. High End Systems develops the lighting systems used by large shows such as the 2008 Summer Olympics and U2 rock concerts. Their lighting consoles need to support very custom user interfaces and need to support software updates that will still perform on older equipment.
- Dash Express is an internet connected real-time traffic routing device. Dash Express is a GPS device that is also internet connect while you are driving. It reports traffic in real-time and can provide real-time routing. The Dash had to develop a simple user interface and cram all of that on a small device that mounts on the dashboard of a car.
So when you are developing web applications in Java or C#, pause every now and again to remember their roots. And, if you want to do some cool work on embedded devices consider picking up C++; there are plenty of jobs available.