Category: Programming

  • Destructors

    The Go language does not have destructors. Instead, it has two more dynamic mechanisms. A defer statement may be used to run a function on function exit or when processing a panic. A finalizer may be used to run a function when the garbage collector finds that a block of memory has nothing pointing to…

  • Container Models

    A long time ago a friend of mine pointed out a sign of trouble in any program: defining a new container model. If you are working in a language that provides containers in the standard library, then use them. If you need a container with specific behaviour, then make it look like the standard containers.…

  • Software Paradigms

    In my youth there was a lot of support for object oriented programming. It was generally agreed that we had a software productivity problem: it was too hard to write programs. The solution was supposedly to adopt object oriented programming techniques. This was expressed in its purest form in Smalltalk, and was brought to the…

  • AOL Facebook

    The first computer networks widely used outside of academia were things like CompuServe, Prodigy and then AOL. They were walled gardens: all you could access were the things they provided. With the wider spread of the Internet, they slowly granted increasing access to the Internet. Eventually everybody just used the Internet directly via an Internet…

  • SCO

    I was thinking recently about my visit to SCO back in 2003. Since then SCO has been through bankruptcy and their various court cases have collapsed several times, although they are still struggling on. Their argument was always very weak. I could see that at the time, although I was also scared that the court…