After devoting several years to programming the most troublesome
computers of all, namely living cells, I am beginning to take an
interest in programming silicon again.
Far too much has changed since I last programmed a computer. It is
amazing how obsolete one's knowledge can become.
My personal programming background: like many, from about 1982 - 1987
I owned an Apple II. I got started with BASIC, and eventually
switched to 6502 assembler for greater speed. I was getting into the
guts of the machine, even doing crude operating system hacks. Those
were the days. Fresh from my undergraduate degree in 1990, I went to
work for a biotech company where my duties included some programming,
first in Turbo Pascal and later in Borland C (not C++). I was doing
data acquisition work, talking directly to hardware. When we switched
from DOS to the Windows 3.1 GUI, I had to program with the manuals
open on my lap, because of the hundreds of OS messages and function
calls -- but I managed. At home, I was tinkering with Laser C 2.0 on
an Atari ST 1040.
In 1993 I went to grad school, and essentially stopped programming.
Along came C++, and Java, and a host of other languages which may or
may not take hold. Operating systems changed again. Hardware became
so fast that, for many users, the performance gains obtained from
compiled languages were no longer important.
I bought a used copy of Borland C++ 4.5 around 1995, I think. By that
time I had retired the Atari and purchased a PC. I tried to do some
very simple programming, and the error messages issuing from the
compiler were absolutely incomprehensible. I put it aside so that my
advisor wouldn't kick me out of grad school.
What I would like to do at this point is some bioinformatics work,
data-mining GenBank. I am setting up a computer at home for this
project because, although it is biology research, it's tangential to
my current job. I have found both the BioJava and BioPerl web pages.
There are bioinformaticicians who find merit in at least these two
I need the ability to read flat-format text files, seek out some key
words and sequence data, and analyze for patterns. Not too difficult,
Well, I followed one friend's advice and investigated Java, perhaps a
little too quickly. I purchased Ivor Horton's _Beginning_Java_2_
book. It is reasonably well-written. But how many pages did I have
to read before I got through everything I needed to know, in order to
read and write files? Four hundred! I need to keep straight detailed
information about objects, inheritance, exceptions, buffers, and
streams, just to read data from a text file???
I haven't actually sat down to program in Java yet. But at first
glance, it would seem to be a step backwards even from the procedural
C programming that I was doing a decade ago. I was willing to accept
the complexity of the Windows GUI, and program with manuals open on my
lap. It is a lot harder for me to accept that I will need to do this
in order to process plain old text, perhaps without even any screen
Here is what I think would make a good programming language for me
(but feel free to try to convince me that I should have other
1) A low barrier to entry for performing simple tasks, such as
processing text files. This will allow me to accomplish the job I
want to do right now.
2) A language that doesn't force me to obsess about the details of
3) I would like to return to graphical applications eventually.
Therefore the language should have a GUI library, either
Windows-specific or cross-platform.
4) Speed is nice, but secondary. When I consider the fact that my
Apple II was a 1.0 MHz machine with an 8-bit data bus, and my new
machine will be a hyper-threaded Pentium IV 2.0 GHz machine with a
32-bit (64-bit?) data bus, I'm willing to bet that even an Applesoft
BASIC interpreter would be fast enough.
Any suggestions? (I was kidding about BASIC.)
John J. Ladasky Jr., Ph.D.
Department of Biology
Johns Hopkins University
Baltimore MD 21218