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)
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)
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)
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)
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)
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)
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
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)
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.
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 http://appdeveloper.intel.com.
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
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
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)