Exclusive Interview with Karl Moore

Introduction

To many, the words “Karl Moore” and “.NET” are one and the same. In this exclusive interview, Ahmad Permessur gets to put Moore in the hot seat and quiz him on everything: from whether .NET is really worth the hassle, to how you can become an author yourself, to why he’s obsessed with “Murder, She Wrote”. Read on!

Karl is one of the world’s most-respected .NET gurus. His easy-to-understand tutorials have generated a cult-like following. His first book was a sell-out success and he’s just released a second.

Joining me for an exclusive online interview, ladies and gentleman… it’s Karl Moore.

Karl: It’s a true pleasure to be joining you, Ahmad. And oh, what an overstated introduction! You sound like Michael Parkinson.

Ahmad: Except better looking.

Karl: I fear that’s highly debatable.

Ahmad: Let me start by talking about you. I mean, I’ve browsed your www.karlmoore.com site and already learned a good deal about how you spend your time. I know you’ve written for dozens of leading magazines and previously had a weekly feature on BBC radio. You write your syndicated Dot Column too, plus somehow find time to run White Cliff Computing Ltd. Are you tired?

Karl: I have two great blessings that keep me going. An amazing team supporting my every move. And a huge cupboard of Nescafé Gold Blend

Your Coding Days

Ahmad: Tell me, Karl. You’re well-known for all your work in the industry, in many different programming languages. What was the first programming language you ever used?

Karl: It was BASIC, the Beginner’s All-purpose Symbolic Instruction Code. I had an Amstrad CPC 464, one of those machines that worked with cassette tapes. I used to hack into games and customize them to suit my needs – or allow me to get onto the next level, quicker.

Ahmad: You were a hacker?

Karl: Well, in the sense that I explored my computer, yes. You know, in a nice white-hat sort of way. Uhm. I’m feeling nervous. Let’s move on.

Ahmad: Sure. I want to know about the absolute coolest code you’ve ever written… what and where!

Karl: Ouch, that’s good. I’d probably say that WebZinc, the Internet manipulation component retailed by my company, is one of the best products I’ve ever been involved with – and I wrote a lot of the original versions, adding some really intelligent functions to the program. That’s what I like doing best: writing code that makes computers smarter.

.NET Question Time

Ahmad: For many, the term “.NET” sends chills down the spine. How would you answer the question: “What is this .NET thing?”

Karl: I suppose it all depends on who’s asking. If my Aunt Mable were to pose the question, for example, I’d have to first explain that someone invented a typewriter, and we’ve since evolved onto something called a computer, which has something to do with this thing called “.NET”.

But for the knowledgeable people at DEVpapers.com, I’d say that it’s one of those broad Microsoft visions based on “distributed computing”. To developers, it really means two core products – the free .NET Framework, which is like one big, intelligent runtime, and Visual Studio .NET, which allows you to write code that runs on top of the .NET Framework.

I agree that it’s a little scary at first. I found that out, alrighty. But it’s easy to overcome with just a little patience!

Ahmad: I understand .NET it works with many different languages. Which is the best to learn?

Karl: The latest version of Visual Studio .NET supports four different languages by default: Visual Basic .NET, C#, J# and Visual C++. In general, if you’re a Visual Basic developer, go for VB .NET; if you’re a C++ developer, opt for C#; if you’re a Java developer, check out J#.

The core functionality of the .NET Framework (the “runtime”) is accessible by any language and the differences between each are so minute, it makes sense to go with the one whose syntax you know best.

Ahmad: You teach a lot of people how to move to .NET, but how did you do it? And do you really recommend it?

Karl: Oh, it wasn’t an easy ride. I just dived in when they released the early beta versions and felt the cold, cold water. I spent months playing around and then wrote about what I discovered. And I’m still learning: to this day, I’m still picking up tips and tricks to make my development work better.

And no, I don’t recommend it for everyone. Just because I use .NET and it works for me, doesn’t mean it’s going to “do it” for everyone. But it’s certainly an option worth investigating. With a little time and effort, it can bring some interesting rewards.

Ahmad: So then, what are your favorite .NET features?

Karl: Undoubtedly, ASP.NET. This is like the next version of ASP, and it allows developers to build interactive Web applications almost as though they were simple Windows programs. The deeper you get, the more you realize how you can extend it too – and really add power where you want it.

But don’t get me wrong. I’m not one of those 100% .NET evangelists. My books regularly highlight Microsoft mistakes and clearly point out bugs and pitfalls. There are some things I really dislike about .NET – the inability to edit code during runtime, for example, a great VB 5/6 attribute.

