The C++ Programming Language - Design & Evolution

C++ Developer

Subscribe to C++ Developer: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get C++ Developer: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Top Stories

In my last article (XML-J, Vol. 1, issue 3) I made the case for using custom classes derived from XML Schemas to represent XML documents in C++ applications. That article focused primarily on the problems of generating XML documents from program objects, and explained how custom classes have significant advantages over standards like DOM and SAX in terms of performance, object orientation and maintainability of source code. Here I'll describe a unique methodology for parsing XML data into C++ classes that provides all the object-oriented benefits detailed in the first article, with increased performance (compared to traditional generic XML parsers). The Problem with Conventional Parsers C++ programmers have been dealing with parsing technologies for years. Most of you remember writing simple language parsers in school, and probably wrote the basic syntax parser in too... (more)

What Is Boost? Boost Your C++ Programming With The Boost Libraries

For C++ programmers all over the world, Boost and the Boost libraries have become indispensable. Weighing in at 60 C++ libraries, Boost is a large collection of peer-reviewed code covering a wide range of domains. But why should you care about that? Well, because Boost can quickly become indispensable for you too. It all started in 1998 when Beman Dawes, a member of the C++ Standards Committee, founded Boost as a proving ground for new C++ libraries. C++ and the C++ Standard Library had just become standardized in ISO/IEC 14882-98, but that didn't mean that the work was done. So a community was formed and right from the start Boost managed to attract luminaries who shared the idea that Open Source C++ libraries were key to the future success of C++ and that they needed to be proven in the field before being proposed for inclusion in the standard. Today the success ... (more)

Taking the Leap - C++ containers vs C# Collections

While moving from C++ to C# means giving up template-based containers, that doesn't mean you can't effectively organize your data. And like C++, C# collections have some unique benefits. The concept of computerized arrays has been around almost as long as computers themselves. It allows a program to deal with large quantities of data almost as simply as dealing with a single unit of data. It underlies almost all sorting algorithms. C++, like most other languages, has built-in language support for arrays. In C++, arrays are always one-dimensional - but you can allocate arrays of arrays to counter that fact. The name of an array is almost always converted into a pointer to its first element, and most array operations work equally well on pointers. For nonrectangular arrays, C++ works equally well with arrays of pointers - allocating and freeing the odd-shaped array ca... (more)

JNI Programming In C/C+

If you're familiar with the Java Native Interface (JNI), as this article presumes, you know that it's tailored primarily for C and C++ programmers. Compile-time support for JNI in these languages comes straight from the Sun specification, and is frankly a work of art. The architects of the JNI had a terrifying three-part task: to tame the hydra of platform-specific issues inherent in so-called "native" code, provide a way to use native code in Java, and to do so in as "portable" a fashion as possible. The ubiquity and standardization of C and C++ made them the natural choices for preferred native languages, and their affinity to Java is apparent to anyone who has programmed to the JNI. If you're familiar with IBM's e(logo)Server iSeries machine, you know it supports a wide range of programming languages, including: C (in several incarnations) C++ (quite recently) RP... (more)

XML for C++ Developers

To newcomers to the XML world, it might seem as if XML and Java are somehow connected at the hip. There are certainly synergies between the two technologies, largely because they've come of age at the same time. Consequently, many of the new developments in XML are first implemented in Java, and we're now seeing new Java developments leveraging the standardization of XML. In the real world, however, most new code is still written in C++ and often involves interaction with existing applications. XML-Enabling Existing Applications Many organizations now face the task of XML-enabling existing applications as quickly as possible. Some of these projects are trying to achieve better application integration, while others are just trying to achieve buzzword compliance. Whatever the motivation, you'll find that most of the information you read in journals and online sources t... (more)

SOA Helps Build C++ Popularity

The software development community may remember 2008 as the year that C++ regained respect as a robust development platform. With the recent shift to multi-core processors and the accelerated adoption of service orientated architecture (SOA) standards like Service Component Architecture (SCA), C++ developers soon will be able to harness significant improvements in performance and integration. While developers often think of developing new applications on Microsoft's .NET or a variety of Java platforms, C++ remains one of the most widely deployed development languages for mission critical applications. The reason for this is simple; C++ continues to be better for many use cases, and software developers want to be able to use the 'right tool for the job.' In addition, because of recent releases of servers leveraging multi-core chips and new developments in SOA, many ... (more)

C++Builder Still Kicking

Embarcadero Technologies has just released a new 64-bit C++Builder solution - a linear descendent of Borland's C++ Builder created more than 15 years ago. It's supposed to offer a faster way to create high-performance native Windows 8 and Mac OS X PC and laptop applications as well as Intel-based mobile apps from a single C++ codebase, helping developers clear the hurdle of building apps for multiple platforms without compromising on performance or user experience. Given the recent diversification of client devices it'll get even more useful next year when it supports iOS (using Delphi) and then Android ARM mobile devices too. Later it'll move into cars and TVs. The widgetry saves time and money. C++ of course remains the leading development language across all operating systems. Most of the leading commercial client and server software today is written in C++, stu... (more)

SCO Another Inch Closer to Trial

C++ Developer The Utah district court, Judge Ted Stewart, a new face, presiding, has set November 23 for a status conference in the matter of SCO v Novell, the case over who owns Unix that the appeals court sent back to be heard by a jury. Novell is expected to do what it can to delay the case from getting on the docket. It could ask for a stay because it wants to appeal to the Supreme Court, a motion it made to the 10th Circuit Court of Appeals in Denver and got turned down so fast heads are still spinning. It could also try for a stay pending arbitration in Switzerland over what, if anything, gave to United Linux, the consortium that briefly tried to create a common Linux code base. Since it’s right before Thanksgiving maybe one or the other will have something to be grateful for. ... (more)

Netbook Apps SDK Betas

C++ Developer on Ulitzer Intel has put out its promised beta SDK for Windows (C and C++) and Moblin (C) developers working on future Atom-based netbook apps and ports. It can be downloaded at Intel couldn't help but repeat the forecast that netbook units shipped should top 50 million by the end of the year. Intel said that with the beta SDK, developers can submit their applications for validation and, once validated, begin to take advantage of the program's revenue-generating opportunities in 2010 when an app store, pre-installed on netbooks, is supposed to launch. Like Apple, developers will get 70% of the money. Intel is offering incentives for developers to begin submitting applications by offering a chance to win prizes including a smart car or a vacation. Intel expects most applications will be written for Moblin. It also expects ... (more)

C++ Apps Play a Role in Enterprise SOA Strategy

Rogue Wave announced the results of a global survey of software developers to determine the role C++-based applications will play in their future IT plans. Given that service-oriented architecture (SOA) spending is expected to grow 60 percent per year, Rogue Wave conducted the survey to determine how C++ applications figured into SOA migration plans. The survey revealed that while most companies using C++ applications are enthusiastic about the future plans for existing C++ applications, there is no consistent approach to migrating those apps to an SOA. According to the research: Most companies are committed to enhancing  their C++ apps78 percent have no concerns about the long term C++ development strategy63 percent will keep enhancing C++ apps for the long term and 36 percent are integrating with heterogeneous appsWhile one-quarter plan to replace one or more C++ ... (more)