News from National -- Current Articles
Top Developer: D. Appleman
Interview by S. Ibaraki, I.S.P.
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
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
- 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
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
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
Q: What would be your recommended top ten references for the serious
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
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.
News from National | Archives | Search