Ahmad: If I understand, ASP.NET isn’t a language, right?

Karl: That’s correct. ASP.NET is a part of that .NET Framework “runtime” I mentioned. You can write code for ASP.NET using VB .NET, C#, whatever.

Ahmad: I see. And what about those coming from VB 5/6 to VB .NET? Is it worth upgrading? What are the differences?

Karl: There are hundreds of differences, some good, some bad.

On the plus side, you’ll have access to dozens of fresh controls. You’ll be able to plug into the many functions of the .NET Framework to help you get your work done. You’ll be able to create some of the newest types of applications, such as ASP.NET Web sites, Web services, and applications that run on anything from mobile phones to PDAs. Your code and its resources are also “managed” by the Framework, meaning no memory leaks or other such errors will occur – all the plumbing is handled for you.

But there’s a downside too. Your clients need the .NET Framework installed in order to run your program (about 20MB, yet is now being distributed with all versions of Windows). You also need to get your head around a few syntax changes, plus figure out the main classes within the .NET Framework. It just takes time – and a good book or two.

Also, as a general rule, don’t upgrade existing VB applications using the built-in upgrade wizard. It’s not efficient and is suited only to smaller applications. My advice: don’t take the upgrade route, use .NET for new projects only.

Ahmad: Have you tried Everett yet? That’s VS .NET 2003, right?

Karl: Yup, “Everett” was the codename for pre-release Visual Studio .NET 2003. I spent ages working with it (the final version was released in April).

Ahmad: So, is it any good? A major advance over VS .NET 2003?

Karl: There’s a lot of hype surrounding VS .NET 2003, but the truth is that it’s not all that different from VS .NET 2002.

I have the final version on my machine and the only real additions are the J# language, built-in support for mobile and ‘smart device’ (PDA) projects, plus an obfuscator to protect your code (which is freely downloadable anyway). There are a few bug fixes, user interface changes and small syntax additions too, but nothing major.

I’m guessing that’s why the upgrade price for VS .NET 2002 users is only around $30.

Ahmad: Does .NET mean the end for PHP?

Karl: Oh yes.

Just teasing – of course not! From my experience, PHP is serving a different sort of market. Yes, it overlaps with ASP.NET – and yes, in future, new developers may opt for the easier “drag and drop” method of ASP.NET development over scripted PHP.

But I don’t think there’s any imminent threat. You are a drama queen, Ahmad.

Ahmad: I know. You should see my stockings.

Your Books

Ahmad: You’ve got a couple of .NET books on the market now. Tell me a little more about them.

Karl: Well, when I first started using .NET, I had ideas for two really great programming books. The first was a witty computer programming book that taught everything you need to know in the easiest possible manner. I did that in “Karl Moore’s Visual Basic .NET: The Tutorials” (ISBN 159059021X).

My second idea was for a cutting-edge, real-world code library, a collection of programming secrets all those jealous developers try to keep hidden away. I’ve spent three years creating and testing some amazing ready-to-run routines that developers can put straight into their applications. And they’re all in my new booKarl: “The Ultimate VB .NET and ASP.NET Code Book” (ISBN 1590591062).

Ahmad: Ahh, I see. And are they both suited to anyone at any level of experience? I mean, could a beginner get started with your books?

Karl: Oh, absolutely. That’s precisely what I wrote the Tutorials book for: to allow those new to programming to get started, fast.

My latest book is more advanced, however can still be picked up by a developer at any level. In addition, each chapter includes an “Essentials” portion, which briefly covers all the main points you should know – useful for those new to the language, or serving as an excellent .NET “refresher” for hardcore developers.

Incidentally, none of my books nor tutorials include excess “filler” garbage typically found in computer titles. I do not show you how to double-click or open the help file. I do share real information that will help in the real world, stuff that’ll ensure you create better solutions, quicker.

Ahmad: Yes, quicker. I read on the Apress site about your Tutorials booKarl: “Moore promises to turn even newbie programmers into VB.NET wizards, quicker than anyone else”. Do you think you’ve achieved that?

Karl: I hope so. I spent ages working on the format of the tutorials to ensure the material could be absorbed in the quickest amount of time. I hope I’ve helped flatten the learning curve.

People have told me since that when reading the tutorials, it’s almost as though I’m “in the room talking” to them. I guess that makes sense: my writing style is friendly and informal, and I often write as I’m discovering something for the first time. So, I learn with the reader – rather than simply telling them what they need to know.

