Jump to content

Archive for the 'stdcxx' Category

Teaching C++ In Universities

Wednesday, January 16th, 2008

Two New York University professors, Dr. Robert Dewar and Dr. Edmond Schonberg, have written an article in the Journal of Defense Software Engineering about computer science courses neglecting basic skills, in particular in the areas of programming and formal methods.  The professors’ opinions have attracted discussion in places such as Slashdot and other popular Web sites since they have taken particular exception to the recent emphasis on Java in computer science courses.

The professors provide brief overviews of the educational benefits of various programming languages, including C and C++:

    Why C Matters
    C is the low-level language that everyone must know. It can be seen as a portable assembly language, and as such it exposes the underlying machine and forces the student to understand clearly the relationship between software and hardware. Performance analysis is more straightforward, because the cost of every software statement is clear. Finally, compilers (GCC for example) make it easy to examine the generated assembly code, which is an excellent tool for understanding machine language and architecture.
    Why C++ Matters
    C++ brings to C the fundamental concepts of modern software engineering: encapsulation with classes and namespaces, information hiding through protected and private data and operations, programming by extension through virtual methods and derived classes, etc. C++ also pushes storage management as far as it can go without full-blown garbage collection, with constructors and destructors.

What perhaps makes the professors’ opinions more credible is that their concerns are also commercial since they develop software commercially:

    As founders of a company that specializes in Ada programming tools for mission-critical systems, we find it harder to recruit qualified applicants who have the right foundational skills. We want to advocate a more rigorous formation, in which formal methods are introduced early on, and programming languages play a central role in CS education

As the head of Rogue Wave Software’s professional services group, I’ve noticed that many of the younger engineers working in some of our customers are less skilled in C++ than their older colleagues.  While we’re happy to help our customers by filling in the skills gap on projects, it’s still a longer term worry because every programming language needs well educated and skilled developers. Teaching C++ in universities is a topic that I’ve been thinking about for some time. I’m particularly interested in what Rogue Wave can do to help with fundamental C++ skills, like promoting the use of the C++ Standard Library in universities and perhaps looking at the practicalities of making Rogue Wave’s products available for use in computer science courses. 

Standard C++ Library now an Apache Top Level Project

Friday, December 14th, 2007

The new SourcePro release scheduled for launch next week includes the Apache C++ Standard Library (stdcxx), which has recently been promoted to Top Level Project status by the Apache Software Foundation after over two years in incubation (you can read the project history here). Rogue Wave Software is the primary sponsor of this project, which is based on our own standard library. There are many companies with products that have been opened, but few ever achieve the status of being an Apache project. It takes a lot of work to get a project out of incubation and to the status of being a full Apache project.

It’s a big achievement and the primary driver from Rogue Wave Software has been Martin Sebor - congratulations, Martin!