Software Engineering a.k.a. Programming
I first became interested in programming in high school in the early
'70s when I had an opportunity to play with a programmable desktop calculator.
Later I learned several high-level languages, first Fortran, then Pascal, and
C. C remains my favorite compiled programming language, and the UNIX operating
system is my preferred operating and programming environment. I also
write programs for shells (I prefer Korn shell), in awk, and in sed. Though I
can program in C for Microsoft's Win32 environment (Windows/Windows NT), it is
an unpleasant experience for the following reasons:
- Many critical OS functions are undocumented; important and useful
things cannot be done without insider information.
- System call return values are much less consistent than in UNIX.
- There are often multiple, inconsistent methods of doing the same
thing, e.g. beginthread() vs. CreateThread().
- The system call interface is verbose and tedious due to the typical
SomeSillyRunTogetherBunchOfWordsWithMixedCapitalization naming which is used.
- The different flavors of MS Windows behave quite differently to many
system calls, leading to program complexity to handle the variations.
- Doing fairly simple things tends to require a half-dozen or more
system calls.
- There are many bugs, which require extraordinary steps to work
around.
- The Microsoft OSs themselves are rather buggy and tend to crash
frequently (I've had UNIX systems stay up and running efficiently under
moderate to heavy use for more than 6 months at a stretch; my current record
for Windows NT with the latest service packs under similar conditions is 4
days).
- The slightest piddling change seems to require OS rebooting.
- OS performance and/or stability degrades rapidly (i.e. within a
matter of days) with use to the point where it becomes unusable -- again the
only recourse is rebooting.
I could go on (and on and on), but that's enough.
Recommended reading (not OS- or language-specific):
- The
Elements of Programming Style,
Kernighan &
Plauger, 1978, ISBN 0-07-034207-5
- The authors' version of Strunk & White's classic The
Elements of Style as it applies to programming. See excerpts below.
- Writing
Efficient Programs, Jon
Bentley, 1982, ISBN 0-13-970244-X (paperback), 0-13-970251-2 (hard cover)
- Programming
Pearls, Jon Bentley,
1986, ISBN 0-201-10331-1
- This book and its sequel are adapted from the author's column by
the same name in the Communications of the
ACM. These books contain many pointers to other interesting books. See
excerpts below.
- The Second Edition (ISBN
0-201-65788-0) of this book (but not of More Programming Pearls) has
been published.
- More
Programming Pearls, Jon
Bentley, 1988, ISBN 0-201-11889-0
- The sequel to Programming Pearls
- The Practice of
Programming, Kernighan
& Pike, 1999, ISBN
0-201-61586-X
- A wide-ranging tour of the issues. See excepts below.
Sampler:
Back to Professional interests
page
| email |
"Spam" (unsolicited commercial email) is unwelcome. Senders
will be reported to their ISPs. |
| email |
"Spam" (unsolicited commercial email) is
unwelcome. Senders will be reported to their ISPs. |