|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|||||||||||||||||||||||||||
|
|
|
|
|||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CIPS Connections
World-Renowned, 20-Year Development Expert
in C, Unix, Shell Programming, and Authority on Cold Fusion
This week, Stephen Ibaraki,
I.S.P., has an exclusive interview with Stephen Kochan, the world-renowned
20-year development expert in C, Unix, Shell Programming, Cold Fusion, and Web
technologies; authority in printing technologies; and expert in major operating
environments. Stephen Kochan is the
best-selling author or co-author of eight classic books on C programming and
Unix, a former senior software consultant to the famous Bell Laboratories,
co-inventor of the software patent for printing in reduced memory environments
(PowerBand technology), former co-founder and president of Pipeline Associates
Inc., and currently president and founder of TechFitness. His book credits include the
widely known and classic titles: “Topics in C Programming, Programming in C”,
“Programming in ANSI C, Programming C for the Mac”, “UNIX Shell Programming”,
“Exploring the UNIX System”, and “UNIX System Security”. He has been the
consulting or technical editor for more than nine additional books on Unix, C
programming, and ColdFusion. His most recent offering is the widely regarded, “Programming in Objective-C”. Discussion: Q: Stephen with your remarkable
history, we are very fortunate to have you with us. Thank you! A: Thanks, Stephen. I’m happy to
be here! Q: Detail your work with AT&T
Bell Laboratories. A: I worked at Bell Labs before
divestiture. Bell Labs at that time was a very exciting place, where a lot of
research work was going on. It was actually close to working in an academic
environment. I worked in a support group at Bell Labs that was responsible for
capacity planning and monitoring for the computer labs throughout all the Bell
Labs’ facilities. Needless to say, my work was done under Unix. I did a lot of
shell programming while I was there. I also started teaching classes internally
at Bell Labs on subjects like C, emacs, shell programming, and Unix. Q: What prompted you to start
writing at that time? A: Before working at Bell Labs, I
worked for a company that was an early adopter of C in the commercial world. At
the time, the Kernighan and Ritchie book was the only book on C programming.
Even as an experienced programmer, it was not so easy for me to learn how to
program in C from that book. While the book was an excellent reference, it was
not written as a tutorial. So I felt there was a real void that needed to be
filled and I decided to write an introductory C programming text. That was
“Programming in C,” which was published in 1983. The book ended up selling over
1,000,000 copies and is still in print in it revised form (and under the name
Programming in ANSI C). In fact, I am currently revising it again! Q: Please share your most
valuable writing tips. A: I think my approach of
teaching by example has proven to be very effective. I like to introduce new
concepts to the reader in a graduated, logical manner. I also don’t like to
overwhelm the reader with too many terms and technical details that are not
needed to learn a particular concept. I have no problems “holding back” from the
reader and clarifying a concept later. Sometimes you can get criticized for
taking that approach, but I have found it is the best way for a reader to learn.
I also don’t believe in writing tomes. Many of the best programming books have
been fewer than 300 pages or so. My books tend to be a little larger than that,
but I can’t see myself ever writing one of those 1,000 page books that you see
out there. Q: Provide the background behind
Pipeline Associates Inc. A: Pipeline evolved from my
teaching experience at Bell Labs and the writing experience from my C and Unix
books. Pat Wood, who was an associate of mine at Bell Labs, and I decided to
start a company so that we could continue to write and train full-time. Since we
typeset our own books for our publisher at the time, the Apple LaserWriter,
which had just been released, got our attention immediately. This printer used a
new language called PostScript, so we ended up writing some software to talk to
the printer from our Unix systems. One thing led to another, and we ended up
developing our own PostScript clone interpreter called PowerPage that we
licensed to companies like Sharp, Konica, Kodak, Hitachi, and Fujitsu. Pipeline
also specialized in color printing technology. One of our customers was a
company called Electronics for Imaging, Inc. (EFI) and they acquired Pipeline in
1997. Q: What prompted you to start
TechFitness? A: TechFitness came from my
desire to combine my passion with health and fitness with my technology
experience. It was something for me to do after leaving Pipeline! Q: Throughout your very
successful career, profile the major challenges you faced, and the important
lessons you learned. A: The most important lesson I
learned, which also presented a great challenge, was the principle of running my
business without compromising my ethics. Many of my competitors would promise
unrealistic delivery dates for their software, for example. By being honest with
my customers, I was able to gain their trust. I think that was particularly
important when dealing with my Japanese customers. I was also able to leave my
company feeling proud of what I had accomplished and how I had done it. Q: Describe your current role and
projects? A: Right now I have returned to
writing full time. I have always been a big fan of the Macintosh. Now that it
runs Unix (and does such a good job at it); I would like to stay on this
platform and write books that would be helpful to Mac programmers. I am also pursuing the idea of
marketing some of my older texts online in Pdf format. Q: Where do you see yourself and
your company in five years? A: Hmm, over the last five years
I’ve learned not to try to predict that far ahead! Q: What are your thoughts on the
Open Source movement? A: I think it’s great. The fact
that Apple has embraced Open Source for their operating system has enabled them
to deliver a solid operating system that is malleable. With all the developers
making contributions, Apple can remain on the forefront of operating system
technology and quickly deliver new releases to the consumer. Q: Who are the big winners and
losers? A: I’m not sure if there are any
losers here. Maybe some companies that made versions of software that are now
available for free will be hurt, but there’s always a way to offer a
distinguishing product. The winners are the companies
that can embrace the technology and still figure out a way to make money! The
consumers are also big winners, because they don’t have to absorb the large
costs associated with development of large software systems. Q: Can you share your thoughts on
Unix and C? A: These are two very mature
environments. Unix has proven to be a robust operating system that has lived up
to its reputation. Apple now has the largest installed Unix base in the world.
The C language still remains the most efficient language for systems
development. There are still many applications (such as in embedded
environments) where C is still the language of choice because of its efficiency
and control over its environment (such as with memory allocation). Q: Describe the relationship
between C and Objective-C? A: Hmm, Objective-C is layered on
top of C, so they will always remain intimately related! Q: What’s in the future for
Objective-C? A: Good question. The language
was dead for all intents and purposes before Mac OS X. Right now, it remains the
language of choice for application development on that platform. The Mac OS X
installed base continues to grow at a very fast pace. So I see a steady growth
in the language over the next several years. Q: And the response from the Mac
community to Objective-C? A: I think the response has been
mixed. Programmers with C++ or Java experience are not always thrilled about the
idea of learning Objective-C for doing Mac OS X development work. Apple has
tried to make that bridge a little easier to cross. Q: What makes your book,
“Programming in Objective-C”, particularly compelling? A: There’s not much out there on
Objective-C right now. And my book is the only tutorial. Apple publishes an
excellent reference book that is available at no charge. With Programming in
Objective-C, I took the radical approach of teaching the language to programmers
who don’t already know how to program in C. That was the premise of all previous
books (or chapters from books) on the language. But it’s a mistake to have to
learn how to program in a procedural language (C) before learning an
objected-oriented one (Objective-C). A novice programmer can pick up bad
programming habits by taking that path. So my book teaches the language as an
entity unto its own; that is, without teaching the underlying C language first.
The language that is taught is Objective-C, not C followed by Objective-C. Many of the existing books that
have some information on Objective-C are Cocoa programming books. These books
are often very comprehensive in nature and cover user interfaces, the Mac
development tools, etc. This is a tremendous amount of information to cover,
which is one reason why the Objective-C language typically gets minimal coverage
in these books. Since Objective C compilers are
available for all major OS platforms (you can get gcc with Objective-C support
for Windows and Linux, for example), the book does not assume you are learning
the language exclusively for programming on the Mac. Half of the book is devoted
to learning how to use the Foundation framework, which a set of classes that
have become fairly standardized across all Objective-C platforms. That allows
you to write portable Objective-C programs. Q: Provide your predictions about
the evolution of hardware and software? Are there any areas we should be
watching? A: Certainly wireless and
personal networks are the hot areas in technology. Q: Share your top study tips for
learning programming? A: 1) Make sure you set yourself
up in an environment where you can test out your program examples. Programming
is a pro-active experience. You can’t learn how to program just by sitting and
reading a book. 2) Get a good recommended
tutorial on the language. Many prefer a book that teaches by example rather than
just having terminology and syntax pounded into them. 3) Don’t get bogged down with
terminology or minutiae in the beginning; you can always pick that up once you
feel more comfortable with the language. 4) Make sure you actually type in
and try program examples from the book. 5) Make changes to the program
examples and see their effect on the output. Make sure you understand the cause
and effect relationship. 6) Find some good online
resources that you can turn to with problems or get answers to questions. 7) Challenge yourself with a
problem or do the exercises at the end of the chapters. Q: What are the most compelling
issues facing technology professionals today and in the future? How can they be
resolved? A: Certainly the loss of
programming jobs to overseas programmers is a crisis that is facing the
programming community today. There have been many jobs filled by programmers in
countries like India, where the cost of hiring a programmer can be as little as
1/10th the cost of a programmer with similar experience in the US. I don’t know
the resolution to this problem. You just have to always strive to keep your
skill set current and marketable. Q: What future books can we
expect from you? A: As noted earlier, there will
be a revised edition of my ANSI C book forthcoming. There will likely be a Mac
OS X Programming book and perhaps an AppleScript book as well. Q: What kind of computer setup do
you have? A: I have many computers! For
Windows, I’m using a Toshiba notebook running Windows XP. For my Mac system, I’m
using a 15” PowerBook running Panther. Perhaps a Mac G5 will be next? Q: What drives you to do what you
do? A: I think learning is what keeps
me motivated and is what makes me feel like I’m alive. I also always like to
challenge myself. Writing is particularly rewarding if you find you’ve helped
someone. Getting positive feedback to one of my books is very gratifying. Q: How do you keep up with all
the changes? A: I gain a lot of information
from the Internet. When I have the time I like to read periodicals in my field
as well. Q: Stephen, thank you again for
your time, and consideration in doing this interview. A: You’re very welcome!
|
|
|
|
|
|
Copyright © 2000 - 2004 Canadian Information Processing Society All rights reserved. Terms of Use Privacy Statement |