Editor's Column
15 February 2001
An Interview with Wilfredo Sánchez, former lead developer, 事業/計画(する) Darwin (OS X)
In a previous column, Reviewing the Others: Darwin, I 簡潔に 診察するd Apple's ambitious Darwin 事業/計画(する). The article was the first in an intermittent series on large open-source 事業/計画(する)s; the series as a whole is meant to 供給する insight for the OpenOffice.org. community. The below interview 供給するs a lead developer's 視野 on the 問題/発行する of Open Source.
Wilfredo Sánchez was, until recently, the lead developer on 事業/計画(する) Darwin, Apple's open-source 核心 to its new operating system, OS X ("ten"). Fred still 持続するs his links to Darwin, where he is an active developer, but he is no longer with Apple. 現在/一般に, as he phrases it, he is "the open source program 経営者/支配人 at KnowNow, Inc.," where he is "working on 科学(工学)技術 to enable what's called '2-way web'." Fred very kindly 許すd some time out of his schedule to 答える/応じる to some questions I asked 経由で e-mail this past week. My questions are in bold italics; his 返答s are below, in 正規の/正選手 font.
As a ちらりと見ること at your résumé 示すs, you seem to have been 伴う/関わるd as a developer and 事業/計画(する) lead in just about every important open-source 事業/計画(する) for the last ten years. What got you 利益/興味d in Open Source? And, do those same 問題/発行するs that got you started still 存在する?
My 利益/興味 dates 支援する to college. I was a freshman at MIT (Massachusetts 学校/設ける of 科学(工学)技術) in 1990, and all I knew about computers was how to use a few programs on IBM PC clones running DOS, and before that the Atari 800 and TRS-80. I didn't know much about programming. So I get to MIT with my pile of PC floppies (the actual floppy 肉親,親類d) and they had these weird computers with no floppy 運動s (DEC VAX and IBM PC/RT machines), and I was 全く lost.
What I learned rather quickly is that the ソフトウェア that the 広大な 大多数 of the world uses isn't all there is. In fact, in a lot of regards, it's not even the best there is. And what I learned much later was that almost all of it was enabled 経由で collaborative work between people who were mostly just 利益/興味d in seeing what they could do with ソフトウェア. It wasn't open source in the modern sense, I guess, but it was pretty 類似の, and the roots of what open source is today goes 権利 支援する to those 事業/計画(する)s.
I had also met RMS (Richard Stallman) a couple of times (which he won't remember) and a lot of people who 与える/捧げるd 定期的に to the GNU 事業/計画(する), which was born at MIT, and I've since had a lot of 尊敬(する)・点 for what Richard and the 残り/休憩(する) of that community have done to create a 団体/死体 of ソフトウェア that can be 株d and 共同製作するd on without the 制限s associated 課すd on the Unix community, which you and your friends had to 支払う/賃金 a lot of money to 参加する in.
So I was really into the idea of 存在 able to 与える/捧げる to all of this activity that was going on, but not 存在 much of a programmer, I mostly just used the ソフトウェア and thought it was 冷静な/正味の. It took me a long time before I 設立する a way to do something 相当な. In fact, I didn't have occasion to 与える/捧げる to open source in a meaningful way until I got to Apple in 1997.
When I started at Apple, the NeXT folks had just moved into the Apple campus, and we were working on the 初めの Rhapsody Developer 解放(する). The first thing I noticed was that we had a boatload of ソフトウェア in the system which I was familiar with, but was mostly out-of-date or incomplete.
I had used NeXTStep at the MIT マスコミ Lab and again at Disney Online, and I thought it was 冷静な/正味の that it had a Unix 環境 underneath, but every time you 手配中の,お尋ね者 to do some 基準 Unix thing, you had to tweak it a bit. So you'd see things like special-事例/患者 exceptions in autoconf scripts for NeXTStep, where it's almost the same as any other (4.3) BSD system, but it did it just a little different, or was 行方不明の something. And those little tweaks 追加する up after a while. We had 相続するd that ソフトウェア at Apple, and I thought I could help by きれいにする that up some. So I'd get a newer GNU tar, or 追加する tcsh, because every good Unix should have tcsh... and then BASH... and then Perl... and then Apache, and it kept on going like that. And I talked to some friends at MIT who 麻薬中毒の me up with NetBSD and I took on the challenge of 現実に trying to sync up the BSD userland.
What became obvious to me at that point was that we needed to 持続する an 現在進行中の 関係 with the upstream providers of the ソフトウェア, so that we could 押し進める our changes up and pull 負かす/撃墜する newer 見解/翻訳/版s and 避ける the problem NeXT ran into, which was 基本的に 予定 to diverging code, which makes it much harder to keep up with what's going on どこかよそで. I wrote up a paper on this 問題/発行する using Rhapsody as a 事例/患者 熟考する/考慮する and 現在のd it at the FREENIX 跡をつける during USENIX 1999. As a result of the work I was doing, I got more 伴う/関わるd with many of the 事業/計画(する)s from which I was 製図/抽選 code. And that's the long of how I got 伴う/関わるd with open source. It took me the better part of the 1990's.
Your 関与 has given you an 驚くべき/特命の/臨時の 視野 on the movement, its main players, and the people who 現実に make it happen: the developers. How would you characterize the changes (if any) that have taken place の中で and for developers since your start?
井戸/弁護士席, I think when I was still learning about it, there were those who worked on what was fundamentally proprietary (though still open in a 重要な sense) ソフトウェア like the BSD Unix work at Cal (University of California, Berkeley); and those who 手配中の,お尋ね者 to make ソフトウェア that wasn't just open, but 自由に 株d with everyone without the worry of a centralized group that could 基本的に take that away, like the GNU 事業/計画(する). The GNU 事業/計画(する) was a really important 成果/努力, because 解放する/自由な ソフトウェア wasn't the norm, and they were working very hard to 確実にする that there would be enough 解放する/自由な code 利用できる that people could 現実に make use of it to do real work and solve real problems, and they used a special license to help 確実にする the freedom of the code. That ソフトウェア remains important today, of course, 特に as 論証するd by Linux.
But I think today we know something we didn't やむを得ず know then: the code isn't the 批判的な 構成要素 of "open source." The real 魔法 is in the community that uses and develops the ソフトウェア. If you take a good idea, and you build a good community around it, you can 結局最後にはーなる with some excellent ソフトウェア, and from what I've seen, no person or company will be able to take that away. The 論題/論文 of the paper I wrote for FREENIX was 基本的に that if there 存在するs a good open source 事業/計画(する), any company which takes the code from that 事業/計画(する), 延長するs it, and 選ぶs to not to become a part of the community will, in the long run, 結局最後にはーなる with a 製品 that is いっそう少なく 説得力のある than what the community comes up with, because the Internet 容易にするs very large and diverse communities that can invariably out-pace what a 選び出す/独身 商売/仕事 can do, at least in those problem spaces that have become commoditized by open source 事業/計画(する)s.
The flip 味方する of that is that open source 事業/計画(する)s can 利益 大いに by getting companies to put their energies behind open ソフトウェア instead of inventing something in 平行の, because those companies have a lot of 資源s to throw at problems of importance to them. The Apache ソフトウェア 創立/基礎 is a marvelous example of this; we have seen truly 重要な 成果/努力 put 前へ/外へ by companies like IBM, Sun and Covalent which have both broadened the problem space which our community excels at and 大いに 増加するd the 質 and usefulness of the code. They have not only 与える/捧げるd ソフトウェア, but they 基金 現在進行中の 十分な-time 動員可能数 to our 事業/計画(する)s, and while there have certainly been bumps in the road, I know that all parties 伴う/関わるd--含むing, of course, our 連合させるd 使用者 base--are far better off as a result of this 共同.
On the other 手渡す, I think that some of the best 資産s in the open source space--the GNU stuff--is still of the mindset that the license is what 保護するs the ソフトウェア. That's not so bad in and of itself, but the GNU license has what I think are 合法的 problems for a person or company that isn't, for whatever 推論する/理由s, able to 受託する those 条件 for ソフトウェア other than the 初めの GNU code, and I don't think that 除外するing such companies is the best thing for an open community. That is, in this 状況, the GPL (in it's 現在の form) 現実に inhibits code 株ing, instead of 容易にするing it.
現実に, it's more 複雑にするd than that: the GNU 事業/計画(する) is a proponent of their particular ideas about freedom in ソフトウェア, and is not so much about 確実にするing that the best ソフトウェア in the world is created in this collaborative form which is what I think open source is really about. So it's not 偶発の that things work out this way; I just think it's unfortunate, because my 利益/興味 lies in 株ing code and building communities. I also think a lot of GPL authors 港/避難所't thought this through. What I think I'm seeing now is a sort of "growing up" of both the open source 開発 model and it's fascinating to see how the ソフトウェア 産業 can fit into it. It's an exciting time to be a ソフトウェア developer.
Open Source relies, famously, on the "community." But it's 不明瞭な who this community is, who 構成するs it, and how it is 構成するd. Can you give any insight into the open-source community? That is, into how the developer community forms, what are its 重要な elements, and how it 作品 together?
As I said earlier, I think the community is the 根底となる 構成要素 of an open-source 事業/計画(する), which makes this a very good question, if not an 平易な one to answer. The way I think about it, a community is a group of people with some 利益/興味 in a given problem space and a 見通し for how to 取り組む it and what to do with the result. They tend to 決起大会/結集させる around some code, because code 始める,決めるs some nice 境界s for the 範囲 of that problem space, but the code might be 投げ上げる/ボディチェックするd out and re-written or さもなければ 修正するd and 延長するd to 反映する the 見通し of the group, which 発展させるs the members discover new ideas, or the 会員の地位 changes.
The successful communities I know about have some ありふれた 特徴: They tend to have a 核心 group of some manageable size, which is 一般に 構成するd of the most active developers, but also of other people who are known to understand the problem space 井戸/弁護士席. The 核心 group and the code are what 供給する 連続 and direction, and they 概略で 代表する the 見通し of the whole group.
There are many different 組織の models is the さまざまな open 事業/計画(する)s, and I'm not really an 専門家 on which 作品 best, since I've only ever tried to help create one. For Darwin, we had a pretty obvious 核心 group to begin with, that 存在 the tech leads in the 核心 OS team at Apple which is already 責任がある the code; and the 初期の 見通し is 明確に defined by the Mac OS 製品: Darwin's 最初の/主要な 役割 is to support Mac OS going 今後. That may seem too 狭くする, but I think the 見通し is a 罰金 one; over 100,000 people bought Mac OS X Public Beta, and I imagine the 近づいている 解放(する) will have a sizeable 任命する/導入するd base by year-end. That will mean a lot of people with some 利益/興味 in seeing the system 改善する, and that's not a bad itch to scratch.
The 利益/興味ing thing to see will be whether the Darwin 核心 group will grow to 含む people outside of Apple, その為に 許すing the 見通し to grow beyond the bounds of what Apple is doing with Mac OS. I don't just mean committers, which already 存在する, but whether Apple can let other community members on the outside of the company 運動 the 見通し 同様に.
The best example of a new community forming that I've seen is the Subversion 事業/計画(する) at CollabNet. Karl Fogel and a few other gurus in the area of source 支配(する)/統制する got together and started designing something fundamentally better than the 現在の 基準, CVS (Concurrent 見解/翻訳/版s System). And they did a 広大な/多数の/重要な 職業 at it. The group was 故意に kept small 最初 by not making it very public, not to be 隠しだてする, but to make sure that the 見通し was 井戸/弁護士席 defined before too many cooks jumped into the kitchen. Since then I've seen all sorts of 進歩, some truly wonderful ideas, and I fully believe that when they are done, I'll be switching to Subversion and I'll never look 支援する at CVS again.
There's an element of 魔法 pixie dust in how that all (機の)カム together which I don't fully understand, so I don't know that I could ever replicate it, but it was 冷静な/正味の to watch, and I'm keeping an 注目する,もくろむ out for other examples so as to learn from them.
Another problem 直面するing an open-source 事業/計画(する) is bringing in new members. How have you been able to bring in new members? What 戦略s do you use?
This goes 支援する to the 経済的なs of open source, and developers are a finite 資源. Communities are fed by need. If you can't draw members, it's probably because there isn't that much 需要・要求する. And I don't think that growth is always a 必要物/必要条件. I don't know how many people 持続する fetchmail today, but I don't suppose they really need 20 more developers working on it.
It can be 堅い for new 事業/計画(する)s, because there is a bootstrap problem: You have to have the code so you can have the 使用者s who depend on it. This 料金d into your developer pool, which 令状s the code. So someone has to be the first developer to 令状 enough code to churn the cycle the first time around and help other people jump in. But once that's done, a good 事業/計画(する) 料金d itself.
Some people think that open source means you make a tarball and a reasonable license, put that up on an ftp server and you have open source. Perhaps that's enough for buzzword 同意/服従, but that's 完全に 誤った if you think the community is the important thing. You have to clean up the code (for readability, docs, the invariable naughty language, 合法的な entanglements, 内部の code 指名するs, etc.). You have to let people know it's there. You have to 容易にする the people who take enough 利益/興味 to 与える/捧げる patches, so they don't 落ちる through the 割れ目s.
So you need things like mail 名簿(に載せる)/表(にあげる)s, CVS servers and whatnot; but much more important, it means an 現在進行中の かかわり合い to working with the community you form to help them help you make the code better, and that 含むs 納得させるing your 内部の developers that they should spend some of their time helping people they don't know out on occasion. You can get some excellent 組織/基盤/下部構造 from SourceForge, but that alone doesn't create a community.
And that's the rub. It's not a trivial 操作/手術 to open source a 事業/計画(する). It takes real work and real people on an 現在進行中の basis. People wonder why some company doesn't just open source the code they just 棚上げにするd, and this is 基本的に why. If you have no 資源s to put into it, it's not always a 正当と認められる thing to do. Honest, it's not 平易な to do; I've talked to people at other companies 同様に to 確認する this.
Previous columns
9 February 2001 組織するing Open Source
1 February 2001 Open Source and Its Culture
23 January 2001 Community 活動/戦闘
16 January 2001 Quo Vadis OpenOffice.org?
9 January 2001 The 613 build: problems and 適切な時期s
3 January 2001 Sun's open door
E-mail: Louis at collab.逮捕する

