Careers: Interviews
Top Developer: D. Appleman
This week, Stephen Ibaraki, I.S.P.,
has an exclusive interview with Dan Appleman, a
world renowned expert and international authority of
application development. He has been long considered
within the top three developers in the world on
COM., VB components, and now .NET.
****
Q: Your experiences as world renowned IT expert
would be of benefit to many veterans as they walk
the dynamic tightrope of technology. Can you detail
your personal history? What personally prompted you
to enter the computing field? What led you to
becoming a leading provider of programming services
and a noted expert on application development? Can
you also detail your history with Apress, and your
mandate?
A: Star Trek. Seriously. I was at the incoming
freshman orientation at my university, and one of
the guys I met told me that he had gotten a hold of
an account on the school’s PDP-11/45 and we should
go over to the computer center and check it out. So
we there and he showed me how to play “Star Trek” –
a text based game available on the computer loosely
based on the TV series. Next thing you know it was
morning – my first college all-nighter.
I practically lived at that computer center that
year, mostly focusing on teaching myself Basic (and
my, how that language has changed, hasn’t it?). I
graduated with degrees in Electronic Engineering and
Information and Computer Science and went on to a
variety of jobs ranging from hardware, to embedded
system, to application software design. I founded my
own software company Desaware in 1981 to develop
component based software – in those days VBX
controls and later ActiveX controls and now .NET
components. At that time I also started writing
books, mostly targetted to professional Visual Basic
developers, though I also wrote one book for
absolute beginners called “How Computer Programming
Works.”
The idea for Apress came about during a phone
conversation with Gary Cornell. We where whining
about the way publishers treat authors (as most
authors do), when one of us (we don’t recall which)
said something along the lines of “if I ran a
publishing company, I would do things differently”,
and the other one said “we could do that.” Well,
here we are, just a few short years later, with the
hottest new publishing company in town. Our mandate
then as now is to come out with great books and to
treat the authors right. I think we do both very
well.
Q: Can you share your 20 leading tips for those
thinking of getting into the computing field? Can
you describe your role with your company and how you
plan to shape the company one year and two years
into the future, and in the long term?
A: I don’t hink I have a list of 20 tips. But I do
have one. The only good reason to get into the
computer field is if you love doing it. If you have
fun programming or otherwise working with computers,
it’s a great field to get into because people will
pay you lots of money to do what you enjoy. If you
don’t love doing it, find something you love to do
and figure out a way to get people to pay you for
that.
Also be prepared to have to keep studying, because
this is a field that changes rapidly. Of course, if
you enjoy it, this won’t be a problem (though it
certainly will be stressful on occasion).
As to my role? I like what I’m doing both with
Desaware and with Apress and expect to keep doing
both for some time to come. I’m the president of
Desaware, and Editorial Director and cofounder of
Apress so I suppose my role in shaping both is
rather self-explanatory. As for planning the future,
in our business one or two years is the long term.
Q: You have a reputation for being plugged into the
stream of computing consciousness about where it’s
going now and in the long term. You’ve also done a
lot of research. Can you comment on the studies that
you’ve performed, what you have learned, and your
experiences? Where is technology today and where is
it going?
A: Well, I’m not a researcher – I’m a software
developer. So I don’t do formal studies. My guesses
as to where technology is going are based on the
same things as most programmers: Reading, talking to
people, and trying to guess which way to go next.
Right now we’re in an era of great change, and I
don’t know any way to accurately predict what is
going to happen. Some patterns are obvious though:
- Bandwidth is going to increase. More and
more people will move to DSL and higher speed
network access.
- The Internet is going to change in ways that
we can’t yet anticipate. Yes, I know today’s
hype is all about web services, but that’s still
a technology chasing after a market. We don’t
know that it’s going to catch on.
- Security and privacy is going to become an
even more serious issue than it is today. As we
rely more and more on computers and networks,
the potential for harm by viruses and malicious
users will continue to increase. At the same
time, increasing complexity of systems tends to
open more vulnerability (both technological and
human). These two trends are leading us to to
places that I shudder to think about.
Q: What are your views on the future of enterprise
software development? Issues such as integration of
different platforms, future programming
environments, use of XML and so forth.
A: The truth is I’m not an enterprise software
developer. My strength is in development of
components for software developers including
enterprise software developers. This is, in part,
because I see one of the big trends to be increased
use of software components to build enterprise
infrastructure. Code reuse in the form of
components, whether they are built in-house or
purchased, is so economically compelling that it’s
stunning how few companies realize its potential.
One of the biggest challenges facing software
development is differentiating between hype and real
solutions to problems. Just because something is the
latest buzzword doesn’t mean it’s the best solution
to a problem. Take XML. XML is a great idea. It’s
also no big deal. It’s power comes not from its
sophistication, as the fact that so many people are
agreeing to use it – so it can be used as a way to
exchange information among otherwise incompatible
programs. So you can build solutions using different
applications on different platforms.
Now think about it – if building solutions from
different applications that are tired together using
XML is such a great idea, why wouldn’t building
applications from other types of software components
be an equally great idea? Answer: it is, but it
isn’t getting as much hype right now.
Q: For those relatively new in the computing field
and for seasoned veterans, which areas should they
target for future study, what are the high-growth
areas, and can you provide specific advice?
A: Today’s hot topic is Microsoft’s .NET initiative.
It will be interesting to see how it flies. It’s
targetting the Java platforms head-on. My guess is
that both will survive and continue to do well.
One area that needs more attention and will
hopefully get it is in the area of small business.
Everyone today focuses on enterprise applications,
but enterprise solutions are usually terrible for
small and medium size businesses. They’re too
expensive both to buy and to support.
Q: What changes do you see for the future of
computing, conducting business, and the use of the
Internet?
A: If I knew that, I’d be writing the next killer
application. Of course it’s possible that I do know
that and am writing the next killer application, but
if that’s the case I can’t very well talk about it
here, can I?
I’ll say this much – I don’t believe anyone can
accurately predict where we’re going. It’s far too
chaotic.
Q: Your recently released book, “Moving to VB.NET:
Strategies, Concepts and Code” is the most
authoritative book on learning Visual Basic.NET
available and chock full of very useful tips, coding
examples, and practical solutions to real-world
problems. I highly recommend it for the seasoned
professional – it’s simply a “must-have” tool.
Please describe the book, where it’s available and
how did you get involved in the book and what would
be your 20 biggest tips drawn from the book? What
additional books are you planning in the near and
far term? What would you do different if you started
again, having gone through this authoring experience
over the years?
A: There are huge numbers of VB6 programmers out
there who are looking at .NET and thinking about
learning it and wondering how to go about it. They
are also wondering if they should learn C# instead
of VB.NET. I answer that question in my e-book
“Visual Basic .NET or C#: Which to Choose” available
at
http://www.desaware.com/VBOrCSharp.htm.
Regardless of which language they choose, there are
certain concepts that VB6 programmers must learn
first – before they write any code, and before they
even start worrying about the syntax of VB.NET or
C#. My book “Moving to VB.NET: Strategies, Concepts
and Code” focuses on three areas. First: deployment
strategies – when and how to move to .NET (or
whether to move at all). In that section I’ll tell
you, for example, why porting VB6 code to .NET is
generally a stupid (expensive) thing to do.
In the next section, concepts, I focus on those core
concepts that VB6 programmers must learn. You’ll
learn why Microsoft is killing off COM (yesterday’s
great new technology, that turned out to be not so
great after all). You’ll learn why multithreading
sounds great, but is extremely dangerous to use –
much more so than most VB6 programmers imagine.
In the next two parts of the book I talk about code
– the language changes for VB and the language and
conceptual changes involved in learning the .NET
Framework.
Q: What would be your recommended top ten references
for the serious developer?
A: In the world of Microsoft software (which is the
world that I work in), I recommend the Microsoft
Software Developer Network (MSDN) first, second and
third. Then I recommend my books (naturally). Then,
as long as I’m being biased anyway, I recommend any
of Apress’s other books on whatever you are
interested in.
Seriously, how can I possibly be objective on that
question?
Q: It’s a blank slate, what added comments would you
like to give to enterprise corporations and
organizations?
A: View everything any expert or company tells you
with skepticism. You have your own set of problems,
and must find or build technology that solves those
problems. Software developers are taught of the
importance of design before they start coding. At
the enterprise level, it is worth spending extra
time to design the solution and thoroughly evaluate
a vendor’s technological offering before signing on
the dotted line. Lower cost solutions aren’t always
“cheap”. The high priced solution sometimes ends up
being far more expensive than you ever imagined.
When building your solution, componentize,
componentize, componentize. It is an essential first
step for being able to reuse your code, and can save
you if your original architecture is flawed.
Components can be easily redeployed. Your thin
client application can be turned into a thick client
solution. Your business logic can be redeployed from
tier to tier. Today’s technologies are designed with
components in mind – there is a reason for this.
And above all, remember that everyone is dealing
with the same rapid pace of technology. So no matter
how much you might worry that you’re falling behind,
rest assured that everyone else feels the same way. |
|
|