I just read the long threads of chatter on funding Perl6. I have a few words for y'all... but first a slight digression:
In August 2001 I was offered the oportunity to be funded for the (then somewhat) exciting Inline project. For various reasons, probably including a certain terrorist attack, it didn't happen. Six months later I reflected on it, and was quite happy I didn't get the money. Why?
For me, being on the hook to produce something of quality, by the money of your friends and admirers is no fun. At that point I decided that I would never accept money directly tied to the goal of me completing an open source project.
Prior to that I watched on as Damian drew funds from the community. He was a great show to watch. He made a lot of promises, delivered many, failed on some, always working hard, but he seemed to be under the gun, worn out and stressed. In my mind, it seemed like the ties to cash didn't allow him to work on whatever whim (and he has the world's best whims) he wished, as he had in the past. In a way, I felt more of a loss than a gain for the "funded Conway".
I have a lot of open source projects. Big long term ones. Ones involving lots of people. The major ones are:
* Inline
* YAML
* Kwiki
* FreePAN
* BabelTest
There are close to a dozen more larger scoped ones , lots of smaller stuff, and contributions to other people's important projects.
I never shirk away from adding to the pile. It's not that I think I can do it all myself; quite to the contrary. It's just that I think it is stuff that needs to get done. I am really just sheparding it.
I often fancy myself as an Open Source Project Manager. As such I would like to give 10 points of advice to others who would like to do the same.
1) Think Big. Imagine the software world as you would want it.
2) Be Realistic. Make sure your cool stuff fits into the rest of the community's cool stuff.
3) Under Promise. Don't generate more excitement about your project than you know it can handle. If it is cool, then it *will* happen. It's like a tree. Give it lots of time and water and sunshine to grow.
4) Get Help. I do everything in the most open way I can. I need to. I need help and lots of it.
5) Be Obsessed. Great software is created by obsessed people. Integrate your projects into your life. Breathe them. Too hectic for your family oriented life style? Maybe you aren't cut out for this.
6) Steal Money. The way to fund your project is to find a job that gives you enough flexibility to do your cool stuff.
7) Live Simply. For me, I'm willing to live in a tree house (as long as it has a good internet connection).
8) Work Smarter. You have but one life to give to all this cool stuff. You will die one day. Constantly reevaluate how you work and what tools you use to do it. Learn Dammit!
9) Quit. If your project has gone South or someone else has dwarfed it with a better project, then don't waste your life trying to prove you are right. Unless of course, you are right.
10) Enjoy Yourself. It's later than you think...
== Perl6 ==
I was in the thick of things when the Perl6 project was started. My initial reactions were not that it was too big to accomplish, but that that it was waaaay to big to finish in 5 years. It was a wild fuzzy ball spinning out of control. I decided to watch but not get overly excited.
Enormous projects are really hard to do. They require patience. (Something Perl programmers are short on by definition.) I was not convinced that
Perl6 could draw that much patience out of the rag tag Perl community. There was a good chance that this was just not going to work. But one thing gave me hope...
Larry seemed rather reasonable about this project. He had the right attitude. He knew it was cool, and it would happen. And I got the sense that he didn't mind how long it took.
At YAPC 2002, Larry gave a great talk comparing the community to the peoples of Tolkien's Middle Earth. Among us were wizards and hobbits and everything in between. And there was a Journey to be made.
I'm no expert on LotR, but I don't recall Frodo being funded. Nor Gandalf for that matter, if you get my drift.
---
I'm not opposed to the TPF. I'm not really opposed to anybody doing what they think will get things done.
But is it the one true way to get to the end of the Journey? I won't answer that, but I will say one last thing.
I am a fan(atic) of Autrijus. We have collaborated on a number of projects, given talks together and spent many hours conspiring. When we first started our leg of the Journey together, I tried to impart much of the 10 points to him. Now the roles are very much reversed. He really embodies those principles.
I once asked him, "How long do think you'll work on Perl related stuff?". He answered, guessing a bit... "About 500 years."
Let's hope.
Ingy, you live simply because you can. Others have families or don't want to live in tree houses. If those who want to devote lots of time to Perl 6 find out that they have to feed their kids instead, the community's poorer for it. Right now it looks like we'll lose Leo and he's been a huge force behind Perl 6 work. That's gonna hurt.
If you find that getting paid for open source work doesn't work for you, that's fine, but doesn't mean others are in such a luxurious position. Personally, I feel Damian did a hell of a lot more than just crank out cool code while he was funded. He generated interesting ideas, he traveled and evangelized and, in many respects, probably accomplished many things he couldn't have accomplished were he to hold down a full-time job. I think he really helped the community's sagging morale, even though it was a strain on him.
Remember, just because this way of getting things done doesn't work for you doesn't mean that it doesn't work for others.
Re:Money, money, money
ingy on 2005-02-25T22:47:54
I didn't mean to offend anyone, but then again I didn't try hard not to either. =)
At the risk of being more offensive, let me state further what clearly is only my opinion.
I'm not so sure that it is going to "hurt" to "lose" Leo. Hurt. What does that mean anyway? And are we really "losing" him? He's not dying. He just chose to invest a lot of his time doing something which I imagine was immensely satisfying. And he probably ran out of funds and needs to feed his family. That's OK. He should do that. He can always come back. His credit and karma are very good afaict.
Should we give him money to keep working on this now? I can't answer that. I probably won't give money. You are welcome to obviously. What will happen if we don't? I'll bet that the World will keep turning. The Perl World even.
My main point is that there isn't a required timeline on Perl6. If it is a good idea it will happen. If it is a bad idea it should die sooner than later. I happen to think it is a very promising idea.
Is Parrot a good idea? I'm not as sure. It was a brand new thing, of gigantic scope, started entirely from scratch, by a handful of very ambitious folks. On paper it seemed quite foolish, but who in this community can say "No" to a fellow ambitious hacker. I would never rain on that parade. But that doesn't mean I would endorse funding building a dome stadium over it. Granted I'm from Seattle, so I'm a little jaded about building dome stadiums at the taxpayers expense. We have two. And I'm pretty used to rain.
You are right to say that I "can" live simply. I got lucky because I didn't have kids when I started this. I don't think I could be involved at a deep level with young kids. And my point is that there are very few who can. That's OK.
As to Damian, everything you mention he did while getting paid, he was doing even moreso before he got paid. I thought the cool thing about funding Damian was the press it generated, "Hey look at those Perl folks, they have a Hired Mad Genius working for them. That's so cool!"
If I knew of a way that everyone who contributed to our community could live happily ever after, I'd be all for it. But here's the real world facts:
1) You are going to die.
2) You need to eat or you will die sooner.
3) You need to figure out your own way to obtain food.
4) Nobody owes you anything.
5) Life is better when you are happy.
6) If coding makes you happy and you live in a free country and can afford access to a computer, then you are free to code.
7) Good luck.
I'm not against a foundation set up to make life easier, but as an Open Source Project Manager, I personally don't endorse it as the best method to success.
Re:Money, money, money
Ovid on 2005-02-25T23:27:36
I am completely at a loss to understand how your list of real world facts relates to the issue at hand. It seems to me that the issue is: the Perl Foundation would like to fund some developers. You seem to be arguing against funding. Just because it doesn't work for you doesn't mean that it doesn't work. I have absolutely no problem with you saying you don't want to donate. You've contributed plenty in many other ways and I and others appreciate that, but I just don't understand why you're trying to discourage others from doing so when this seems to be your issue, not theirs.
Of course, I'm not suggesting that people have to contribute money. Contributing patches, tests, docs, etc., are all great. I'm also not even suggesting people contribute that. If they want to take what others freely provide, that's OK. What I'm not doing is trying to discourage people from contributing. I think that's a big difference.
Re:Money, money, money
Allison on 2005-02-27T12:57:40
But is it the one true way to get to the end of the Journey?
Nope. There's always more than one way to do it.My main point is that there isn't a required timeline on Perl6.
Yup. Exactly. With various permutations and combinations, the various paths are basically:
- Development continues as it has. Developers come and go. Perl 6 is released.
- Some funding comes in. We use it to get a little more developer time. Perl 6 is released sooner.
- Companies hire Perl 6/Parrot developers, let them do open source stuff during work time (typically because it benefits the company). Perl 6 is released sooner.
There's nothing new here. This is the way Perl always has run and always will run. (Remember what Larry was doing when he produced the first version of Perl?)Re:Money, money, money
merlyn on 2005-02-27T19:17:02
No, because it was secret.Remember what Larry was doing when he produced the first version of Perl?{grin}
Too hectic for your family oriented life style? Maybe you aren't cut out for this.
Or have a bunch of kids, homeschool them, and train the ones who are interested to be programmers.
Re:Family
Ovid on 2005-02-25T20:31:54
I have to admit, while I like Ingy, I found that comment of his to be offensive. There's an implication that if someone has a family and wants to spend time with them, they shouldn't be doing open source. That's probably not what Ingy meant, but that's what I read.
Re:Family
jdavidb on 2005-02-26T15:07:43
Hmm, I see your point. I could have found it sort of offensive, but I took it mostly as a statement that if you became really committed to a project, your family time might suffer, and that if you were a committed family man, you might want to rethink your project goals.
Of couse, I just got the funding, so I'll let you know in a few months if it was really good for me.
"...if I had it all?" sings Dave Matthews in a song. As the economists say, we live in a world of limited resources. Individuals are limited by many factors in life with time being chief amongst them. There is nothing limiting anyone with a family from working on open source day and night, assuming they spend no time with their families. To me, however, ingy is simply stating the fact that people without families have much more disposable time to burn than those with families.
That, however, doesn't mean that people with families make better or worse open source contributors. It just means they need to work differently, and ideally, more efficiently. That's where the other methods come in. Share big ideas rather than hording them in your own personal TODOs. Can you work on 20 different projects if you have 15 hours you can spend on open source? Keep the projects you love. Jettison the rest. Provide help and guidance when you can. Bring more programmers into Perl or whatever project you enjoy. Rather than buying the newest system to run vim on, maybe you could contribute cash to purchase new or used computer, more bandwidth, or pizza for those who could use it more on your project.
Learning whether to "fish or cut bait" is a skill that takes time and experience. This journal simply helps to provide some guidelines for using these skills in the open source world. It makes no judgements about the abilities people with or without families bring to the table. Managing expectations for yourself is almost more important than for managing the expectaions of others.