Old-school programming techniques you probably don't miss

Posted by on in Blogs
"...and today can blissfully forget" by Esther Schindler, ComputerWorld Developer


Esther has written a wonderful article on Computerworld's Development site. She highlights 11 programming techniques that developers sent her after she posted a request on FaceBook and otehr sites asking developers to send in their thoughts. The article also lists some "honorable mention" techniques in each area.

The 11 she lists are:
  • Sorting algorithms

  • Creating your own GUIs

  • GO TO and spaghetti code

  • Manual multithreading

  • Self-modifying code

  • Memory management

  • Working with punch cards

  • Math and date conversions

  • Hungarian notation

  • Making code run faster

  • Being patient

  • One that I sent in was my happiness that I no longer use GOTO statements and Spaghetti Code programming.  Thank goodness for Structured Programming, Object-Oriented Programming, and Functional Programming.

    In the 1970s when I was an assembly language programming on Data General Nova minicomputers, we did a lot of self-modifying code to get complex programs to fit in the small amount of core memory we had.  One great thing about the Nova minicomputer is that every bit pattern was an instruction and also data.  Looking at the processor handbook you could do crazy things like inserting an bit pattern in a location that would also be a data constant and also part of a pointer address that you needed in upcoming instructions. We also used self-modifying assembler code for dynamic dispatching of functions  (thank goodness for OOP and VMTs).

    I was also a college student in the days of punch cards (quickly moving to punched paper tape and terminals).  I always sequence punched by cards, especially after seeing other students drop their large card decks and spend hours sitting on the floor trying to put the program cards back in the right order.

    I would probably not have put "doing strange things to make code run faster" on the list.  While this item was specifically focused on undocumented Windows API(s), on most systems we are always trying to squeeze as much slowness from our programs as we can.  Thankfully we have faster processers, more memory, profilers, optimizing compilers, register variables, inline assembler code, static and dynamic analysis tools, database tuning tools, better algorithms, better memory managers, and more.  Developers have so many choices to help programs run faster including undocumented OS calls, undocumented processor instructions, and green crystals - just document the places where you use them and if they are version specific, use IFDEF(s) around them and provide safe alternatives too!

    Esther - thank you for the walk down memory lane.

    Gold User, Rank: 1, Points: 2466
    David Intersimone (known to many as David I.) is a passionate and innovative software industry veteran-often referred to as a developer icon-who extols and educates the world on Embarcadero developer tools. He shares his visions as an active member of the industry speaking circuit and is tapped as an expert source by the media. He is a long-standing champion of architects, developers and database professionals and works to ensure that their needs are folded into Embarcadero's strategic product plans. David holds a bachelor's degree in computer science from California Polytechnic State University at San Luis Obispo, California.


    • Guest
      Chris Rumbold Saturday, 2 May 2009

      I never sat on the floor resorting cards - Cardiff uni had a machine the size of a car to do that for you. Wonderful invention - must have cost a fortune.... :-)

    • Please login first in order for you to submit comments
    • Page :
    • 1

    Check out more tips and tricks in this development video: