Blunder Dome Sighting

Professor von Clueless in the Blunder Dome

status 
 
privacy 
 
about 
contact 

Hangout for experimental confirmation and demonstration of software, computing, and networking. The exercises don't always work out. The professor is a bumbler and the laboratory assistant is a skanky dufus.

This page is powered by Blogger. Isn't yours?

Recent Items
 
Agile Builds: Making a Bad Idea Efficient?
 
Patterns: Starting in the Meta-Middle
 
Without Context, Every Open-Format Standard Is the Best
 
Second-Guessing Microsoft on ECMA: Shape-Shifting the ODF
 
Lining Up Open Formats for Office Documents
 
Open Standards are not Open Source
 
Steve McConnell Beyond Myths of Rapid Development
 
The Distraction of User Personas?
 
Magical Thinking and the Universal Document Elixir
 
My FUD is FUDDier than your FUD, so FUD this!

Archives
2004-06-13
2004-06-20
2004-06-27
2004-08-29
2004-09-05
2004-09-12
2004-09-19
2004-10-10
2004-10-24
2004-11-07
2004-11-28
2004-12-05
2004-12-12
2004-12-26
2005-01-30
2005-02-06
2005-03-06
2005-03-13
2005-03-20
2005-04-03
2005-04-10
2005-04-17
2005-04-24
2005-05-01
2005-05-08
2005-05-15
2005-05-29
2005-06-05
2005-06-12
2005-06-19
2005-06-26
2005-07-10
2005-07-17
2005-07-31
2005-08-28
2005-10-09
2005-10-16
2005-10-23
2005-11-13
2005-11-27
2005-12-04
2005-12-18
2006-01-08
2006-02-05
2006-02-12
2006-02-19
2006-03-05
2006-03-12
2006-03-26
2006-04-23
2006-04-30
2006-07-16
2006-07-30
2006-08-06
2006-09-03

Thursday, January 12, 2006

To Express or Not To Express: Choosing a C/C++ Compiler

I have a small dilemma.  I thought Visual C++ Toolkit 2003 was a great choice for a development effort that I want to allow the greatest number of interested parties (whoever the four of them are) to partake of.

But time has passed and I am now torn between sticking with the Visual C++ Toolkit compiler that people can obtain for free and the Visual C++ 2005 Express Edition that people can obtain for free at least until November 2006.  I want to go to the Express Edition, but it requires more capacity and has more baggage, as useful as that might be for other projects, and I am concerned about that.

If you think I’m making a mistake going to avoiding the heavier-weight but latest and more-functional Express Edition, let me know.  Quickly.  Comment here or drop a note on the and I'll consider it in how I introduce VC++ Express Edition as an optional IDE and build environment.

{tags: What Programmers Know programming languages computer science education learning programming conceptual models orcmid}

[update 2006-04–25T16:29Z: Now that the Visual Studio 2005 Express Editions are to be permanently available for free download, Microsoft is no longer offering downloads of the Visual C++ Toolkit 2003 edition.  I now have no choice but to work with the Express Edition.  That makes documentation and demonstrations easier, although there is a larger footprint and requirement for greater PC capability with the Express Editions.  So be it.]

