Can you tell us a little about yourself? I believe you've been
writing technical books for some time now, how did you get into that?
"I wound up with three job offers that all wanted my combination science and writing ability: the CIA, the DIA (Defense Intelligence Agency), and General Dynamics" |
For as long as I can remember, I've always bounced back and forth
between writing and science. In college, I had a dual English and
Engineering major, which actually made me an outcast in both camps. My
fellow engineering classmates were always terrified of writing while my
fellow liberal arts classmates were equally terrified of science and math.
To me, both science and writing are nothing more than forms of
communication. Science communicates using formulas and equations while
writing uses words and language.
I never realized it at the time, but my combination of science and
writing abilities opened up a much broader job market for me than for most
of my engineering or English classmates. After graduating from Michigan
State University, I wound up with three job offers that all wanted my
combination science and writing ability: the CIA, the DIA (Defense
Intelligence Agency), and General Dynamics, a defense contractor out in
Southern California.
I was initially attracted towards working with both the CIA and the DIA,
but the government had a sudden hiring freeze and they were unable to offer
me a job until later in the year. So I wound up taking the technical writing
job at General Dynamics, writing corrosion control manuals for removing rust
from the cruise missile. Not exactly exciting stuff, but it did get me out
to sunny Southern California where I've been ever since.
I've heard that you don't spend all your time writing about software
- can you tell me something about your other activities?
"Now in most countries, the goal of the police is to catch the suspect without hurting any innocent by-standers. Not so in Zimbabwe" |
I was working for General Dynamics in 1983, which was pretty much the
start of the MS-DOS PC revolution. That's when I got involved in personal
computers and computer programming. I had taken some programming classes
during college, but they were woefully archaic, using punch cards and
FORTRAN to program the computer. In high school, I had taken a programming
class and learned BASIC on an old teletype machine connected to a mainframe
through an ancient 300 baud modem that would often cut out in the middle of
the connection.
So I had always loved programming and when PCs became popular, I quickly
gravitated towards programming, studying for my master's degree in computer
science at night. That's when I learned to program predominantly in Turbo
Pascal but also a little in BASIC and C.
To me, programming languages represent the ultimate in communication so
I love playing with different programming languages such as Prolog, LISP, C,
Pascal, and assembly language. I enjoy studying how different programming
languages force you to think about the same problem in different ways, such
as writing a program in Prolog vs. C.
After receiving my master's degree in computer science, one of my
classmates got a job as the chairman for the computer science department at
the University of Zimbabwe (the former country of Rhodesia). He had some
grant money to bring American-educated instructors out there so he offered
to bring me out for a month and I accepted.
That's when I got a chance to spend a month living and working in
Zimbabwe and exploring a completely foreign country where everyone referred
to me as "the American from California" since their primary knowledge of
America came from TV shows and movies, most of which were filmed or produced
in California, so California held a special fascination for many people in
Zimbabwe.
During that time, I lived in a modest hotel in Zimbabwe that had no
heat, air conditioning, radio, or TV. Basically, I lived in a room with a
bathroom and running water and that's it. So at night time, I would amuse
myself by talking to myself, and I started making jokes. During my lectures
at the University of Zimbabwe, I would make jokes to make the lectures more
interesting, usually joking about neighboring countries such as Malawi where
the laws at the time forbid men from having hair long enough to touch the
top of their ears or women from wearing anything that showed their knees. If
a man was caught in Malawi with hair touching his ears, he had a choice of
going to prison or having a haircut.
Another favorite target of mine to joke about was Zaire, where the
government of Zaire actually made money by printing counterfeit Zimbabwe
money. The police in Zimbabwe were also favorite targets of mine to joke
about too. They patrolled the streets with loaded AK-47 assault rifles and
the week before I arrived, someone tried to rob a bank and the police chased
after the suspect.
Now in most countries, the goal of the police is to catch the suspect
without hurting any innocent by-standers. Not so in Zimbabwe. Over there,
the police opened fire with their AK-47s, mowing down dozens of innocent
by-standers, but triumphantly proclaiming they caught and killed the bank
robbery suspect!
Living in Africa was like being Alice in Wonderland where people were
happy while nothing around them seemed to make any sense. There were routine
power outages in the middle of the day so most people walked up flights of
stairs rather than risk getting trapped inside of elevators. Few people
could afford cars so they had private taxis, which were essentially station
wagons crammed full of businessmen in suits with about six people wedged in
back with the tailgate open so the dust from the road would fly in and cover
everyone in back. Public buses were always crowded, so it was common just to
hang on to the sides as the bus lumbered down the street, weaving in and out
of traffic with businessmen in suits clinging to the windows with their feet
wedged inside rusted openings in the sheet metal sides of the bus. Books and
magazines were so precious that street vendors often sold twenty year old
Time and Newsweek magazines so people could learn more about the outside
world. When you're surrounded by an environment like that, it's hard not to
see the humor in life, especially when you return back to the United States
where one out of ten Americans can't even find their own country on a map.
Interesting - its a big leap from software to comedy... How did that
happen?
" I continued that direction for my comedy and created a politically-oriented type of comedy act" |
After making jokes during my class lectures and having fun with it, I
decided to try stand-up comedy when I returned to the States. I enjoyed
making jokes during my college lectures in Zimbabwe so I decided to repeat
that experience back in America. Since most of my jokes in Zimbabwe focused
on poking fun of events and establishments in that region, I continued that
direction for my comedy and created a politically-oriented type of comedy
act such as the following:
"Pope Benedict enraged the Muslim world when he quoted an ancient
philosopher who said that Islam has brought nothing but evil and inhuman
things to the world. Pope Benedict later said it was not his intention to
insult Muslims and if he could do it all over again, he would just have
gotten drunk like actor Mel Gibson and insulted the Jews instead."
So about this book, Beginning Programming for Dummies. Its into its
4th edition now, isn't it. What inspired you to write the first one?
Beginning Programming for Dummies originally started out to teach people
how to use the free QBasic interpreter that come with MS-DOS 6.22. Since
every PC came from QBasic, it was an easy way to introduce people to
programming with a tool they already had on their computer.
The original goal of the book was to teach programming without getting
bogged down too much in the specific syntax of a programming language.
How has the book evolved through editions?
"the 4th edition of the book is designed to appeal to Windows, Mac, and Linux users and also broaden the coverage to focus more on programming principles " |
When Windows took over and QBasic disappeared, I switched the focus of the
Beginning Programming for Dummies book to cover a QBasic-like clone called
Liberty BASIC. Although Liberty BASIC was shareware and included free on the
book's accompanying CD, readers could still use and practice writing BASIC
programs on their own computer.
Unfortunately, Liberty BASIC only ran on Windows, and with the growing
Macintosh and Linux market, I started looking for a way to broaden the
book's appeal beyond just Windows users. So the 4th edition of the book is
designed to appeal to Windows, Mac, and Linux users and also broaden the
coverage to focus more on programming principles and less on a specific
programming language like BASIC. That's why this fourth edition of the book
includes and covers BASIC, C++, and Revolution.
BASIC coverage still includes Liberty BASIC, but I also included
REALbasic to show readers how an object-oriented BASIC language works. I
included C++ simply because C++ is the most popular programming language
around, and I wanted readers to understand the pros and cons of BASIC vs.
C++ and how two different programming languages can use different techniques
to solve the same problem.
Finally, I didn't want readers to think that BASIC and C++ were the only
ways to program a computer, so I also added Revolution to show a more
radical approach to programming. That way, readers can see how programming
languages can differ dramatically yet still retain similar characteristics,
and it's these similarities that people need to learn and understand before
worrying about the syntax of particular programming languages.
I also chose REALbasic and Revolution for their Windows/Mac/Linux
cross-platform capabilities so users of any of those three operating systems
can use and benefit from the book.
When and where did you come across Revolution, and what persuaded you
to include it in the book?
"Revolution ... offered a lower price along with a better user interface. I bought an early copy of Revolution and I've been hooked ever since." |
My first exposure to Revolution occurred when I ran across an
alternative health reference program called IBIS, which was written by a
group of alternative health care practitioners. The IBIS program itself is
fascinating, and to see how non-programmers could create something as
sophisticated as IBIS intrigued me. That's when I found out that IBIS had
been created using MetaCard (the precursor to Revolution).
I had played with HyperCard in the past and loved it, but after
HyperCard died away, I never found a satisfactory alternative. MetaCard came
the closest, and especially intrigued me with its cross-platform
capabilities, but its high cost kept me away until I learned that Revolution
was based on MetaCard and offered a lower price along with a better user
interface. I bought an early copy of Revolution and I've been hooked ever
since.
So my initial interest in Revolution came about from seeing how
non-programmers could create a sophisticated program (IBIS) quickly and
easily.
How much of the book is devoted to programming in Revolution?
"By the end of the book, readers should understand how programming in general works" |
The 4th edition of Beginning Programming for Dummies focuses on teaching
programming fundamentals and then provides short examples in Liberty BASIC,
REALbasic, C++, and Revolution. So although this book isn't really a
Revolution tutorial, it does help provide a foundation for readers to learn
and use Revolution (or BASIC or C++) without letting the syntax of each
language get in the way of their understanding of common programming
principles.
By the end of the book, readers should understand how programming in
general works, and then they can better understand how to use any
programming language whether it's BASIC, C++, Revolution, or anything
including LISP, Modula-2, or even COBOL.
How do you feel Revolution stacks up against other programming
languages?
"after learning Revolution, I find languages like C++ or REALbasic way too frustrating since it takes a handful of commands just to do something that Revolution can accomplish in a single line" |
As a programming language hobbyist who enjoys studying different
languages to see how they solve certain problems easier (and also make other
types of problems harder), I find Revolution both fascinating and
frustrating.
Having been trained in more traditional languages like BASIC, C, and
Pascal, the Revolution language is radical enough to create a seemingly
steep learning curve. However, I'm always pleasantly surprised at how simple
Revolution can be to use since a single Revolution statement can replace a
dozen or more traditional programming statements.
I appreciate REALbasic since it's similar to Visual Basic (I've written
several books about Visual Basic). So it's much easier for me to grab
REALbasic and jump right in to write a program.
However, after learning Revolution, I find languages like C++ or
REALbasic way too frustrating since it takes a handful of commands just to
do something that Revolution can accomplish in a single line. With
Revolution, I can get more work done with less commands. With C++ or BASIC,
I wind up writing three to five times as many commands to get half as much
work done as I could in Revolution.
What do you find unique about Revolution?
"Revolution's cross-platform capability has always been near-perfect from the start. Write a Windows program, compile it for Mac or Linux in Revolution, and it just seems to work with minimal, if any, tweaks to the code" |
I think the two most unique features of Revolution are its much simpler
programming language and its cross-platform capability. I was initially
disappointed by REALbasic's cross-platform capability because earlier
versions weren't quite as compatible as advertised. For instance, in
REALbasic 4.5, the manual offered a tutorial to build a simple word
processor, but the code only worked when creating Mac programs. If you
compiled that same source code as a Windows program, it wouldn't work at
all. Of course, REALbasic has made tremendous progress in getting their
cross-platform capabilities more equal, but I found Revolution's
cross-platform capability has always been near-perfect from the start. Write
a Windows program, compile it for Mac or Linux in Revolution, and it just
seems to work with minimal, if any, tweaks to the code. As more people start
using Macs, Linux, and Windows, cross-platform tools like Revolution are
going to be extremely important. All those people building and selling
programs that only run on Windows are going to start missing out on the
growing Mac (and to a limited extent Linux) markets, all because their
compiler won't let them create cross-platform applications.
Beyond Revolution's cross-platform capability, the second most important
feature is the Revolution language. I'm always amazed at how a simple
Revolution command can do the work of multiple, equivalent commands in BASIC
or C++. As a writer, I'm particularly intrigued by Revolution's text
chunking capabilities and hypertext linking. Finding the third word of the
second line of a paragraph is easy to do in Revolution. Trying do do that in
C++ or BASIC would require writing an entire subprogram and debugging it,
and it still wouldn't offer as many features as Revolution's much simpler
text chunking commands.
Do you think you might in the future write the book the Revolution
community is waiting for, Revolution for Dummies?
"building a ... program in C++ is slow, complicated, and tedious while building that same program in ... Revolution would take half the time with fewer bugs, and probably offer twice as many features" |
I've been pushing to write a Revolution book for years, but publishers
are reluctant to back any programming tool that doesn't come from Microsoft.
Books about REALbasic have had disappointing sales and books about Borland's
Delphi are fast becoming extinct.
I think the problem is that most professional programmers are too
enamored of languages like C++ and Java and don't want to consider more
productive, but lesser known alternatives such as REALbasic, Delphi, or
Revolution. Companies don't want applications written in REALbasic, Delphi,
or Revolution because they prefer the "safety" and familiarity of C++. Of
course, building a hospital record-keeping program in C++ is slow,
complicated, and tedious while building that same program in REALbasic,
Delphi, or Revolution would take half the time with fewer bugs, and probably
offer twice as many features, but too many people don't want to stray from
the comfort of what they already know, which is what they've learned in
school -- C++. As a result, the book market for such alternative programming
tools is close to nothing.
That's part of the reason I included REALbasic and Revolution in the
latest Beginning Programming for Dummies book. I wanted to expose more
people to these "alternative" languages.
I think the best way to market Revolution is to target non-programmers,
since these people will find Revolution's language intuitive and easy to
learn, and these are the type of people who don't want to study years just
to learn how to write a simple program in C++ or BASIC. The beginner
programming market, consisting of people who haven't yet made an emotional
commitment to a particular language like BASIC or C++, is the target market
for the Beginning Programming for Dummies book.
Besides the small potential market for a Revolution for Dummies book,
the title alone might convey images of Marxist revolutions and wind up
getting the book banned from most parts of the world.
Hmm, perhaps you are right, we might need to call it something else...
Thank you so much for your time, and I know our readers will be
delighted to hear you have agreed to write some articles for future
editions of our newsletter. You can buy the book Beginning
Programming for Dummies here.
Besides Amazon.com, they can also find information about the book at
www.dummies.com
|