471 lines
26 KiB
HTML
471 lines
26 KiB
HTML
|
<!--startcut ==============================================-->
|
||
|
<!-- *** BEGIN HTML header *** -->
|
||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||
|
<HTML><HEAD>
|
||
|
<title>The Godfather of Computing - Charles Babbage LG #72</title>
|
||
|
</HEAD>
|
||
|
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
|
||
|
ALINK="#FF0000">
|
||
|
<!-- *** END HTML header *** -->
|
||
|
|
||
|
<CENTER>
|
||
|
<A HREF="http://www.linuxgazette.com/">
|
||
|
<IMG ALT="LINUX GAZETTE" SRC="../gx/lglogo.png"
|
||
|
WIDTH="600" HEIGHT="124" border="0"></A>
|
||
|
<BR>
|
||
|
|
||
|
<!-- *** BEGIN navbar *** -->
|
||
|
<IMG ALT="" SRC="../gx/navbar/left.jpg" WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="bottom"><A HREF="forsberg.html"><IMG ALT="[ Prev ]" SRC="../gx/navbar/prev.jpg" WIDTH="16" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="index.html"><IMG ALT="[ Table of Contents ]" SRC="../gx/navbar/toc.jpg" WIDTH="220" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><A HREF="../index.html"><IMG ALT="[ Front Page ]" SRC="../gx/navbar/frontpage.jpg" WIDTH="137" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue72/jones.html"><IMG ALT="[ Talkback ]" SRC="../gx/navbar/talkback.jpg" WIDTH="121" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><A HREF="../faq/index.html"><IMG ALT="[ FAQ ]" SRC="./../gx/navbar/faq.jpg"WIDTH="62" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="nielsen.html"><IMG ALT="[ Next ]" SRC="../gx/navbar/next.jpg" WIDTH="15" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><IMG ALT="" SRC="../gx/navbar/right.jpg" WIDTH="15" HEIGHT="45" ALIGN="bottom">
|
||
|
<!-- *** END navbar *** -->
|
||
|
<P>
|
||
|
</CENTER>
|
||
|
|
||
|
<!--endcut ============================================================-->
|
||
|
|
||
|
<H4 ALIGN="center">
|
||
|
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
|
</H4>
|
||
|
|
||
|
<P> <HR> <P>
|
||
|
<!--===================================================================-->
|
||
|
|
||
|
<center>
|
||
|
<H1><font color="maroon">The Godfather of Computing - Charles Babbage</font></H1>
|
||
|
<H4>By <a href="mailto:jones@systemtoolbox.com">G James Jones</a><BR>
|
||
|
Reprinted from <A HREF="http://www.systemtoolbox.com/">System Toolbox's</A>
|
||
|
History section with permission<BR>
|
||
|
Original URL: <A HREF="http://www.systemtoolbox.com/article.php?articles_id=43">http://www.systemtoolbox.com/article.php?articles_id=43</A>
|
||
|
</H4>
|
||
|
</center>
|
||
|
<P> <HR> <P>
|
||
|
|
||
|
<!-- END header -->
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<H3>In the beginning...</H3>
|
||
|
|
||
|
<P>Some of the most often used cliches about writing and telling
|
||
|
stories turn out to be good advice as well. A writer is told to
|
||
|
"write what she knows" and a storyteller is to "begin at the
|
||
|
beginning." And so, I hope to focus on "our" beginnings and the
|
||
|
things that "we" know; the beginnings of network and hardware
|
||
|
engineers, computer scientists, system administrators and others among
|
||
|
a host of geeks, hackers, and phreaks that exist in our world.
|
||
|
|
||
|
<P>The original idea came out of an interchange between Chris Campbell
|
||
|
and I about an articled titled
|
||
|
<A HREF="http://www.binaryfreedom.com/content.php?content_id=8">Adventures
|
||
|
in Babysitting</A> that he had written for
|
||
|
<A HREF="http://www.binaryfreedom.com">Binary Freedom</A>. The article
|
||
|
described Chris' foray among our would-be next generation at a local
|
||
|
2600 meeting and featured his utter disbelief at their lack of
|
||
|
interest or understanding of their technology history. Names like
|
||
|
Admiral Grace Hopper and Ken Thompson didn't come close to ringing a
|
||
|
bell. You can tell how disheartening an experience it was for him.
|
||
|
These people were his heroes after all (mine as well) and they should
|
||
|
be looked up to and seen as the mentors that they are. In order to
|
||
|
showcase and explore them, I proposed this column.
|
||
|
|
||
|
<P>So, to begin somewhere near the beginning, let's investigate the
|
||
|
Godfather of Computing, Charles Babbage.
|
||
|
|
||
|
<H3>A Beginning of Another Sort...</H3>
|
||
|
|
||
|
<P>Charles Babbage is variously called the Father, Grandfather and
|
||
|
Patron Saint of Computing. To many that care, he began it all. I
|
||
|
prefer to think of him as the Godfather of Computing and to see why is
|
||
|
all part of his story.
|
||
|
|
||
|
<P>Babbage was born into a wealthy, but undistinguished, family in
|
||
|
Devonshire, England, in 1791. While still a young boy, Babbage was
|
||
|
concerned with questions of "how" over those of "why." The expression
|
||
|
of this concern saw the boy dismantling his fair share of toys and
|
||
|
mechanical objects around his family's home.
|
||
|
|
||
|
<H3>A "Personality Disorder" Explored...</H3>
|
||
|
|
||
|
<P>My father-in-law, an engineer, likes to say that engineering is the
|
||
|
expression of a personality disorder. The way he sees it, all
|
||
|
engineers think and see the world such an odd, but similar, way that
|
||
|
it can only be attributed to some sort of mental disorder. When they
|
||
|
see something new, they want to pull it apart. When they hear of a
|
||
|
problem, whether in their realm of control or not, they will offer
|
||
|
"the most efficient" solution. In general, the world is seen as a
|
||
|
broken puzzle that only some good solid, and sustained, engineering
|
||
|
will fix. I can see his point. Besides, breaking Aunt Edna's antique
|
||
|
clock just to see how it works can be considered rude at the very
|
||
|
least. On top of which, "normal" social graces are generally thrown
|
||
|
out the window, placing the final nail in the coffin of diagnosis.
|
||
|
|
||
|
<P>The funny thing is that the expression of this "disorder" can be
|
||
|
fingered early in life. One can watch for the early warning signs.
|
||
|
Children that take apart watches or have a penchant for building
|
||
|
elaborate structures from blocks may just be engineers in their pupae
|
||
|
stage. By all accounts, Babbage definitely was afflicted by the time
|
||
|
of his boyhood. His tinkering with things, his dismantling of
|
||
|
gadgets, and his inquisitiveness as to how things worked are all sure
|
||
|
signs. While the draw of engineering can be sublimated if caught
|
||
|
early and treated with care, Charles had no such luck. His fate was
|
||
|
sealed when he stumbled upon a copy of the <U>Young Mathematician's
|
||
|
Guide</U> in the school library. From that point on, Babbage devoted
|
||
|
himself to the pursuit of rational thought and scientific knowledge.
|
||
|
|
||
|
<P> After boarding school, Babbage headed to Cambridge to attend
|
||
|
Trinity College. While at Trinity, the precocious student tended to
|
||
|
test the patience and abilities of his instructors, a manner that may
|
||
|
be familiar to a few among our readers. One rebellious episode saw
|
||
|
Babbage and his Analytical Society taking on the very way math was
|
||
|
done in England.
|
||
|
|
||
|
<P>At the time, most of England preferred to do complex mathematics
|
||
|
using Sir Isaac Newton's "dot notation." The choice of notation was
|
||
|
more out of civic pride than actual utilitarianism. Babbage
|
||
|
considered this an affront to the way things should be. It went
|
||
|
against efficiency and clarity and was a general affront to Babbage's
|
||
|
rational senses. He favored instead the scientific notation perfected
|
||
|
by Leibniz and used throughout Europe. The Analytical Society, which
|
||
|
Babbage helped found, championed the fight to switch to scientific
|
||
|
calculation by translating Lacroix's <U>Examples to the Differential
|
||
|
and Analytical Calculus</U> from its original French. This
|
||
|
achievement is considered one of the main events that helped bring
|
||
|
modern mathematics to England.
|
||
|
|
||
|
<H3>The Beginnings of an Idea...</H3>
|
||
|
|
||
|
<P>Though stories about the first notion of Babbage's calculating
|
||
|
machine vary, they all seem to focus on Babbage's unwillingness to
|
||
|
suffer inefficiency and undue complexity. It seems that Babbage was
|
||
|
reviewing some of the many "look-up" tables that were used to aid in
|
||
|
calculating complex equations in his day. The number of errors that
|
||
|
were contained therein quickly exasperated him and his partners.
|
||
|
Since the tables were generally copied by hand or transcribed to
|
||
|
plates for printing, it was inevitable that errors would get
|
||
|
introduced into the tables during the process. Those errors then just
|
||
|
percolated through all the calculations that they were used to
|
||
|
perform. One error made hundreds of years ago could potentially
|
||
|
misroute ships or hurt financial projections.
|
||
|
|
||
|
<P>Babbage is said to have complained to his colleague that he wished
|
||
|
these calculations could be carried out by steam. In that simple
|
||
|
complaint lies the beginning of the first programmable mechanical
|
||
|
calculator. It would later see life as the Difference Engine and
|
||
|
still later as plans for the much more ambitious, and versatile,
|
||
|
Analytical Engine. It was 1820.
|
||
|
|
||
|
<H3>Calculating Machines...</H3>
|
||
|
|
||
|
<P>Babbage's first attempt at a calculating machine took the form of a
|
||
|
small six-wheeled model that took advantage of number differences to
|
||
|
aid in complex calculations. The machine, dubbed the Difference
|
||
|
Engine, was powerful and elegant in its simplicity.
|
||
|
|
||
|
<P>Babbage realized that any process that could be distilled into a
|
||
|
repeatable algorithm probably could be mechanized. It's entirely
|
||
|
likely that he was inspired to this line of reasoning through his
|
||
|
fascination with automata at an early age. Automata were mechanical
|
||
|
creations and figurines that imitated life in the form of animals,
|
||
|
ballerinas and musicians and such. By following complex, but
|
||
|
repeatable, mechanical tricks, some automata were able to seem
|
||
|
extraordinarily lifelike. It was this controlled, and nearly
|
||
|
invisible, complexity that interested Babbage.
|
||
|
|
||
|
<P>Babbage's table problem was similar to that of the automata. While
|
||
|
fixing the errors in copying tables was a complex problem, he realized
|
||
|
that embracing the complexity and wrapping it in elegant mechanics was
|
||
|
a likely solution. Babbage decided that by using the method of
|
||
|
differences, he could create a calculating machine that would aid in
|
||
|
these complex calculations. This is how it worked.
|
||
|
|
||
|
<H3>Method of Differences...</H3>
|
||
|
|
||
|
<P>This is how the method of differences works. First one takes a set
|
||
|
of consecutive numbers and then you perform a set function on
|
||
|
each. For sake of ease, let's use the squares of the starting
|
||
|
number's. Then you begin to successively look at the differences
|
||
|
between the results until you arrive at a common number. It is then
|
||
|
possible to work the process in reverse using only addition (something
|
||
|
that machines can easily be engineered to do) to fill in the answer to
|
||
|
the function for successive beginning numbers in the table. The only
|
||
|
requirement is that you begin with a certain amount starting of
|
||
|
"known" numbers that will, following the process, eventually come to a
|
||
|
form of stasis.
|
||
|
|
||
|
<P>For our example we will use <i>1</i>, <i>2</i>, <i>3</i>, and
|
||
|
<i>4</i> as our starting points. These numbers will form our <i>x</i>
|
||
|
column. The function column, <i>f(x)</i>, is then determined by
|
||
|
applying the function chosen, squaring in this case, to each number of
|
||
|
the <i>x</i> column. This gives <i>1</i>, <i>4</i>, <i>9</i>, and
|
||
|
<i>16</i> in order. For the next column, we find the differences
|
||
|
between each <i>f(x)</i>, giving us <i>3</i>, the difference between 1
|
||
|
and 4, <i>5</i>, the difference between 4 and 9, and <i>7</i>, the
|
||
|
difference between 9 and 16. We line these numbers in a column,
|
||
|
<i>delta 1</i>, so that they are positioned vertically, for ease of
|
||
|
calculation, about halfway between the two numbers in the preceding
|
||
|
column. Next we calculate the differences between the numbers in
|
||
|
<i>delta 1</i>. The answers, placed in a fourth column, <i>delta
|
||
|
2</i>, are <i>2</i>, the difference between 3 and 5, and <i>2</i>, the
|
||
|
difference between 5 and 7. We have now reached a stasis point where
|
||
|
the differences are the same. Once we have reached this point we can
|
||
|
now work our way backwards and fill in the table. But first, the
|
||
|
starting table looks something like this:
|
||
|
|
||
|
<P>
|
||
|
<div align="left">
|
||
|
<table border="0" width="408" height="375" cellspacing="0" cellpadding="0">
|
||
|
<tr>
|
||
|
<td width="101" height="46" align="center" valign="middle"><b>x</b></td>
|
||
|
<td width="101" height="46" align="center" valign="middle"><b>f(x)</b></td>
|
||
|
<td width="101" height="46" align="center" valign="middle"><b>delta 1</b></td>
|
||
|
<td width="101" height="46" align="center" valign="middle"><b>delta 2</b></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="101" height="47" align="center" valign="middle">1</td>
|
||
|
<td width="101" height="47" align="center" valign="middle">1</td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle">3</td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="101" height="47" align="center" valign="middle">2</td>
|
||
|
<td width="101" height="47" align="center" valign="middle">4</td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle">2</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle">5</td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="101" height="47" align="center" valign="middle">3</td>
|
||
|
<td width="101" height="47" align="center" valign="middle">9</td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle">2</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle">7</td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="101" height="47" align="center" valign="middle">4</td>
|
||
|
<td width="101" height="47" align="center" valign="middle">16</td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</div>
|
||
|
|
||
|
<P>Now we just work our way backwards on the table to fill in the
|
||
|
values for the function of new values of <i>x</i>. First we can check
|
||
|
our work. Starting at the top value in the <i>delta 2</i> column
|
||
|
(<i>2</i>), we can add it to the top value in the <i>delta 1</i>
|
||
|
column (<i>3</i>) and should get the next value in line in the
|
||
|
<i>delta 1</i> column. If you don't get 5, check your addition. If
|
||
|
you do get the second value in <i>delta 1</i>, then you did your
|
||
|
calculations for those two rows correctly and you can move on (see,
|
||
|
it's self checking). Now take the value at the top of <i>delta 1</i>
|
||
|
and add it to the top of <i>f(x)</i>. The result is the value for the
|
||
|
function applied to the next value of <i>x</i> in the table. You can
|
||
|
carry this for any value of <i>x</i> as long as you know the values of
|
||
|
the function for a few numbers before x, and you only have to use
|
||
|
addition to fill in the table after that point. Here is a table with
|
||
|
the values for <i>x = 5</i>, to show you how it works for "new" table
|
||
|
additions.
|
||
|
|
||
|
<P><div align="left">
|
||
|
<table border="0" width="408" height="375" cellspacing="0" cellpadding="0">
|
||
|
<tr>
|
||
|
<td width="102" height="46" align="center" valign="middle"><b><font face="Times New Roman" size="3">x</font></b></td>
|
||
|
<td width="100" height="46" align="center" valign="middle"><b><font face="Times New Roman" size="3">f(x)</font></b></td>
|
||
|
<td width="101" height="46" align="center" valign="middle"><b><font face="Times New Roman" size="3">delta 1</font></b></td>
|
||
|
<td width="101" height="46" align="center" valign="middle"><b><font face="Times New Roman" size="3">delta 2</font></b></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="102" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">1</font></td>
|
||
|
<td width="100" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">1</font></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="102" height="47" align="center" valign="middle"></td>
|
||
|
<td width="100" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">3</font></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="102" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">2</font></td>
|
||
|
<td width="100" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">4</font></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">2</font></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="102" height="47" align="center" valign="middle"></td>
|
||
|
<td width="100" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">5</font></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="102" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">3</font></td>
|
||
|
<td width="100" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">9</font></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">2</font></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="102" height="47" align="center" valign="middle"></td>
|
||
|
<td width="100" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">7</font></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="102" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">4</font></td>
|
||
|
<td width="100" height="47" align="center" valign="middle"><font face="Times New Roman" size="3">16</font></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"><b><font face="Arial Black">2</font></b></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="102" height="47" align="center" valign="middle"></td>
|
||
|
<td width="100" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"><b><font face="Arial Black">9</font></b></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="102" height="47" align="center" valign="middle"><b><font face="Arial Black">5</font></b></td>
|
||
|
<td width="100" height="47" align="center" valign="middle"><b><font face="Arial Black">25</font></b></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
<td width="101" height="47" align="center" valign="middle"></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</div>
|
||
|
|
||
|
<P>As you can see, it becomes very easy to add new values to the
|
||
|
table. Working backwards from <i>delta 2</i>, two (2) plus <i>delta
|
||
|
1</i>'s value of seven (7) yields nine (9) for <i>delta 1</i>, which
|
||
|
in turn yields twenty five (25) for the function of <i>x</i>, or
|
||
|
<i>f(x)</i>. Pretty straightforward. So much so, in fact, that it
|
||
|
can be carried out mechanically. Herein was Babbage's genius. He
|
||
|
understood, perhaps innately, before any objective <i>proof</i>
|
||
|
existed, that complex calculations could be carried out by machine.
|
||
|
In order to avoid transcription errors when users of the machine copied
|
||
|
the results of the calculation, Babbage's goal was to create a printer
|
||
|
of sorts that would copy out the results by itself. The methods that
|
||
|
Babbage devised would successfully skirt the sources of table errors
|
||
|
that so infuriated the inventive Babbage. It was this understanding,
|
||
|
this internal realization of the "correctness" of his solution, that
|
||
|
would drive him in the pursuit of the ultimate manifestation of his
|
||
|
ideas until the day he died.
|
||
|
|
||
|
<H3>The Analytical Engine...</H3>
|
||
|
|
||
|
<P>Babbage's early prototype of the Difference Engine was met with
|
||
|
great public excitement. He became the hit of London's social circle
|
||
|
and it was often the mark of a party's success or failure as to
|
||
|
whether Babbage had accepted an invitation to attend. This prototype
|
||
|
also brought him some initial funding, to the tune of 15,000 to
|
||
|
17,000 pounds (accounts vary), from the British government. This
|
||
|
money was to be put into the development of a fully functional
|
||
|
Difference Engine and, later, a more complex calculating machine
|
||
|
dubbed the Analytical Engine.
|
||
|
|
||
|
<P>Babbage had been able to prove his ideas and gained general
|
||
|
acceptance of his theories. His major problem with creating a version
|
||
|
beyond his proof-of-concept prototype for the Difference Engine was
|
||
|
his constant learning and tinkering. As Babbage worked on the project
|
||
|
he was constantly discovering more efficient ways to accomplish his
|
||
|
goals and overcome the problems with precision machining that hampered
|
||
|
his progress. It is said that as soon as new plans had left his shop
|
||
|
for the machinists, he had already come up with a revision of the
|
||
|
previous idea. This constant tinkering would be Babbage's undoing and
|
||
|
would defeat the progress of nearly every project he undertook. It
|
||
|
was as if his mind were so active, that it couldn't slow down long
|
||
|
enough to take a snapshot of an idea from which he could work to
|
||
|
physical completion.
|
||
|
|
||
|
<P>Babbage never completed a full Difference or Analytical Engine. He
|
||
|
died in his London home to a cacophony of street musicians (a group
|
||
|
that Babbage sought to have abolished from the city's streets) who had
|
||
|
come from across the country to serenade him on his way outside his
|
||
|
window. Let's just say that he didn't make many friends among that
|
||
|
group (lawsuits will do that). But we still remember him. Beyond the
|
||
|
idea that complex calculations could be carried out mechanically, an
|
||
|
idea that seems inevitable, what did he contribute?
|
||
|
|
||
|
<P>The beauty of Babbage's ideas and their overall contribution to
|
||
|
computer science lies in their completeness. Babbage envisioned a
|
||
|
system that was programmable through punch card inputs. It could
|
||
|
carry out many varied types of calculations and was as versatile as
|
||
|
the instructions that it received; versatility through "software".
|
||
|
With his printing ideas, Babbage had basically pioneered the idea of
|
||
|
input/output (IO) via punch cards and printers. Taking it a step
|
||
|
further, his conception of Analytical engine could store calculations
|
||
|
(by punching cards) and continue them later or use the results of
|
||
|
certain calculations to continue in different directions based on the
|
||
|
outcome; the stored program and programmatic logic respectively.
|
||
|
|
||
|
<P>Unfortunately, Babbage never saw his most dramatic ideas reach
|
||
|
reality, though he maintained his vision going so far as to work with
|
||
|
Ada, the Countess of Lovelace (and mathematical wunderkind) to work
|
||
|
out the proper functioning and use of the machines. It is due to
|
||
|
Ada's copious and <i>annotated</i> notes of some of Babbage's lectures,
|
||
|
that his ideas weren't lost as a footnote in history and that the
|
||
|
awesomeness of his, at least mental, achievement came to be
|
||
|
appreciated. Her notes and Babbage's unearthed plans helped this
|
||
|
vindication even further when a working and more complex
|
||
|
Difference Engine No. 2, the precursor to the Analytical
|
||
|
Engine, was constructed by Science Museum in London in
|
||
|
1991. He should be appreciated for his persistence and
|
||
|
his ideas. The world could have
|
||
|
been wildly different if only he had been moderately successful (read
|
||
|
<U>The Difference Engine</U> by Gibson and Sterling for one possible
|
||
|
outcome). Babbage is the <i>godfather</i> of computing because he
|
||
|
beat everyone to the punch. Using the technology that was available
|
||
|
to him, metalworking, engineering, and steam, he was able to
|
||
|
approximate the early "computers" of the electrical age.
|
||
|
|
||
|
<P>He was a visionary before his time. We should all hope to be as much.
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>-----------
|
||
|
|
||
|
<P><I>© 2001 G. James Jones is a Microcomputer Network
|
||
|
Analyst for a mid-sized public university in the midwest. He writes
|
||
|
on topics ranging from Open Source Software to privacy to the history
|
||
|
of technology and its social ramifications. Verbatim copying and
|
||
|
redistribution of this entire article is permitted in any medium if
|
||
|
this notice is preserved.</I>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<!-- *** BEGIN bio *** -->
|
||
|
|
||
|
<!-- *** END bio *** -->
|
||
|
|
||
|
<!-- *** BEGIN copyright *** -->
|
||
|
<P> <hr> <!-- P -->
|
||
|
<H5 ALIGN=center>
|
||
|
|
||
|
Copyright © 2001, The Binary Freedom Project, LLC.<BR>
|
||
|
Copying license as above<BR>
|
||
|
Published in Issue 72 of <i>Linux Gazette</i>, November 2001</H5>
|
||
|
<!-- *** END copyright *** -->
|
||
|
|
||
|
<!--startcut ==========================================================-->
|
||
|
<HR><P>
|
||
|
<CENTER>
|
||
|
<!-- *** BEGIN navbar *** -->
|
||
|
<IMG ALT="" SRC="../gx/navbar/left.jpg" WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="bottom"><A HREF="forsberg.html"><IMG ALT="[ Prev ]" SRC="../gx/navbar/prev.jpg" WIDTH="16" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="index.html"><IMG ALT="[ Table of Contents ]" SRC="../gx/navbar/toc.jpg" WIDTH="220" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><A HREF="../index.html"><IMG ALT="[ Front Page ]" SRC="../gx/navbar/frontpage.jpg" WIDTH="137" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue72/jones.html"><IMG ALT="[ Talkback ]" SRC="../gx/navbar/talkback.jpg" WIDTH="121" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><A HREF="../faq/index.html"><IMG ALT="[ FAQ ]" SRC="./../gx/navbar/faq.jpg"WIDTH="62" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="nielsen.html"><IMG ALT="[ Next ]" SRC="../gx/navbar/next.jpg" WIDTH="15" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><IMG ALT="" SRC="../gx/navbar/right.jpg" WIDTH="15" HEIGHT="45" ALIGN="bottom">
|
||
|
<!-- *** END navbar *** -->
|
||
|
</CENTER>
|
||
|
</BODY></HTML>
|
||
|
<!--endcut ============================================================-->
|