Ray, you are on the Borland Conference advisory board. What exactly is involved in that? What are your responsibilities and how often does the board meet? Are the meetings face-to-face or virtual?
The primary responsibility of the advisory board is to create the program schedule. There are actually several smaller boards that make up the entire Conference Advisory Board. I am a member of the RAD Board. Other boards include the Java/Enterprise Board, the Mobile Board, and the Management Board.
Shortly after the call for papers closes, the Conference Advisory Board meets in Scotts Valley at the Borland Campus. After being briefed by the folks at Borland regarding the general direction the conference is to have, the individual boards go off on their own. We spend the next two-to-three days selecting the set of sessions, tutorials, and speakers that will make up the program schedule for our respective tracks.
The selection process is grueling. First, we define a set of topics that we would like to see covered in the conference. Next, we try to match up these topics with specific abstracts that have been submitted. Unfortunately, this is easier said than done. The RAD board receives about 400 abstracts for any given year (there have been a few years where we received over 500). Of course, we have nowhere near that many session slots availablewe can select about 45 sessions.
The process is further complicated by specific rules that must be followed when selecting speakers and sessions. For example, one of the more challenging rules is that each speaker must present a minimum number of sessions. In the past, this used to be two, but in recent years, the minimum has been increased to three. It takes quite a bit of organization and several white boards to work this all out, and the process can be quite heated at times. Especially, when we encounter a situation where we have to choose which of two speakers will speak at the conference because it is simply not possible to have both.
By the end of this first meeting, each board has selected the sessions and tutorials that are to be presented and have assigned speakers to each. The boards have also created a preliminary schedule of all the sessions. After the first meeting, Christine Ellis contacts all of the selected speakers and lets them know when they are to turn in their first drafts. Christine works in Developer Relations at Borland and is the Conference Advisory Board Chairmanshe does more work on the conference program than all of the board members combined.
Shortly after the first drafts are due, the Advisory Board meets again in Scotts Valley. The second meeting isnt as grueling as the first, but it does have its challenges. For example, one of the first things that we must do is determine who has not turned in their drafts. If we did not receive a draft, we must contact the speaker and find out why. For the drafts that we do receive, at least two board members will read through the paper to ensure technical accuracy and to ensure that the paper covers what we expected from the abstract. Usually, we do not run into any major problems, but there have been cases where the speaker backs out on doing the session, or the paper submitted was so poor that we just could not accept it. When this happens, the board must resolve the issueusually by finding a new speaker.
During the actual conference, the Advisory Board members gather feedback from the attendees. Immediately following the closing of the conference, the entire board gets together and goes over the feedback that each board member has received. As such, I can assure you that if you make a comment to any Advisory Board member during the conference, it will be recorded during this meeting.
Your book "Developing Custom Delphi Components" is one of the most popular and respected Delphi books (based on comments that I've heard and read about it). It is one of the first Delphi books I bought, and certainly one of my personal favorites. Will there ever be an updated version of this book, or perhaps a "Developing Custom Delphi for .NET Components"?
Actually, I did write a second edition of the book. Unfortunately, when it was published, putting the version number of Delphi in the title was in style and so it was called, "Developing Custom Delphi 3 Components." Even today all of the material in the second book still applies to VCL component building. Unfortunately, once Delphi 4 shipped, it was very difficult to get bookstores to carry a "Delphi 3" book, so the book went out of print.
As for a third edition, I certainly have enough material for one. However, the key factor is finding the time to do this along with my other duties at Raize Software.
As for .NET components, this is an area that I have been doing quite a bit of work in recently. Many developers are experiencing the ability to create reusable object-oriented components for the first time using the .NET Framework. Much like what Delphi developers were going through back in 1995. Well, I see many of the same things happening with respect to .NET components that originally encouraged me to write my first book. For example, most of the material on .NET focuses on the higher-level services, such as Web Services, ASP.NET, and .NET Remoting, but rarely provide more than a passing glance at the core component and control framework provided by .NET. Now if I can only find a few more hours in a day<g>.
Are you doing any writing currently, or have you recently?
Although I no longer have a dedicated column in a magazine, I still write fairly regularly. For example, papers for sessions I present at developer conferences. I also write all the documentation for our Raize Components and CodeSite products.
Are there going to be Delphi for .NET versions of your products (CodeSite, DropMaster, Raize Components)?
Although our products currently support Delphi and C++Builder, under .NET it is no longer necessary to limit ones tools to a specific language. This is one of the strengths of the .NET Framework. With that said, we will be supporting .NET, and thus Delphi for .NET. First on our list is CodeSite for .NET.
Where do you live, exactly? If you are not native to that area, where are you originally from?
I live in Naperville, Illinois (about 35 miles west of Chicago) with my wife, Elizabeth, and our two sons, Christopher (C.J.) and Jack. Ive lived in the Chicagoland area all my life.
How did you get started in programming (How were you introduced to it, when did you realize you wanted to pursue it as a profession)?
I had my first taste of programming in high school, where I learned to program in AppleSoft Basic on Apple IIes. Although I thoroughly enjoyed the class, I started college as an engineering major. My first real programming course (in Pascal, of course) didnt come until my second year. Half way through the year, the Computer Science faculty was strongly encouraging me to consider switching majors. Nonetheless, I started my third year at college as an Aerospace Engineering major, but by the end of the semester I switched to majoring in Computer Science and Mathematics. This is when I first knew that I wanted a career in programming.
How many years experience do you have as a programmer?
Professionally15, but Ive been programming for about 19. Wow, I cant believe its been that long.
What was your career path to where you are now?
Before I started Raize Software, Inc., in 1995, I had quite a varied career path. During my undergraduate studies I worked at Argonne National Laboratory (1988-89) programming PCs used for collecting data during particle-physics experiments. After receiving my Masters Degree in Computer Science (1990), I worked at AT&T Bell Labs in the Long Distance Switching Division. The following year I went to Pansophic Systems to work on a new OS/2 and Windows CASE tool being co-developed with NatSystems. Four months later, Computer Associates acquired Pansophic Systems and eliminated half the work force. I remained, but they discontinued the partnership with NatSystems. I hung out at CA for while, and in 1993, I went to work for Enterprise Systems, which developed custom PC software solutions for the healthcare industry. In 1994, I worked for a brief time at FutureSource on a new futures trading system.
Even with the variety of positions I held during my early career I still had many other projects to keep me busy. I taught computer programming at my undergraduate alma mater for a couple of years. I also got started writing Turbo Pascal articles for PC Techniques magazine. In fact, it was through Jeff Duntemann and the magazine that I was able to get my hands on a very early copy of what was to become Delphi. I was so excited about Delphi and saw such huge potential in it that I decided to start my own consulting company in February 1995. The company was originally called Raize Software Solutions, Inc. As the company shifted to more of a product focus, we changed the name to simply Raize Software, Inc.
What tool[s] did you use prior to Delphi?
Having such a varied career path has allowed me to use a variety of tools. At Argonne, I used Turbo Pascal exclusively. At AT&T, I used a stripped down C command line compiler and emacs. At Pansophic Systems, I used a Turbo Pascal-compatible compiler for OS/2 developed by NatSystems. At CA, I used C++ and C. At ESI, I used Turbo Pascal, Borland Pascal for Windows, and Borland C++ for Windows.
What languages do you know besides Delphi? Which ones do you currently utilize?
Im still not used to referring to the language as Delphi. To me, Delphi is the tool and an approach to RAD, while Object Pascal is the language. Anyway, I do most of my work in Delphi, but recently Ive been doing quite a bit of work in C# and a little in VB.NET (well, not that much in VB.NET<g>). In the past, I did quite a bit of work in C and C++, but I hardly touch these languages these days.
Would you recommend a career in programming to young people today?
What courses would you recommend they take? What languages/technologies should they key on?
Unfortunately, there probably wont be much choice when it comes to languages. Today, most colleges and universities use C++ to teach programming, which is most unfortunate. All too often the idiosyncrasies of the language distract the student from the programming topic at hand. This was never an issue with Pascallets face it the language was designed to teach programming.
Unfortunately technologies change much too rapidly to suggest anything in particular. Instead, I would recommend that students focus on gaining a solid understanding of the programming fundamentals, especially data-structures, algorithms, and object-oriented programming. I know this will sound a little corny, but the core fundamentals do form the foundation upon which all the other technologies are built. Learn the fundamentals well and youll be able to pick up any new technology.
I would also recommend courses in Discrete Math, Logic, Ethics, and Technical Writing.
Which software project/product that you have participated in are you most proud of?
Since starting Raize Software, I tend to be most proud of our most recently released product. So, for now, I would have to say, Raize Components 3. In a short while, I hope to change my answer to CodeSite 3 and CodeSite for .NET J
What project[s] are you currently working on?
I am currently working on CodeSite 3 and CodeSite for .NET. I am also working on some new sessions and tutorials for upcoming conferences including the Borland Conference in November.
What do you do when you're not involved with work, directly or tangentially? (Hobbies? Sports?)
If Im not working, you can most likely find me playing with my two sons. I enjoy pool (and snooker) and golf, although I do not get to play as often as I wish. My wife and I are also avid baseball fans and in particular die-hard Cubs fans. I also enjoy playing basketball and volleyball when I can find some extra time.
What was the funniest experience you've ever had related to programming?
At the Borland Conference in San Diego in 1995, Bob Ainsbury and I presented a session on multithreaded programming in Delphi. (Well, it was actually an alpha version of Delphi32.) About halfway through the session Bob starts talking about scheduling and says that maybe a demonstration would be helpful. Bob then selects three volunteers from the audiencetwo men and one woman.
With the three volunteers up at the front, Bob directs me to come out from behind the computer. At this point, I had absolutely no idea where all this was heading. Bob had asked me to help with his session that morning and while I worked on a big demonstration program for the session, he worked on the rest of his presentation. The point is that I did not see any of Bobs slides or other material until he showed them in the session.
Bob then tells me that I will be the scheduler and the three volunteers are threads. Bob then gives each person (i.e. thread) a priority levelboth men get the same priority value while the woman gets a slightly lower value.
Bob then brings out some slices of rather cold pizza and puts them on the table in front of the three threads. Bob then explains that each thread gets to do work when the scheduler gives the thread a time slice. In other words, when I point to a thread, that person is to pick up a pizza slice and take a bite.
Next, Bob tells me to schedule the first thread, so I point to one of the men and he takes a bite of pizza. Bob then tells me to switch to the next thread, so I point to the other man, and he takes a bite of pizza. Again, Bob tells me to switch threads, so I point back to the first man as the woman has a lower priority value, and the man takes another bite. At this point, the audience is really getting into it. Bob then has me switching threads more quickly and these two guys, who were great sports, kept taking bites of pizza. By now, everyone was laughing, including the woman who did not have to stuff her face full of pizza. Of course, in the end, Bob explained how this illustrated how a thread can be starved.
What was the most interesting experience you've ever had related to programming?
Having the opportunity to meet with Delphi R&D staff members.
What was the most frustrating experience you've ever had related to programming?
Releasing a product and then discovering some little issue that slipped through the cracks. As a perfectionist, this is extremely frustrating.
What 3rd party tools do you find essential (besides your own)?
VMware is absolutely essential for testing/supporting our products under multiple operating systems. I also frequently use Beyond Compare from Scooter Software for doing file comparisons, and AQTime from AutomatedQA is on my list for low-level profiling.
What do you hope to see from Borland, especially as regards Delphi, in the future?
Well, Im anxiously waiting for Octane, the next release of Delphi that will include full .NET development support as well as a major new upgrade to the IDE. I strongly believe that Borland has a wonderful opportunity with Delphi right now, especially in the .NET arena. C# is nice, but personally I still find Object Pascal to be a more elegant language. Furthermore, for all practical purposes, C# is limited to .NET development, while Delphi will be able to target both .NET and native Win32, and lets not forget about Kylix and Linux.
Moving forward, I would like to see some changes with respect to developing user interfaces for applications. For instance, weve been dropping buttons and other controls on forms and hooking up event handlers for over a decade now, and I cant believe that the current offerings of form designers is the best that we (as an industry) can come up with. Consider the simple task of changing a text property of a control. The current approach of switching to the object/property inspector and editing the text in the grid is tedious and takes the developers attention away from the form they are designing. Why not just edit the text directly on the form? I believe it is time for the industry to re-evaluate the entire process of how we create our user interfaces, and I would like to see Borland take the lead with Delphi.
Where would you be without Delphi?
Id still be programming (probably in C++ or Java), but I wouldnt be nearly as happy or excited about what Im doing.
Where would Delphi be without you?
I would like to think that my work has enriched Delphi, but I am just one of countless others who have enriched Delphi over the years. Delphi would still be a great development tool regardless of my contributions because it is the combined efforts of everyone involved with Delphi that has made it the great tool that is it. A single persons contributions will probably have very little effect overall. That is, of course, unless you happen to be on the Delphi R&D Team J
What effect do you foresee C# and VisualStudio.NET having on Borland in general and Delphi in particular?
Up to now, VS.NET has been essentially the only game in town when it comes to .NET development. As such, its effects are already evident. For example, Borlands new C# Builder will be competing head-to-head against VS.NET not at the language level or the class framework level, but at the IDE level and the level of integration provided between disparate technologies.
With respect to Delphi, C# is having more of an effect on Delphi developers than VS.NET because although Borland has made a preview of the Delphi command line compiler for .NET available, the compiler is not yet complete (at the time of this interview) and there are certain things that just cannot be done yet in Delphi for .NET. As a result, Delphi developers who want to get into .NET are using C# even though many are not happy about it. This is why Delphi developers are so anxious for the release of Octane.
Once Octane is released, current Delphi developers using C# will gladly switch back even if Octane is nothing more than C# Builder utilizing the Object Pascal language. What will be interesting is whether the Object Pascal language, VCL for .NET, and any other technologies included in Octane will entice new developers to the Delphi community. This is why I noted earlier that Borland has a wonderful opportunity with Delphi right now. They have the chance to make Octane do for .NET development what Delphi did for Windows development.
What do you think of the .NET framework?
I like it a lot. The .NET Framework is much more than a framework for developing Web Services. The .NET Framework represents the new Windows API. Instead of accessing the OS through a huge monolithic function-based API, OS services are accessed through a true object-oriented framework. And although object-oriented frameworks around the Windows API have existed for quite some time (e.g. VCL, MFC, etc.), the difference now is that the framework is not tied to a particular development tool. The class hierarchy is built directly into the .NET Framework, which is accessible to all .NET development tools.
How many hours per day do you spend programming/at the computer?
On average, I spend between 8-10 hours a day at the computer.
How much time do you spend on the newsgroups/surfing the web each day?
I dont surf the web all that much, but I do spend some time on the Raize Software newsgroups handling support issues. I also browse several Borland related newsgroups. In all, I probably spend about an hour or two per day.
Which programming web sites do you have bookmarked?
Not too many actually (BDN, MSDN, GotDotNet). I tend to use my MSDN DVD with respect to programming topics.
How do you keep current with your programming skills?
This is quite a challenge. Of course, I read a lot, but reading will only take you so far. To get a real understanding of any programming topic, you need to put it into practice. If I am unable to apply a specific topic to work being done at Raize Software, I will often try to present a session on the topic at a developer conference. Having to explain a programming topic to a bunch of programmers is a great motivator.
Which Borland Conferences have you attended?
Ive been to every conference since 1995, except for 1996 when I was home for the birth of our first son.
Which was the best one, and why?
I dont know if I could isolate one as the best, though San Diego in 1995 will always stand out because it was my first. San Diego was also the first Borland Conference after the release of Delphi and I was fortunate enough to present several Delphi sessions during the conferenceit was a big thrill for me.
Who do you consider to be the best programmer you know personally, or know of?
Again, I dont know if I could isolate any one as the best, but several do come to mind: Anders Hejlsberg, Chuck Jazdzewski, Danny Thorpe, and Blake Stone. All are outstanding programmers and they all have different areas of expertise, which makes comparing them rather difficult.
What is your "claim to fame" outside the realm of programming?
I still hold the Triple Jump record in Track and Field at my High School. Of course, now that I mention this, someone will come along and break my record. I have at least another year, though, as the Track and Field season for 2003 has already passed J
If you weren't a programmer, what do you think you'd be doing for a living?
Probably designing spaceships or airplanes.
What is your favorite programming book?
User Interface Design for Programmers by Joel Spolsky.
What is your favorite non-programming book?
With a six-year-old son just finishing first grade, most of my non-programming reading involves reading to him. Our favorite books are the Encyclopedia Brown series by Donald J. Sobol J
. I read these when I was a kid and its been great reading them to C.J.
What is your favorite food?
What is your favorite beverage?
What is your favorite color?
Someone once told me that having purple as your favorite color is supposed to be a sign of insanity. BTW, purple is also my favorite color.
What is your favorite movie?
Indiana Jones The Last Crusade
What is your favorite song?
Wow, this is a tough one. I enjoy such a wide variety of music that it is difficult to single out just one song. Im a big fan of Def Leppard and so several of their songs are high on my list, such as Animal, Hysteria, Photograph, etc. Take on Me by A-ha is also a long time favorite of mine. Recently, Ive been enjoying the high-energy genre, and Wanna Be With Me by Da Buzz and You Are Alive by Fragma are some of my more recent favorites.
What is your favorite musician or musical group?
This interview took place via email June 2003.
Clay Shannon is a Borland and PDA-certified Delphi developer and the author of "Tomes of Delphi: Developer's Guide to Troubleshooting" (Wordware, 2001) as well as the novel he claims is the strangest one ever written, "the Wacky Misadventures of Warble McGorkle" (see Wacky Warble, etc. for more information on the 4 Novels application, which contains this and three other novels he has penned).
You can find out more about Clay at: https://hometown.aol.com/bclayshannon/myhomepage/index.html
You can look into Clay's shareware and determine his current availability at: https://hometown.aol.com/bclayshannon/myhomepage/business.html
You can contact him at: BClayShannon@aol.com