Gee, GExperts Experts!
by Clay Shannon - bclayshannon@earthlink.net
For those of you not yet familiar with GExperts, let the following description, taken from the GExperts online help file, be a formal introduction:
GExperts is a set of tools built to increase the productivity of Delphi and C++Builder programmers by adding several features to the IDE. GExperts is developed as Open Source software and is contributed as freeware to the development community. Users are encouraged to download the source code and submit bug fixes and patches as well as new features for inclusion in the GExperts distribution.
If you do not yet have GExperts installed (and you are using Delphi and/or C++ Builder), you are advised to go directly to www.gexperts.org and download a copy of this amazing suite of experts.
Impressed by the high quality and low price (free) of GExperts, which upends the old adage “you get what you pay for”, I asked myself “who are these guys?” and then, intrigued by the product, its history, and the open source direction it has now taken, posed a series of questions to the three primary movers and shakers behind the product. These are: Gerald Nunn (the original author), Erik Berry (the project leader), and Stefan Hoffmeister, the standout contributor among the major contributors to the project. Others who have played a major role are named in the About box at the bottom of the GExperts menu (which Delphi sports after installing GExperts).
Gerald, what is the early "history" of GExperts (in a nutshell)?
Gerald: I started developing it when my boss, a clipper-head, complained that the Delphi editor didn't have a quick way to jump to a given procedure like his DOS editor. At about the same time, Ray Konopka released an article in Visual Developer showing a small utility that enabled you to show all procedures in a unit. Ray's visual layout was very good, but his parsing code was weak (no offense, as I recall the article centered on something else, not parsing) and it wasn't integrated with Delphi.
I sent an e-mail to Ray asking for permission to use his icons and layout and he graciously agreed. I wrote the code from scratch, incorporated his icons and layout and thus was born the procedure viewer in GExperts. After seeing how easy that was, it just became natural to add more and more as I needed it. After a while, I released it to the public and the suggestions really started flowing in.
Erik, what has taken place with GExperts since you became the project leader?
Erik: We've added support for more IDEs including C++Builder, and focused on making the product as solid as possible, instead of adding lots of new features. Nevertheless, every expert has been enhanced in some way and there are new experts such as the To Do list and the Code Proofreader (which can correct typing mistakes and identifier case as you type). The major change has been the transition to an Open Source development model.
Gerald, has GExperts always been free? Was that the original intention?
Gerald: Yes it has always been free. I toyed with the idea of making it commercial, but decided against it because I was already too busy with a full-time job and couldn't commit the time to make it a polished, finished product. When it comes to software, that first 80% of creating a product is relatively easy, but that last 20% of polishing, documenting and testing can be a real PITA.
Why is it free?
Erik: GExperts is free because Gerald wanted it to be free. When he got busy with other projects, he needed someone to continue to answer email about the product and maintain it. We knew that work on GExperts would progress faster with an open development model, so we worked out a new license that allowed the source to be distributed freely and fit the official Open Source guidelines. Also, it might be harder to attract contributors to the project if the core developers were making money off the product.
Will it always be free?
Erik: Commercial software sometimes becomes Open Source, but once several people have had their hands on the code, licensing issues make it nearly impossible to create a commercial product out of an Open Source one. For this reason and the fact that all of the core GExperts developers believe in Open Source, I don't expect GExperts will ever become a commercial product.
"What's in it for you"?
Erik: There aren't a lot of direct benefits, but I do enjoy working on a project without any "management", where we can code without deadlines and make decisions purely based on technical merit. A lot of Open Source developers have found that getting an appealing job is easier with an Open Source feather in your hat. Since I don't have a chance to use Delphi in my "day job", GExperts also gives me a chance to continue using a development tool I enjoy working with.
Gerald: Originally it really helped me to develop and enhance my Delphi skills. The amount of work I was doing in Delphi for my full-time job and then GExperts on top of that really boosted my knowledge level. The additional name recognition because of GExperts has also helped and has opened many doors for me.
How and when did GExperts become open source?
Erik: In mid-1998, Gerald generously released the GExperts source as a learning tool for other developers, but it wasn't in an easily usable state. He had used a few libraries which weren't freely distributable, so my first job was to remove the requirement for those third party libraries and make the source easier for others to compile and follow. In October of 1998, I made the first official Open Source release. Several developers quickly joined the mailing list and started to contribute features and fixes. In particular, Stefan worked on C++Builder support and John Hansen did the initial work cleaning up the low-level IDE enhancements.
Gerald: When Delphi 4 came out I realized that it was going to be a big job porting it to Delphi 4, in particular the IDE enhancements that were not using the OTA but were accessing Delphi natively were going to be very difficult. I did some preliminary work (very little actually), and during the course of that it was obvious that I just didn't have the time. As I recall, Erik asked me what the status of the project was and during the course of our conversation I offered to turn the project over to him. Thus GExperts became open source.
What are the advantages and disadvantages of GExperts being open source?
Erik: Since much of the IDE's OpenTools API is undocumented and somewhat of a black box to us, it is easier to have several people working in the code to find solutions to problems as they come up. Also, users who find bugs or desperately need features can work on their own in the source without waiting for patches or official releases. GExperts also serves as a learning tool for aspiring OpenTools API developers. Most GExperts users get responsive support on the mailing list, since it has several hundred readers, so support isn't a disadvantage in my mind - we have many "resident experts" on the code, instead of just a few.
Gerald: The primary advantage IMHO is that a broader skill set is available to tackle problems and add new features. Frankly, I would have been hard pressed to duplicate the work that Python did in making forms in GExperts dockable within the D4 IDE, it was brilliant work.
Additionally, Erik has done a way better job then I ever would have in administrating the project. There is no way GExperts would have succeeded as well as it has without his commitment and effort in doing the boring, mundane administrative work required in a collaborative project.
How do you think the open source movement (in general, not just in connection with GExperts) will affect organizations and individual programmers in the future?
Erik: I'm neither an Open Source zealot nor an Open Source nay-sayer. I do believe that certain types of projects work better as Open Source, and those numbers will continue to grow, but the daily life for most programmers won't change drastically. Some developers will become more dependent on Open Source tools, but programming jobs aren't in jeopardy.
Stefan: Open Source software commoditises certain areas of software development. We see this today with Sun going to release StarOffice under the GPL, with a number of excellent development libraries available under an Open Source license. The effect of this on organizations and developers is unclear.
Gerald: My view on open source is that it works in certain circumstances but certainly won't replace commercial development anytime soon. I think for an open source product to be successful it needs to be a product that developers themselves use and understand. GExperts works well as an open source project because developers use it everyday and have an interest in seeing it get better. After all, how many programmers would be interested in working on an open source project to make needle-point patterns? IMHO Open Source will not affect the way the majority of commercial software houses do business. At this point in time, my opinion is that Open Source is more hype then reality.
Where do you live?
Erik: I recently moved from Memphis, Tennessee to Saint Louis, Missouri to begin graduate studies.
Gerald: Toronto, Canada
Have all 3 of you gents ever been in the same room (at the same time) or has all your interaction been of the e-variety?
Erik: Despite literally hundreds of emails over the past few years, none of us have met and I'm positive I wouldn't recognize either of them if we were in the same room. But, I definitely can recognize Stefan's coding style in 10 lines or less.
Stefan: I have always managed to miss Erik and Gerald. Our geographical distribution over the globe doesn't really facilitate face-to-face meetings.
Which parts of GExperts have you worked on the most?
Erik: Almost everything! I try to concentrate on the overall goals of the project, evaluation of major design decisions, coordinating and planning releases, and probably most importantly: receiving and duplicating bug reports and then fixing them. Many major features come from other developers, since the above tasks keep me fairly busy.
Gerald: All the early stuff obviously <g>. I haven't looked at the code base lately, so I'm not sure how much of my original code is still left in there. Erik or Stefan would know better then me.
If you weren't a programmer, what occupation would you likely have?
Erik: My real passion is philosophy, if one considers that an occupation.
Stefan: I would probably be involved in something that dealt with capital market finance and/or risk consulting. Software development was just something that "happened" - and that continues to evolve.
Gerald: Army Signal Officer (which is what I did for ten years before being a programmer)
If you lived before the computer era, what do you think you would have done professionally?
Erik: Carpentry has always fascinated me. I tried to build a doghouse when I was young, but even the dog wouldn't sleep in it.
Gerald: see above.
Do you think Borland will ever license GExperts?
Erik: Borland likes to have full control over the core parts of Delphi including the compiler and the IDE. For this reason, and because GExperts is already freely available (and in some cases included on the product's companion CD), I don't think it will ever happen. Nevertheless, several of GExperts features naturally eventually appear in the IDE itself, such as the to do list, ASCII format DFMs, saved window layouts, etc.
Stefan: There is no need for Borland to license the GExperts code base: GExperts ships with both Delphi and C++Builder on the Companion CD. Apart from that, the very nature of the GExperts source code license combined with the fact that many people have contributed, make "selling out" a rather difficult task. I hope that GExperts will always be part of Borland IDEs, but as an Open Source project, it will certainly always be owned by the Delphi and C++Builder community.
Gerald: No, there is no need for them to do so IMHO. After all it's free, why would they need to license it.
What is it about Delphi that makes it appealing to you?
Erik: The most appealing thing about Delphi is Object Pascal. It is easy to read, encourages safe programming, compiles and executes quickly, and allows one to use advanced features such as reference counted interfaces that manage memory for you, or interface with hardware devices that require manual tweaking of bits. Delphi is versatile, and has a powerful and well-integrated IDE. With project Kylix and Borland's new focus on cross-platform tools, it can only help Borland tools move into more projects.
Is there anything you would like to say to GExperts users?
Erik: Everyone is welcome on the mailing list to listen, discuss, or contribute - see: http://www.gexperts.org. Oh, and please stop asking for us to implement method folding in the code editor. Instead, bug Borland for this feature!
Gerald: Nothing specific really, I'm just happy knowing that it helps people in their day to day work.
What can we look forward to in future releases of GExperts?
Erik: We will soon introduce GExperts 1.0, which is the result of over four years of work, and several months of stabilizing and polishing. Beyond that, Stefan has taken charge of an experimental source tree which will be the next major release. It will exploit more features of the newer OpenTools API and create a more maintainable framework for the source code. There is a partial but somewhat technical list of the planned and implemented changes at: http://www.econos.de/gx/gx.html. With enough support from the community, I hope that we can provide parts of GExperts for Kylix, though we've just started looking into that possibility.
Stefan: As always: More features, better features, and fewer bugs, of course!
The vision for GExperts is to *enable* the developer. Whatever helps the developer in working with a project is a potential feature for GExperts. The GExperts development mailing list is where we discuss, and decide on, the direction of GExperts.
Keep in mind that GExperts relies on the contributions of developers - in the
form of code, beta testing, or just feedback. Come and visit http://www.gexperts.org/ and give us a hand!