|
Control Matters SPLat Controls'
aperiodic
newsletter |
1 April
10 View
online |
C and Unix were
just a big prank!
In an announcement that has
stunned the computer industry, Ken Thompson, Dennis Ritchie and
Brian Kernighan admitted that the Unix operating system and C
programming language created by them is an elaborate April Fools
prank kept alive for over 40 years. Speaking at the recent Linux
Development Forum in Helsinki, Thompson revealed the
following:
"In 1969, AT&T had just
terminated their work with the GE/Honeywell/AT&T Multics
project. Brian and I had just started working with an early release
of Pascal from Professor Nichlaus Wirth's ETH labs in Switzerland
and we were impressed with its elegant simplicity and power. Dennis
had just finished reading 'Bored of the Rings', a hilarious National
Lampoon parody of the great Tolkien 'Lord of the Rings' trilogy. As
a lark, we decided to do parodies of the Multics environment and
Pascal. Dennis and I were responsible for the operating environment.
We looked at Multics and designed the new system to be as complex
and cryptic as possible to maximize casual users' frustration
levels, calling it Unix as a parody of Multics, as well as other
more risqué allusions. Then Dennis and Brian worked on a truly
warped version of Pascal, called 'A'. When we found others were
actually trying to create real programs with A, we quickly added
additional cryptic features and evolved into B, BCPL and finally
C.
We stopped when we got a clean
compile on the following syntax:
for(;P("\n"),R--;P("|"))for(e=C;e--;P("_"+(*u++/8)%2))P("|"+(*u/4)
%2);
To think that modern programmers
would try to use a language that allowed such a statement was beyond
our comprehension! We actually thought of selling this to the
Soviets to set their computer science progress back 20 or more
years. Imagine our surprise when AT&T and other US corporations
actually began trying to use Unix and C! It took them 20 years to
develop enough expertise to generate even marginally useful
applications using this 1960's technological parody, but we are
impressed with the tenacity (if not common sense) of the general
Unix and C programmer. In any event, Brian, Dennis and I have been
working exclusively in Ada on the Apple Macintosh for the past few
years and feel really guilty about the chaos, confusion and truly
bad programming that have resulted from our silly prank so long
ago."
Major Unix and C vendors and
customers, including Nokia, HP and Intel have refused comment at
this time. Microsoft, a leading vendor of BASIC and C tools,
including the popular VB.NET and C#, stated they had suspected this
for a number of years. They look forward to enhanced
reliability and speed in Windows 8. It will be re-written
from the ground up in VB.NET and is due out sometime this decade. An
IBM spokesman broke into uncontrolled laughter and had to postpone a
hastily convened news conference concerning the fate of the Blue
Gene/V, merely stating 'VM will be available Real Soon Now'. A Sun
Microsystems spokeswoman merely sipped her java and smiled
enigmatically. In a cryptic statement, Professor Wirth of the ETH
institute and father of the Pascal, Modula 2 and Oberon structured
languages, merely stated that P. T. Barnum was
correct. |
RS232 (RS485) is not a protocol!
All too often people refer to
RS232 or RS485 as protocols, and believe that if a device "has
RS232" it will automatically be able to communicate with any other
device that "has RS232". This is simply not true! So
what is RS232? RS232 is a standard that defines connectors, pin
numbers and voltage levels, plus a few other purely electrical
details. The voltage represent binary zeroes and ones (marks and
spaces in RS232 terminology). RS232 does not even specify
the character format that has come to be taken for granted, namely
start bit, data bits and stop bits, nor baud rates (9600BPS,
115KBPS, etc). RS485 is a very different set of voltage
level, but does not even specify connectors. On top of
this interface specification you need a specification that defines
how data bytes will be encoded. This is where the familiar start,
stop, data, parity and baudrate specifier comes in, but note that
other schemes do exist. Once you have characters
defined and being transferred, you can specify how those characters
are used to build up meaningful units of data, typically called
packets or messages. This is the protocol specification. Protocols
abound. Common names are ModBus, IP and TCP, but there are an almost
infinite number of proprietary ones used for special purposes such
as weigh scales, motion control boards or GPS
modules. |