I sprinkle my work with humor (debatable!) where possible too, plus constantly ask questions to help stimulate the mind. And I don’t always give the answers… just enough information for the reader to be able to figure it out themselves with a little thinking.

I’ve heard that some people apparently treat the tutorials book a little like they’d treat a novel. You don’t even need a computer to learn, just a few hours and a comfy chair!

Ahmad: Watch out Stephen King?

Karl: With some .NET books, maybe. Not with mine. They aren’t scary enough. I think I should’ve used longer words.

Ahmad: So tell me more about this new booKarl: “The Ultimate VB .NET and ASP.NET Code Book”.

Karl: Well, I don’t know what programming language you use, Ahmad. But I’m sure you know hundreds of little secrets, those neat tricks and techniques that took you years to figure out. Perhaps you’ve even built up your own solid code library that you can use to instantly drop functionality straight into your applications.

What if your programming language was suddenly upgraded – and all that knowledge lost? That’s what has happened to VB5/6 developers with the .NET revolution. This book rectifies the situation, presenting hundreds of ready-to-run code chunks and real “secrets” that other developers simply wont’ tell you. It’s the book I wish I had when I first started out.

It also presents the cheat’s guide to C#, plus unveils the hidden .NET language! But you’ve got to read it to find out more! 😉

Ahmad: Well, you said you had a “dream” of two programming books like this. And with the release of this book, you’ve done it. Do you plan to write any more?

Karl: Writing is a true passion of mine. I enjoy it terribly and am sure I’ll never stop.

But I’ve reached my goal on the .NET book scene right now, so I think I’ll probably apply the brakes at this point. Until I have another one of those “dreams”… 😉

Ahmad: Oh!!

Life as an Author

Ahmad: You know, aside from all the programming and technical stuffs, I’m sure many people want to know: how did you become a published author?

Karl: A lot of people had suggested I turn my online tutorials into a book. It seemed like a good idea, so I simply followed it through – and eventually published through Apress.

I also met the Apress directors – Dan Appleman, when we were both speaking at a conference in London, and Gary Cornell, whom I shared ice-cream with at Tech-Ed in Barcelona – which injected a little personality into the typically solitary process of writing a book.

Ahmad: Many of your readers love your humor in your tutorials and books. Who inspires you? It’s me, isn’t it?

Karl: Yes. And my big toe, Colin.

Actually, I probably base my humor on classic Brit wit. Black Adder has to be my favorite comedy series, with the subtlety of “The Office” series following shortly behind.

The fact that I write however is probably down to watching all those “Murder, She Wrote” re-runs. The way Angela Lansbury is constantly involved in the community and tapping out best sellers every-other-episode was enough to psychologically scar me into becoming an author myself.

That’s the truth, by the way. Ask any of my friends. BBC1. 2.35pm weekdays.

Ahmad: I’m curious: can you tell me what happens when you write a book? Briefly take me from starting to publication. I just know so many budding writers out there will find this really interesting. I know I will!

Karl: A great question, Ahmad – and hopefully, an interesting answer.

Firstly, remember that all of my technical books have been published through Apress – however from my good friends in the industry, I know that most technical publishers work in this same way. Also, the processes I’ll be describing only apply to the technical genre: if you’re writing fiction, it’s obviously all very different.

So then, how does it all start? Well, it begins with me, the author: I think of an idea and work on a few general details until I get it right. Then I bounce a speculative e-mail off the Apress directors. We’ll throw a few thoughts around and finally settle on a theme. If all sounds good, we move forward and the author produces an official proposal, which describes the book, the reader level, any competition and so on. This is later used to “sell” the book to the bookstores and sites such as Amazon.

In my experience, it’s best to have written a fair chunk of the book by this point. Unless you’re a really bad writer, or the idea is a flop, you should be able to get it published somewhere (online, as magazine articles, as a book, whatever) – so I’d say take the risk and invest time to: (a) ensure you have smoothed out any “sticky” details about your idea; (b) ensure you can actually do it!

Then, you sign a contract and inform your new project manager of the expected deadline for you providing final copy (“copy” is a term referring to your text). You don’t have to make this deadline (most don’t!), but you should certainly try.

Next, get writing like crazy! You need to use the writing templates your publisher supplies, plus make sure you check and double-check your work. When you’ve sent off your final manuscript, breathe a sigh of relief and go out celebrating – you may have also received an “advance” on your royalties by this point, so at least you’ll have something in your back pocket.

