The GIF row


Illustration of different types of the Graphic...
Illustration of different types of the Graphics Interchange Format (GIF). (Photo credit: Wikipedia)

As you may have seen the inventor of the GIF– graphics interchange format – Steve Wilhite, has said that it should be pronounced “jif” and not “gif” (with a hard-g).

More to the point – unless you are using the animated format – you should not be using a GIF at all. Either (for photographs) use a JPEG or (for line drawings or ant graphic with 256 or less distinct colours) use a PNG.

JPEGs and PNGs, when used properly, give better quality renditions from smaller files and are essentially universally supported in browsers these days.

(If you want to know more then I recommend PNG: The Definitive Guide – nominally it is out of print but you can pick up a second-hand copy on Amazon for pennies. You can also look for Image::Pngslimmer on CPAN if you are a Perl hacker – I wrote that!)

Betamax versus VHS in your browser


Everyone knows the story, even if, unlike me, they are not old enough to remember it: the video format VHS overcame the superior Betamax format to dominate the Mitt Romney laughing GIFhome video market in the 80s and 90s.

Of course, the claims that Beta was superior are rather tendentious but the fact that video producers stuck with a Beta format for their own tapes long after the rest of us switched to a VHS monoculture must say something.

Now, inside your browser, the same thing has happened. As is noted in today’s Guardian, the 1987-vintage GIF format refuses to die. These days you see far fewer static GIFs than even a few years ago (though they are still out there in large numbers) – JPEG and PNG dominate. But you’ll have to look very hard for an MNG (the ‘official’ PNG analogue of the animated GIF) or even APNGs, the unofficial but more widely used attempt to animate PNGs.

A few years ago I wrote a Perl PNG module – Image::Pngslimmer – which replicated many of the functions of the C libpng library, so I could use some of that in CGI code without having to switch from Perl to C and back again. Then – this was 2006 or so – PNG support was quite weak in browsers and GIFs were far more plentiful.

PNG is a superior format to GIF (especially for line drawings and similar – for general photographs JPEG is the superior choice, unless you truly demand a lossless format) and it is a good thing that it has edged GIF out in many places. But it seems we will be stuck with GIFs for many years yet.