Copyright (c) 2000 by Charlie Calvert
|
I personally believe that JEDI should be one of, if not the, central hub in the Delphi programming world. No other group, other than Delphi R&D itself, holds out as much hope for the future of Delphi. Project JEDI is now an experienced and powerful force in the Delphi world. The fundamental purpose of the JEDI organization is to create free code, tools or documents that can be used by the entire Delphi community. In particular, they have worked on converting Microsoft headers from C/C++ to Object Pascal. But their projects go well beyond this formidable task, and include efforts to work with gamers, to create components and utility routines, to create Delphi tutorials, and to foster other utilities of use to the Delphi community. As a Borland employee working in Developer Relations I feel a sense of gratitude to Project JEDI. Yet my admiration represents more than a simple professional dept. JEDI also embodies many of the principles that I hold most dear in both my public and private life. In particular, JEDI embodies the idea of people working together for the benefit of an entire community. In this short paper I will talk about why I think Project JEDI is important. I want to make clear that the ideas I put forth here are my own. If you want to hear what JEDI thinks about their own project, then you should visit their site. This is an opinion piece about JEDI and the Open Source movement, it is not an attempt to speak for JEDI, Borland or the Open Source movement. Nor do I mean to imply that JEDI either does or does not follow the principles of the Open Source movement, though portions of JEDI, such as the JCL, are obviously build specifically along Open Source lines. On the Importance of being a JEDI Knight!If the JEDI organization continues to provide good and fair leadership, and we as members of the Delphi community continue to support JEDI, I believe that this organization holds out the most hope of any single force (other than Delphi R&D) in the Delphi community. In other words, I believe that JEDI is the second most important node in the Delphi universe, behind only the Borland Delphi R&D team itself. In saying this, I do not mean to denigrate the extreme importance of major web sites such as the Delphi Super Pages, the Borland Community Site, and especially John Kaster's CodeCentral project. But in my opinion, none of these other sites or projects do as well as JEDI at capturing the ideals and principles that can best aid the Delphi community at this time. Let's go on and take a look at some of the reasons why I hold this view. Creating Free CodeI do not believe I am merely expressing empty idealistic sentiments when I talk about the importance of free software or the Open Source movements. Consider the success of software projects such as Linux, Apache, Emacs, and GCC. These operating systems, tools or code bases have been created either as Open Source projects, or as projects run by Richard Stallman's Free Software Foundation. (Don't confuse the two, as Open Source and the FSF are quite different beasts. They have similar roots but different philosophies.) The code produced by the FSF or Open Source efforts are examples of real projects that have brought real benefits to the entire programming community. A handful of people could have made money creating Apache and selling the project, but even more people have been hired to create or maintain programs that run on top of Apache. In other words, Apache was created for free, but it ended up putting a lot of money in the hands of a lot of programmers. The simple truth is that groups of programmers can come together to create great software that benefits the entire programming community. Most programmers (about 90 percent) don't make money selling shrink-wrapped software. Instead, they make money selling their services to companies that need custom software. The type of custom software I'm talking about includes software used by banks, inventory programs, ecommerce programs built for various enterprises, etc. If we generate code that the whole community can use, then everyone who uses Delphi can benefit. It will help us get our job done faster, and in a more reliable manner, thereby increasing the bottom line of all members of the community. (For further discussions along this line, read "The Cathedral and the Bazaar" by Eric S. Raymond, published by the O'Reilly press.) Projects like JEDI benefit everyone who uses Delphi. If you are working for a bank, and need a set of routines or header translations, you can either make them yourself, which can take weeks or months, or you can download them from JEDI. The fact that tested routines from a group like JEDI can help you get your project done more quickly, and in a more professional manner, hurts absolutely no one. In fact, it benefits the whole community. It makes Delphi and Delphi programmers look good, thereby helping everyone in the community get more jobs. The formula here is simple: aid JEDI, and you will aid yourself! Borland, Third Parties, and JEDIFor those who wonder about my motives, I'll readily confess that Borland is not hurt by this kind of project. Borland is not in the business of selling either utilities or header translations, so we lose nothing if they are made for free by the community. In fact, this project can only help Borland, since it has the potential to make our tool a more popular and effective force in the programming world. Needless to say, if Delphi is successful, then Borland will be successful -- and the benefits will reach to nearly everyone everyone in the Delphi community. On the other hand, if Delphi dies, then Borland is hurt, and all Delphi programmers are dealt a serious blow. It's arguable that a project of this kind could harm third party tool venders. In a few cases, it may in fact do that. For instance, a set of powerful utility routines could eat into the revenues from products such as TurboPower's SysUtils. On the other hand, a powerful set of utility routines from the JEDI community will make Delphi itself more powerful, thereby leading to more sales of Delphi, more jobs for Delphi programmers, and more potential sales of toolkits such as those made by TurboPower, Raize, InfoPower, ABC, etc. Even if some third party tool venders did go out of business because of the success of a project like JEDI, the end result would also hopefully include a net increase in Delphi jobs. If the net number of developers employed in the Delphi world increases, then I think that is a good thing for all Delphi programmers. In other words, we can't hold back the entire community just to attempt to save one company. The ultimate goal here is the continuance of Delphi as a strong force in the industry, and the creation of jobs for Delphi programmers. Whatever benefits those ends should be of great importance to all of us who are members of the Delphi community. Systems Theory: Working for Ourselves or Working for the Community?I often (much too often) see programmers or executives fighting to preserve a particular piece of turf even at the expense of the entire business for which they work. I hate it when someone selfishly forces on others a decision that benefits the few at the cost of the general good. Egotism and selfishness only appear to benefit us, or at best, they are principles that usually hurt us, and only occasionally work to our benefit. If I make an innovation that creates fifty new jobs, but costs me my job, then I should theoretically benefit in the long run! After the innovation, there are now fifty new job opportunities for me. Needless to say, it should also be clear to the community that I was the one who made the innovation, and my worth to the community as a whole should therefore increase. If you contribute something great to the JEDI community, your professional stature will grow, even if you do not make money on that particular project. (For this reason, I always believe that people's names should be attached to their work!) Despite what we hear so often in the media, we do not work alone as isolated individuals. Instead, we exist as part of a larger community. The most important works on the nature of life are not derivatives of Darwin, but derivatives of those who are involved in studying systems. Systems theory is the great intellectual subject of our age. This field of study is sometimes know as "dynamical systems theory," or "complexity theory," or "network dynamics." Chaos theory and the world of fractals are also subsets of this powerful world view. Fritjof Capra's book "The Web of Life" can serve as an excellent introduction to this view of the universe. Almost any basic text on Buddhism (or Christianity, for that matter) will also stress the fact that we are not isolated individuals, but instead part of a larger whole. Darwin holds out that the survival of the fittest individual drives evolution. System theory says that the most robust communities are the ones that are most likely to survive. One brilliant programmer working on his own is not as powerful as twenty programmers working together to find bugs and enhance the design of a piece of code. This does not mean their is no place for brilliant programmers, but only that they can do the most good when they are part of a community. A brilliant programmer who has no time to implement his or her design might as well have designed nothing. The same applies to a brilliant programmer who has no time to debug his or her code. When programmers work together to create a powerful design that is thoroughly debugged then they can have great success. The truth of this statement is born out by the success of projects such as Linux, Apache, Gimp, MC, EMACS, and hundreds of code basis developed by Open Source groups or the Free Software Foundation. Project JEDI can serve as a meeting place for the whole Delphi community. It is where we can all go to create the tools that we can all use so that all of us may benefit. If we aid project JEDI, then we aid the Delphi community. Aiding the Delphi community is one of the best ways we have to aid ourselves. A strong Delphi community means we can compete against other languages more effectively, thereby creating more jobs for Delphi programmers. It will make us all stronger, it will generate more jobs and revenue for Delphi programmers. The Independence of Project JEDII want to stress that JEDI is not a part of Borland. JEDI was created entirely independently from Borland. They have our support, but they created themselves and run themselves. Certainly no money passes hands between Borland and JEDI. The JEDI steering committee continually rebuffs me and other Borland employees whenever we make suggestions that they feel will compromise JEDI's independence. Though I find this fact annoying on specific occasions, I have to admit that in the long run it is the right thing for them to do. Borland is a for profit company creating at least some source code that we are not prepared to share with the entire community. (We do share much of our code, but not all of it. For instance, we share almost the entire VCL, but not the code to the Delphi compiler itself.) As such, our principles are not the same as JEDI's, and we should therefore always strive to keep a distance between the two organizations. That is the best course of action if want both Borland and JEDI to prosper. It is my contention, of course, that both JEDI and Borland should prosper. In fact, all members of the Delphi community should prosper. I'm not suggesting that Borland should give away its software, or that all programmers should work for free. Quite the contrary. My point is simply that all programmers who use Borland's software can benefit from creating a free shared code base that makes Delphi, and Delphi programmers, stronger! That way we can each more successfully create our own private businesses. I want Borland to stay in business, and I want the programmers who use our tools to have lots of jobs. JEDI is one important means of achieving those goals! Important JEDI ProjectsHere are some projects you can work on if you want to aid project JEDI:
This is by no means a complete list of JEDI projects. Their are other initiatives underway, and there is always room for further innovation in the future. SummaryOne of the key ideas in systems theory is that the community as a whole is more important than the individual members inside it. Or, to put the matter somewhat differently, the greatest number of individuals in a community will benefit if everyone works together for the mutual benefit of the community as a whole! This does not mean that we should not generate capital or produce private companies. Nor does it mean that individuals should not be rewarded for their work, or that talented hard working individuals should not be rewarded more than those who don't bring as many benefits to the community. On the contrary, we need to act in such a way that the largest number of private companies and individuals will prosper, will innovate, will have productive work that benefits the Delphi community as a whole. It is my contention that project JEDI, and other organizations like it, can aid in achieving those goals. Once again, in this article I do not speak for either Borland or JEDI. Nevertheless, I believe that one of the best things we can do at this time for both Borland and the Delphi community is support Project JEDI. Right now JEDI is doing well. They have lots of new projects and many active members. But this is not enough. If you have routines that can be shared with the whole community, give them to project JEDI, or contribute them to CodeCentral. If you want to see more well debugged header translations available for use by the Delphi community, then help JEDI build them. The end result will be more jobs for everyone in the Delphi community. Compared to monolithic organizations such as IBM, Sun or Microsoft, Borland is a relatively small company. However, there is no reason that Delphi need be a small product. If we follow the lead set by Project JEDI, and support this group to the degree that it should be supported, then there is little that will be beyond our reach. So go to the JEDI site at http://www.delphi-jedi.org and take a look! My bet is that you will like what you see! Even better, put your shoulder to the wheel and help both yourself and the Delphi community by writing or debugging some code! |