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:
 
  1. Bandwidth is going to increase. More and more people will move to DSL and higher speed network access.
     
  2. 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.
     
  3. 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.


Copyright Network Professional Association® 1994-2017. All Rights Reserved.
NPA Privacy Statement