[TMMM] Ch 12 – Sharp Tools

<< Chapter 11: Plan to Throw One Away

Programmers shouldn’t keep their tools a secret.  The first major problem to a software projects is communication, and personalized tools hamper communication.  Also, the tool lifetime is short due to changes in technology and changes in the language.

It is better to have a common development and maintenance of general-purpose programming tools.

Target Machines

A target machine is the machine used to write the software

A vehicle machine provides the services used in building the system

Note: it goes on to talk about choosing target machines and vehicle machines, test machines, etc.  The information is a bit dated and very specific, so I’m just gonna skip over it.  Feel free to read about it if you’re interested in what he says.  I found it quite boring.

High Level Language & Interactive Programming

The two most important tools available to programmers are:

  1. High Level Languages
  2. Interactive programming

Only inertia and sloth prevent the adopters of these new tools

High Level Language

High level languages offer two key benefits: increased productivity and speed.

These improvements come from the fact that there are fewer bugs, and they are easier to find.   There are fewer bugs because a lot of the operations where people would make errors have been abstracted away (for example, in assembler you’d have to allocate a whole bunch of registers, in C you’d do a single malloc and you’ll be OK).  Improvements in compiler diagnostics also make bugs (at least, syntactical ones) easier to find.

There are three objections that people usually make against high level languages:

  1. Doesn’t let me do what I want
  2. Object code is too big
  3. Object code is too slow

With respect to 1, kinda iffy, but for the most part its true.  With respect to 2 and 3, these objections were made in the days of assembler vs C, and that argument is still being made in C vs every other language.  The size and the speed will naturally decrease as compilers and interpreters get better.

Interactive Programming

Interactive programming offers many levels of sharing and protection for data and programs, extensive library management, and facilities for cooperative work among terminal users.

You have to remember, this book was written over 20 years ago, so interactive vs batch was a huge deal.  The benefits of interactive programming is obvious to us now.

Chapter 13: The Whole and the Parts >>

This entry was posted in The Mythical Man Month and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

2 Trackbacks

  1. By TMMM – The Whole and the Parts | Pi/Pi on May 16, 2010 at 7:06 am

    [...] Pi/Pi …but that's just one! Skip to content ProjectsCSC309 A3 – kääntää TranslationsCSC309 A1: kääntää TranslationsJump StacksGrksm To UnicodePhotosynth of BahenCSC302 Winter ‘09CSC301 Fall ‘08Project ArgoboxAbout MeContact Me « TMMM – Sharp Tools [...]

  2. By TMMM – Plan To Throw One Away | Pi/Pi on May 17, 2010 at 5:14 pm

    [...] Pi/Pi …but that's just one! Skip to content ProjectsCSC309 A3 – kääntää TranslationsCSC309 A1: kääntää TranslationsJump StacksGrksm To UnicodePhotosynth of BahenCSC302 Winter ‘09CSC301 Fall ‘08Project ArgoboxAbout MeContact Me « TMMM – Documentary Hypothesis TMMM – Sharp Tools » [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>