[update 2006-03-18T17:18Z: After hand-wringing way too long over this, I have taken the side-by-side option.  I will be using Toolkit 2003 for all reproducible builds and the making of distributions for my educational and other simple projects.  I didn’t receive any feedback on my quandary and I am going for traveling light and simple.  Also, my observations of the struggles people have with the Visual C++ 2005 Express Edition leads me to want simpler approaches that don’t have so many pitfalls for beginners, as mentioned here.  I can’t use C# for ActiveODMA (yet), but I do recommend it for beginners who want a gentle, well-paved introduction into development for Microsoft Windows.  There will be more posts about this, but I wanted to place a marker on this one right away.]

[update 2006-01-13T18:45Z: Added e-mail link and mentioned the prospect of having Toolkit 2003 and 2005 Express Edition side-by-side under 4.4 below]


1. The Problem I wanted to Solve

1.1 Why is this a concern?  I want to use a build process that anyone can duplicate at little or no cost apart from having a reasonable developer-grade computer.  This means that (with a little help getting around a problem with time stamps) anyone could confirm that a built deliverable was indeed constructed from specific source code using the specific tools.

1.2 You can choose your own tools.  Where this confirmation exercise is not of concern, you could use any tools you prefer that are compatible with the level of C/C++ used in the project and able to create programs for the Microsoft Windows platform.  You can use just the minimal set I am standardizing on, or use it just for build confirmations.  In terms of distributed code, I will stick to a light-weight source code and build packaging that requires only freely-available tools.

1.3 We’re talking about relatively-small projects.   Building the programs that are involved in my project won’t require much sophistication, probably not even a make utility, for command-line compiling and testing.  I will definitely not be distributing Visual Studio project files and related baggage.  It will be easy enough to create your own if VS is your preferred development environment.

2. About Visual C++ Toolkit 2003

2.1 I downloaded and adopted the Toolkit compiler in March 2003. I find that it works just fine.  I had to do a little work to operate under least-privilege with it, but that is now a repeatable install that I can make any time.

2.2 At the Standard C/C++ and simple Windows DLL construction level, the command-line Toolkit 2003 works just fine for what I'll be doing in the near future.

2.3 There's no IDE with Toolkit 2003, but that's not needed anyhow for simple command-line builds and recompiles. To work with source code, you'll want a good text editor, some sort of source-code control, and more utilities. There are free resources for that. There's no nmake and other well-known tools in the Toolkit 2003 package. It looks like there is enough more in the Platform SDK April 2005 edition.

2.4 In short, the Toolkit is close enough to lean and mean, but there’s not much future in it beyond the simple projects I’ll be doing for now.

3. About Visual C++ 2005 Express Edition

3.1 Big Download.  I downloaded the full CD-ROM image of the toolkit and made an install disk. Having done that, this is more work, but now I can always re-install it as needed (as with the Toolkit 2003 that I downloaded and backed-up to CD-ROM). This is a lot bigger package than with Toolkit 2003, even without installing SQL Server 2005 Express.

3.2 Command-Line is Fine. The compiler can be used at the command line the same way as for the Toolkit 2003 compiler. However, there are more tools included in the package (nmake and lib come to mind) along with the ones that are part of the Platform SDK April 2005 edition.

3.3 One-Stop Shopping for IDE.  The Express Edition provides a reduced-capability Visual Studio IDE and an extensive MSDN Help for use and for reference.

3.4 Overkill Only for Now.  The Visual C++ 2005 Express Edition is a bit of overkill for what I think of as a minimalist approach, but it will probably be available longer.  It provides a segue into .NET managed-application development, and has the full ECMA C++/CLI extensions for seamless working with .NET Framework 2.0 and managed code.  That’s a big deal for those who want to blend into the .NET world.

3.5 Windows Apps Still Not That Easy.  To develop non-.NET standard Windows Applications (rather than console applications and non-interactive DLLs) it takes a fair amount more work to install and use the Platform SDK with either compiler, though there is an edge for Express Edition once you get the hang of how to get Windows Application projects to compile.

3.6 Oh, one other thing. The include files, even for command-line work, are more complicated and tricky in the Express Edition than with Toolkit 2003.  That’s usually not a concern except I have a serious interest in reducing the dependency surface of software, and it will take more work to figure out what is going on as the big library ball-of-mud expands unchecked.  Unfortunately, the later libraries are also  more standards-compliant and have additional support for creating safer code (avoiding buffer over-run exposures and the like).

3.7 More hard drive please.  Finally, to use VC++ 2005 Express Edition you'll need lots of hard drive capacity and a fairly fast processor. There is also a lot of disk overhead in the VS Project structure and housekeeping files for what are pretty small projects.

4. Now What?

4.1 I I want to choose VC++ 2005 Express Edition. My greatest concern is that it presents a substantial requirement for storage (700MB+) and speed to install and use it its IDE functionality. For just building the code, VC++ Toolkit 2003 (30MB+) is good enough, although the additional Platform SDK (300MB+) is required for either choice.

4.2 There seems to be a more lively development community and on-line resources around the Express Edition, and I expect that will increase.  That’s a big factor in my thinking.

4.3 Unless I learn I’m excluding any players from use of my source-code projects by using the heavier package from the get-go, I’m going to adopt the Express Edition as the reference for reproducible construction of the software.

4.4 The Best of Both?  Another prospect is having Visual C++ Toolkit 2003 and Visual C++ 2005 Express Edition side-by-side.  They install on the same computer without collision or conflict and a single Platform SDK installation can be used with development for both.  There are also ways to use the Express Edition IDE as an editor for projects that use either compiler.  This is a bit ball-of-muddish itself, except the experience of working it out is valuable for learning what other things that can be done using the Express Edition as a harness.  The key, for me, is getting source-control integration.  Meanwhile, the polls are still open.  Should I simply dump the Toolkit 2003 or should I stick with it?  Well, I am going to stick with the Toolkit and delay introduction of VC++ editions until I can set a proper foundation.  Comment are always welcome in helping me choose what urgency to give to that.  My side-by-side decision has been pre-empted by withdrawal of the Toolkit and continuing free availability of the Express Edition.  I will now concentrate all of my efforts on VC++ 2005 Express Edition, this time getting it done well before there is yet-another Visual Studio Release.

 

 
Comments: Post a Comment
 
Construction Zone (Hard Hat Area) You are navigating the Blunder Dome

template created 2004-06-17-20:01 -0700 (pdt) by orcmid
$$Author: Orcmid $
$$Date: 06-03-12 15:52 $
$$Revision: 18 $

Home