Interview with Chad Z. Hower aka Kudzu
Who is Chad Hower?
Chad Z. Hower, a.k.a. "Kudzu" is the original author and project
coordinator for Internet Direct (Indy). Indy consists of over 110 components
and is included as a part of Delphi, Kylix and C++ Builder. Chad's background
includes work in the employment, security, chemical, energy, trading, telecommunications,
wireless, and insurance industries. Chad's area of specialty is TCP/IP networking
and programming, inter-process communication, distributed computing, Internet
protocols, and object-oriented programming. When not programming, he likes to
cycle, kayak, hike, downhill ski, drive, and do just about anything outdoors.
Chad, whose motto is "Programming is an art form that fights back,"
also posts free articles, programs, utilities and other oddities at Kudzu World
Chad is an American ex-patriate who currently spends his summers in St. Petersburg,
Russia and his winters in Limassol, Cyprus. Chad can be reached at cpub@Hower.org.
|Name: Chad Z. Hower
Civil status: Married
Residence: Summer: St Petersburg, Russia - Winter: Limassol, Cyprus
Known Programming languages: Delphi, Java, C#, Visual Basic, Fortran,
Forth, Assembly, GFA, C++
Hobbies: Travel, Skiing, Kayaking, Driving, Photography, Programming,
SwissDelphiCenter: How did you start and how you got into programming (later
Delphi). Did you learn by yourself?
Chad Hower: I started on a Timex Sinclair with a memory expansion kit that
brought the total memory to 4 kilobytes. It has a very simple version of basic
and a chiclet keyboard that was very hard to type on. It was 1981 and I was
6. From that point I was hooked and learned everything I could about computers
since then. I then moved to the Tandy TRS-80's, then the Commodore 64. From
there I moved to the Atari STs, and finally to the PCs.
SDC: Why and when did Borland decide to ship Delphi with the Indy components?
And how did you reach this?
Hower: Because the Indy components were in such wide use, and free,
it made sense. The existing internet components that shipped with Dephi were
quite problematic, so Indy was a logical choice because of its popularity. The
price didn't hurt either. :)
Several Borlanders had been using Indy themselves as was Borland internally.
More and more Borlanders started using Indy including many members of the R&D
team. Eventually enough of them used it that they took it to management.
SDC: What was the goal when you started developing Indy?
Hower: Simply to provide some useful internet components. Winshoes (Indy's
predecessor) was originally written in VB, and was ported to Delphi soon after
Delphi came out. At the time of Delphi 1, the internet was just starting to
grow, and combined with the fact that Delphi was brand new there were no Internet
I had projects that I planned to port to Delphi from VB, but they all relied
on Internet access, so porting that layer was the first step.
SDC: Which are the most important changes with Indy9 to Indy8?
Hower: Many more components. The component count is around 120 now versus
69. There has also been a restructuring of certain core concepts, and many core
additions such as command handlers for building servers in a visual way. There
have also been many optimizations to many parts of the code.
SDC: Will Indy9 be compatible to Indy8?
Hower: No, but most of the changes are pretty easy to adapt to. Some
code will port with no changes, while other code will require a few changes.
For most people the upgrade path is quite minimal in effort.
SDC: Which are the main advantages of IntraWeb to script languages like
ASP, ColdFusion and PHP?
Hower: It's like comparing Dephi to Assembly. With those scripting languages
you are constantly in the HTML and you need to understand the HTTP protocol,
HTML, and many low level details. IntraWeb is like VCL for the "web platform".
You just build your applications in a manner very similar to a normal Delphi
application and IntraWeb does the rest. What Delphi did for the WinAPI, IntraWeb
does for Web programming.
SDC: You know the Delphi community very well. Can you describe what's unique
Hower: The dedication of the user base. Its reminiscent of the Amiga
or Atari ST crowds. They were not the biggest, but they were tight, and strong.
SDC: What do you specifically like about Delphi and/or not like about other
Hower: Type safety, solid OOP support, a good inherent object library,
non cryptic style, and fast compiles. Type safety is essential. Delphi enforces
type safety, yet allows you to break the rules if you explicitly tell it thats
what you want to do (with a hard type cast).
SDC: You've done software development in US and are now working in Russia,
can you describe the differences between US and Eastern European based software
Hower: Eastern European developers have learned with minimal resources.
I've seen Delphi running on machines that I thought could barely run Windows
and yet that person used that same machine to compile programs and develop code.
I've also seen some truly amazing code. What many of them lack in resources,
they make up for with desire and dedication. If the US ever opens the working
Visa restrictions for Eastern Europeans, many programmers are going to be in
real trouble. Not only because of salary requirements, but because of the sheer
volume of very talented developers.
SDC: Why and how did you do something like Indy as an open source project
and IntraWeb as commercial project?
Hower: Open source and Commercial products both have their places. Indy
started when I was consulting and also had shareware. My income did not come
from components and it was something that was necessary for my other software.
I wanted to see it develop further, but knew that I could not dedicate the time
required. So I experimented by open sourcing it, and that has made Indy what
it is today. I never use half of whats in Indy, but its there because the community
IntraWeb is unique in that its not just a set of components or a simple framework.
It is very unique and really one of a kind. And everyone needs to make an income
- so for us (Atozed
Software) IntraWeb is one of our commercial products.
Its just a matter of market, timing, and needs. For us (at the time) Indy was
just a smaller need of larger pieces, and open sourcing it benefited us as well
as the user community. Indy continues to help us as well because it is used
in our products including IntraWeb. We may decide to open source other source
code in the future as well.
SDC: How do you see open source & commercial software evolve in the
future now that you've experience with both?
Hower: I think that Commercial software is stable in its position. But
I think that Open Source needs to continue to evolve. Red Hat is one of the
few experimenters in this arena. Open Source is great but still poses a support
problem for many companies. Open Source needs to evolve in such a way that it
remains Open Source and keeps its heritage and its goals - but acquires some
aspects of commercial software as well. I'm hoping to offer some insight into
this more in the future with Indy. And some of it we've already seen by IBM
adopting Apache and Linux, and Borland adopting Indy. But this is just the beginning.
I think that we also need to see the Open Source process documented and studied
more, and replicated from there. Most Open Source software is merely "Abandonware"
because of lack of participation. Indy is an exeption rather than a rule, as
are Apache, Linux and other well known successful Open Source projects.
SDC: How do you see things evolve with .NET?
Hower: Most of this is going to have to wait to see Borlands final move
When Delphi .net is released we certainly could release a .net version of Indy
quite soon after, but it would be very VCL centric and "odd looking"
to the .net crowd. It would not work the ".net way". That is it would
use VCL bases and not .net bases. It would be like an ActiveX is to a Delphi
programmer - usable but not comfortable.
To rewrite it around the .net model in Delphi would be quite a bit of work and
fundamentally alter the way Indy functions. This would also break compatibility
We may have two versions. Indy/VCL and Indy/Net. Time will tell. We already
have a Indy/J that is in the works (Indy for Java) and I've ported some of the
base TCP client to C# as an experiment. So in the future we may see multiple
versions of Indy. :)
Copyright © by SwissDelphiCenter.ch