Next up we find the technical review process, where one or more qualified individuals slowly work through your entire book and highlight the bugs. Their comments are sent back to you (through the reviewing feature in Microsoft Word), and it’s up to you to sort them out. It may sound like a drag, but this is actually pretty exciting – especially if you get a good reviewer. That extra brain can help stop you making a fool of yourself.

When you’ve passed the technical reviewer, you’re then onto the gruesome editor. This guy is basically the technical reviewer for your English. He may reword a few sentences, make text flow suggestions, standardize the way in which you use phrases – and basically ensure your document is in a good, more-than-readable condition. You make comments on his alterations (perhaps rejecting a few, if you’re unhappy), then send them back for a final editorial check.

Next, your book prepares to enter production. A production manager and graphic designer put together sample pages for you to approve. You agree on a format, then wait for the final chapters to be created.

In the meantime, you’re talking with the marketing manager, who usually assists in preparing the book front and back covers. This usually involves reviewing the title, creating “bullet points” for the front cover, writing the “blurb” (text on the back cover), alongside a small biography. Once you’re happy, you pass off the final design and it enters the printing house for production.

Also, behind the scenes, some poor soul is given the task of indexing your book. Literally, going through it page-by-page and finding the “hidden structure”. It’s all done manually and must take days.

This is then added to your final production chapters, which you get to review en masse for the last time. Make any small changes, then wave goodbye: they’re passed straight to the printing house, where I believe they make metal-plate reproductions of each of your pages. Then they print and bind a “run” of your books: my first book had a run of around 8,000 copies. The book is automatically reprinted every time it goes out-of-stock

After that? You sit bacKarl: your own personal copies will arrive shortly, and the books will begin shipping throughout the world within a month. If published in America, they’re put in transit to places around the U.S. and literally shipped out to Europe.

It isn’t over yet. There’s marketing to consider: you may need to get in touch with the U.S. and European marketing teams to help you publicize your book. You may wish to put it forward for online review, or attend signing or press events at technical conferences. You may wish to make yourself available for interview, after the official press release goes out.

The hope is that, a few months down the line, your book will have sold well… you’ll have earned more in royalties than your “advance” covered and should be looking forward to your next check. I’m keeping my fingers crossed!

Ahmad: Wow. That’s amazing! I feel like writing my own book after that, Karl. Tell me, how long did it take you to write your first book? And when do you usually write?

Karl: The first one took me months and months, because I’m one of those annoying perfectionists that like to get everything just right. But you can do it quicker.

And I always write at night, typically between eleven and three in the morning. It may sound unsociable, but there’s absolutely no disturbance. And it gives you a great excuse for getting up late the next morning!

Ahmad: Do you work on paper first, then type? And what software do you use for Word processing, graphics and so on?

Karl: I always draft out “high level” thoughts on paper first. All of my work (and not just my writing!) begins life as a scribble in my diary. But then it’s straight on the computer for the rest of the journey.

I use Microsoft Word for writing (sometimes Notepad if I don’t need formatting), and Paint Shop Pro to take screenshots.

Ahmad: And, most importantly, what do you do when you are stuck for ideas?

Karl: I get away from the computer!

Don’t get me wrong: computers are great, but they have a way of “hypnotizing” you. And that isn’t awfully creative. When I get a problem, I usually go and lie down on my bed and let my mind wander. The silence usually brings its solution, or at least, an enjoyable rest.

Just a Little Moore

Ahmad: Well, Karl, this has been a real pleasure. Tell me, do you have any new projects on the horizon?

Karl: There are a few interesting business projects I’m getting involved in, but nothing too official yet.

Hey, maybe I’ll pen that murder mystery I have in my mind sometime soon. Just need to find a publisher. I’m unsure it’s up the Apress avenue…

Ahmad: And, before we depart, tell me: what do you do when you’re not programming or writing?

Karl: Eat and sleep. Don my stick-on chest hair and try to get jiggy on the 70s dance floor. Watch those “Murder, She Wrote” re-runs I mentioned. Get interviewed. Oh, the possibilities are endless.

Ahmad: He he he… Karl, it’s been an honor to have you with us here at DEVpapers.com. I’ve learnt a lot and thank you for your time. We look forward to reading your next book. Thank you and goodbye!

K: It’s been a huge pleasure. A big hello and warm goodbye to everyone at Hot Scripts!