Blogs

The price of freedom is eternal vigilance.

Kevin Barnes has written a nice piece on “freedom” languages, his word for Ruby, Python, Perl, etc. He compares these with “safety” languages, such as C++, C#, Java, VB, Delphi. He starts off by saying “I picked the terms freedom and safety because they represent a philosophical split that I’m not sure some of the advocates of these languages realize is present. You can sense this split when you listen to the words that the various pundits use when discussing the merits of different languages.

More Reprints - CORBA, C++ and Java

I’ve just finished posting some more reprints from back in 2001 when I was working on CORBA systems with C++ and Java. The articles mostly compare CORBA to COM and show why providing a reference counted server object lifetime management system is harder than it appears. 1 - CORBA - Reference Counting. Adding reference counting to CORBA objects isn’t as easy as it first seems. 2 - CORBA - More Reference Counting.

JLR on C++ interfaces

A while ago I came across JLR’s weblog and read his three postings using interfaces in C++ (1, 2, 3). I fired off a quick comment on the first article because I didn’t agree with a couple of things he was saying. Jose’s response to my comment grew into this posting and, well, now I need to explain my position in more detail. This is it… The first point that Jose takes issue with is that I dismiss his use of macros without explaining why.

While Windows lives, it's hard to see how COM will ever die.

This is a nice piece by Tim Anderson on why COM is still alive and kicking despite what all the .Net-heads would have you believe… It always seemed to be pretty obvious to me that all the “COM is dead, long live .Net” hype was just that, hype. Whilst there are obvious advantages to using .Net for new projects there are a lot of projects out there in the wild where you can’t just throw away all of the investment that has been made in COM.

It's the libraries, stupid

Jeff Atwood has a nice piece on the productivity of different programming languages (go read it). His sums up with the following: *Given .. 1). the abandonment of C++ and C for mainstream programming 2). the huge influence of individual programmer skill the slow but steady adoption of scripting/dynamic language conventions in Java and .NET* * *.. maybe all modern programming languages really are the same. Ole Eichhorn has already taken Jeff to task in the comments about his definition of mainstream, and Jeff has responded here so I’ll leave that one alone for now ;) Several people picked up on the relative unfairness of using lines of code as a productivity measure, so I’ll leave that one ;) which leaves me with something I’ve been meaning to write about for a while…

Joel is a bit confused about agility and design

Joel Spolsky of has just completed a very public product development project for a Windows based user assistance program called CoPilot. This has been interesting to watch and has, no doubt, generated lots of positive PR for him. He’s just released the functional spec for the system and points out that “I believe in Big Design Up Front, which the proponents of Extreme Programming consider anathema. I have consistently saved time and made better products by using BDUF and I’m proud to use it, no matter what the XP fanatics claim.

I wonder what the rationale for this restriction is

Geoff Appleby discovers that a common C++ template idiom doesn’t work with .Net generics. The code that doesn’t work is this: Public Class Class1(Of V As System.Web.Services.Protocols.SoapHttpClientProtocol) Inherits V End Class which is the .Net generics equivalent of this common C++ idiom: template <class base> class TDerived : public base { }; This is useful in all kinds of situations, as Christopher Diggins explains and, as Geoff says: “You don’t know if V is NotIneritable, MustInherit, or whatever.

Garbage Collection and Pointers

So, Richard Hale Shaw is helping us move away from C++ and in his latest posting on the subject he explains how “veteran C++ programmers” don’t like to manage memory themselves; hmm. I’d quite like to see his sample data. Especially as he then goes on to define “veteran C++ programmers” as people who don’t like to manage memory themselves… “But veteran C++ developers testify that - without taking special precautions - you’ll invariably introduce more programming errors by managing memory yourself:

Borland C++ v3.1 and 'The Raymond Chen Camp'

Last weekend was a bit of a “compiler weekend” for me; I started playing with VS 2005 and I found some old source code and wanted to build it and that required Borland C++ v3.1 (In the currently fashionable style of naming things - Borland C++ 1991). I dug through my box of old disks and found a backup of my old 386 development machine. That contained an installation of BC3.

How to reset the BIOS on a Vortex86-6071LV

The embedded Linux project came back to life this week when the manufacturer sent us some new video driver source for the SiS 550 on the Vortex86-6071LV. At present the new driver seems to work as well as the old one; i.e. not very well at all… Anyway, whilst adjusting the BIOS settings for the LCD panel I managed to set them to something which meant that neither the LCD panel nor the external VGA would display anything.