The move to managed code…

style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I just got forwarded this article
which I bet was written in the early 1990s on the move from C to C++. style="mso-spacerun: yes">  href="">Migrating
From C to C++.  Just reading the
introduction it is amazing the parallels to the migration we are now in to
managed code.  Does anyone remember
those debates? How about the assembler to C debates? style="mso-spacerun: yes">  I would love to collect a few colorful
stories to tell as I describe the move to managed code. o ns = "urn:schemas-microsoft-com:office:office" />

style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> 

style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Is there something unique and
special about this transition or is it really all in the same vain? style="mso-spacerun: yes"> 

style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> 

style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">BTW – the author of the paper,
/>Jan Gray, now works on making
managed code even faster… Catch him doing a perf talk at the PDC, you will not
want to miss it.

Comments (3)

  1. Frank Hileman says:

    Migrating to managed code is not as big a transition as the transition from structured to OO programming. Most C++ people moving to C# welcome the loss of managed pointers and memory management, as well as tracking down corrupted heaps. Most of their favorite features are there, except MI and templates.

    I was involved in the "battle" for OOP back in the days when many thought it was a waste of time. This was in fact before C++ was stable or popular. I worked at a company that had something like an Objective-C preprocessor with K&R C, starting in 1986. Later I worked with developers that had never done OOP before. Instead of repeating OO "dogma", I found it most effective to demonstrate exactly how using OO concepts would save people time, on an individual basis.

    For structured programmers, the most convincing argument was encapsulation, not polymorphism or inheritance. It is easy to see how encapsulation keeps all references to a piece of data in one spot, simplifying maintenance. Polymorphism was a harder sell; just showing how it replaces switch statements, or conditionals, was not enough. And structured programmers could reuse code without inheritance, so I would show how inheritance reuses code with less lines.

    Both encapsulation and code reuse were considered good structured programming practices already, so I could appeal to "good taste". In the end everyone saw clearly how it could simplify life, and they all found OOP appealing. If I had hit people with a bunch of over-engineered Java code full of unnecessary design patterns, they would have run away from OOP as fast as possible, and I would not blame them.

  2. Jan Gray says:

    Thanks, Brad, for the plug for my PDC talk, Tips and Tricks for Writing Faster Managed Code, How To and What’s New.

    I am writing here because I just followed the link to that material at UNH. It is an excerpt, heavily edited down from the original 31 page write-up that accompanied my talk at TechEd 94. At least half of the material has been omitted, in particular, most of the discussion about how to evolve a large C code base into C++ that you thought were noteworthy, including: Choices (Don’t bother, keep in C; Recompile C into C++ (only); Evolve C into C++; Use existing C code as a library to your new C++ code; Write or call new C++ code as a library to your existing C code; etc.; Using an Application Framework class library; Moving a Traditional C for Windows-based Application into your Application Framework; Case Studies: Mixed C and C++: Incremental Linker’s Debug Info Library; Evolving into C++: C++ Compiler Front End; Evolving into the MFC Application Framework: Visual Workbench Development Environment. For example, missing pages 4-11 belong immediately prior to the section Object-Oriented Programming in the UNH version.

    It is disappointing that an original integral work can be abridged without notice, without even the courtesy of an ellipsis, such that information promised in an introduction mysteriously go AWOL; but I suppose that’s life on the web in 2003.

    I wish I could point you to the original on MSDN; but long ago that "scrolled off" the radar and the TechEd CDs. All those ideas, all those keystrokes, vanished, like teardrops in the rain. Pity.