Bram Moolenaar is the author of Vim, text editor which is very popular among unix enthusiasts.
27.6.2007 15:00 | Luboš Turek | přečteno 26189×
At my first job I was using vi on Unix computers. For home use I bought an Amiga computer. Quite fancy at that time, but there was no good vi compatible editor for it. There was something that worked like Vi, called Stevie, and it was open source. So I started fixing bugs and adding the things that I missed. At first to make it do the things that Vi does, later adding new features. And I still haven't stopped doing this.
Most of the work on Vim is indeed done by me. However, some of the major features were started by others: the port from Amiga to Unix, the GUI, several interfaces, etc. So then I get a big patch, which gets included, and the original author fixes reported problems for a while, but then he loses interest and I end up doing most fixes myself. It's difficult to estimate how much of the code was written by me, in many places I made small changes and then how do you decide who wrote it. There must even be some pieces of Stevie still in there somewhere.
The main reason to make the Vim license GPL-compatible was that some of the libraries that Vim can be linked with are GPL licensed. When Vim is not GPL compatible, that means the resulting binary cannot be distributed. One of these libraries is gpm, for the Linux console mouse. Of course I like people to be able to distribute Vim, and since it would be difficult to convince others to let go of their license, the only option was to make the Vim license GPL compatible.
Quite a few people express to me that they think Vim is worth something. It works better than commercially available editors. But most of the time I have had a job that provides me with enough money to live a good life. So I don't need to ask money for Vim. So when people still feel like they need to give something back, it's better to give to those who really need it. Since I know the project in Uganda very well, I decided this was the best place to send the money.
This is hard to estimate, but it certainly is getting more and more. When ICCF Holland started we asked the people who visited the project to ask friends and relatives to sponsor a child. Now that no teams go to the project from Holland, the connection to Vim is the main source for new sponsors. It's certainly true that most one-time donations come from Vim users. But we also have our loyal sponsors from the early days.
I'm very busy, but getting a thank-you note once in a while certainly stimulates me to continue working on Vim. If I would not get positive responses from users I would have stopped long ago.
Obviously people can help by fixing bugs. I'm at a full time job again, and doing Vim maintenance in my spare time only is not enough. The list of known problems is growing longer. Some issues are easy to fix, some are more work. There are also a couple of students who will work on Vim bugs because of the Vim summer of code.
That was a couple of years ago, when a Vim enthusiast working for Microsoft setup a gift matching scheme for Uganda. I think it's still done at a smaller scale, but since it's going through Canada I don't hear the details.
Currently it's bug fixing only. We do have some features that would be nice to have, but without them Vim is perfectly OK for most people. I also want to avoid that Vim gets even more complicated. So new features must make Vim easier to use. There is a voting list on the website, which I use to see what people want most. When a clear feature is asked for often, and I have a good idea how to implement it in a user-friendly way, and I have time, then it has a chance of getting in.
Of the scripting languages I know Python is the best. It's very easy to learn and powerful. That is why I used it for the Aap project and included some features in Vim script (esp. Lists and Dictionaries). It's not perfect though. But since it's an open source project everybody can help making it better.
I have been unsatisfied with how "make" works. I knew it could be done much better. From that idea the Aap project was born. This also included support for up and downloading, and version control. I use it all the time to update my websites and release a patch with a single command. It has all the advantages of make, shell scripts and Python combined.
Unfortunately Aap isn't being used much. Without a reasonable group of supporters it won't grow. For Vim I still need to maintain a makefile, since I don't want people to force installing Aap. The result is that most people never look into the Aap recipe. Also because you don't have to, since one simple command will download, build and install Vim. Also, there are versions of make with more features, which allows one to do most things. Even though in this works in a very clumsy way, people see this as an excuse to keep using makefiles.