Back in the day software development was far more complicated than it is now. Today's tools automatically perform complex functions that programmers once had to write explicitly. And most developers are glad of it! We've rounded up the 11 worst programming techniques that we're so glad we don't have to use anymore.

These functions still exist in the software you write, and some specialised programmers, such as Linux kernel developers, continue to apply these techniques by hand. Yet most people depend on the functionality provided by built-in libraries, the operating system or some other part of a development environment.

Let's take a moment to appreciate how much things have improved. For this article, I asked several longtime developers for their top old-school programming headaches and added many of my own to boot.

Sorting algorithms and other hand-coded fiddly stuff

Applications you write today need to sort data, but all you do is call a sort routine. But as late as the 1980s, programmers were having flame wars about sorting algorithms: Binary trees versus modified bubble sort at 50 paces!

It's not just that developers had to choose an algorithm; we had to write the code anew, every time. Donald Knuth wrote an entire volume about the subject in his 'The Art of Computer Programming' series; you weren't a serious programmer unless you at least wanted to buy that book.

Honourable mention

  • Implementing a linked list or hash table yourself
  • Hand-coding XML for SOAP deployment
  • Choosing direct file access such as sequential, direct access, indexed access

Creating your own graphical user interfaces

Text-mode interfaces once ruled the earth. Until sometime in the 1980s - and arguably into the 90s - any developer who wanted to create a windowing system wrote their own windowing abstractions and tested on CGA, EGA and VGA cards, the way you test on Firefox, Internet Explorer and Safari nowadays (I hope).

Or they bought an expensive add-on windowing library and still fiddled with settings for days on end. No wonder so many 'interfaces' consisted of 'Enter 1 to Add Records, 2 to Edit Records, 3 to Delete Records'.

Today, to create a GUI, you use user interface widgets built into your favorite IDE (integrated development environment) or use a stand-alone tool for GUI design. You drag and drop components, call a few functions, and declare some logic. It's magic.

NEXT PAGE: Spaghetti code

  1. We're glad we don't need these techniques any more
  2. Spaghetti code
  3. Self-modifying code
  4. Punch cards and other early development environments
  5. Hungarian notation and other language limitations