<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Dennis Reinhardt wrote:<br>
<blockquote cite="mid:20091030015355.0439B1940F6@noir.com" type="cite">The
half-life of technical knowledge was thought to be 5 years some 40
years ago. I don't think it is even that long now. Consider the
topics of the last year's Baypiggies. Are half the foundations of
those talks over 5 years old ... or more like 18 months? How old are
the tools, files, and technologies you deal with. Are half over 5
years old? ... or less?</blockquote>
Please note that python, our primary focus here, is 18 years old.<br>
<br>
While it is true that technology moves on, that statement about half
life from 40 years ago applied to a tiny body of existing computer
technology. While our technology improves and explodes, we also now
reuse a significantly higher portion than we did 40 years ago.<br>
<br>
Gone
are the days when every computer manufacturer designed their own CPU,
memory architecture, hardware, buses, interfaces, peripherals, and
operating systems. Gone are the days when every vendor had their own
pet programming language in which their proprietary operating system
was written. Instead, the computer world has been reduced to
essentially two operating system architectures, (each with a handful of
major variations), a small number of CPU architectures, (x86, amd64,
arm, powerpc, ...), and essentially one general purpose computer
architecture (with some major variations).<br>
<br>
Partly <i>because</i> we move so fast, and partly because we have a
much larger existing body of technology now, it is no longer possible
to design everything from scratch while remaining competitive.
Instead, we reuse large portions of technology from previous projects.<br>
<br>
I spoke with a mobile device company yesterday who is about to release
their first product,
(<a class="moz-txt-link-freetext" href="http://en.wikipedia.org/wiki/Barnes_%26_Noble_nook">http://en.wikipedia.org/wiki/Barnes_%26_Noble_nook</a>). It has been 6
months in the making. That's all. Just 6 months from design to
release of an entirely new product line. The device includes arm cpu,
android OS, 3G (data only) uplink, custom hardware and industrial
design, (from available parts), and custom software apps, (leveraging
existing technologies). This was unprecedented 40 years ago but
becoming common today.<br>
<br>
I'm currently working on a well known mobile device. Our primary
technologies are:<br>
<ul>
<li>C, (~40 years old)</li>
<li>Make (~40 yo)</li>
<li>gcc (30 yo)</li>
<li>GNU (~30yo)/Linux (18 yo)</li>
<ul>
<li>which is directly descended from Unix(tm) (~40 yo)</li>
</ul>
<li>debugging using gdb (30 yo)</li>
<li>cross/embedded techniques (>40 yo)</li>
<li>continuous build and parallelism techniques (>30 yo)</li>
<li>arm architecture (26 yo)</li>
<li>subversion (10 yo)<br>
</li>
<li>openembedded (>5 yo)</li>
<ul>
<li>the openembedded build tool is bitbake, which is written in
python.</li>
<li>bitbake "recipie"s are written in bitbake, which uses python
escapes much as C code sometimes uses assembler escapes.</li>
</ul>
<li>custom device drivers (<2 yo)<br>
</li>
</ul>
Although largely outside my domain and restricted to perhaps half of
the engineers on the project, we also work with:<br>
<ul>
<li>javascript (14 yo)</li>
<li>eclipse (>8 yo?)<br>
</li>
<li>prototype (5 yo)</li>
<li>proprietary frameworks (<2 yo)</li>
</ul>
Of course most of these technologies are under active development or at
least active maintenance. So it's not entirely accurate to say that
we're using 40yo technology.<br>
<br>
My point here is that I'm working on a very modern project and yes, a
significant portion of the technology involved extends back 40 years or
more.<br>
<br>
--rich<br>
</body>
</html>