昨天我收到几个咨询,关于fred的事情,它步了Kickstarter的失败后尘,项目资助采取开放源码方式(译注:fred是一款美国的著名光学设计分析软件,Kickstarter是一个网站,任何人都可以向某个项目捐赠指定数目的资金,网站收取很低的佣金)。他们之中曾有人也在整个项目开始之前问过我,我当时想这个项目会消失。我也曾不想回答这个问题。然而,由于现在又问起来了,而且可能还有人会问,所以我最好还是答复一下。
最主要的问题是:“就目前状况,为什么不去开源呢?”
我的答案是:它不是那么简单而且那将没有任何帮助。首先,你必须明白, fred是一个更大的基础 代码的一部分。这就像 "//depot/..."之类,一些我的读者只会意识到很小的一部分。它是一个一系列我 多个已经写好的项目的集合。
我不愿意将其割舍而使世界损失,它代表了不平凡的工作,为什么我会削弱自己的能力去做适当许可?严重的是,你怎么才能证明呢?这将是一件事,如果我是能乘着火车来完成“日常工作”并获得丰厚的报酬,但我没有。这是我支付账单的依靠,我不会免费放弃它。
为fred发布时,首先需要从代码中它被分离出来,这不是一个大问题,我以前做过。分离的时候,一些 通用东西变得意义不大,有时我用 较小版本取代它们,也就是说,不是像“瑞士军刀”一样直接分叉出一个完整的新类,我剥离出来的部分部分只是所用的一个项目。
“独立fred”代码基础就此建立了,我尽力希望它看起来不那么尴尬。 当它可以独立在系统上使用而不影响其他这确实很赞。对于那些不熟悉这种情形的,这就是所谓的换位思考。虽然有一些辛劳,但付出是值得的。
让我们记住fred没有Makefiles,严格的说,根本就没有。它也没有生成脚本或者任何其它种类的生成文件。这是因为它是我的树的一部分,而我的整个树是由生成工具创建的。我只要说"bb fred/getpost" 或者诸如此类,它就会返回给我一串二进制。
尽管我想要我的小工具来接管创建C + +的世界,但期待别人对它全身心付出是不切合实际的。此时它只有二进制,那意味着只有操作特定类似的 x86_64 Linuxes和Mac OS 版本的人才可以运行它。其他人会被内心凄凉的晾在一旁。
(为什么不将生成工具开源呢?原因很简单,fred也是同样的原因没有开源:它代表了一个非凡的工作量,而我为什么要将我的能力妥协于发授权许可,并从中挣钱呢?)
鉴于依靠构建工具而保持存在是愚钝的,也就是说,我将不得不创建一个Makefile。这不是什么大事,但是让它能处理大量的配置却非常难。这也意味着要autoconf。关于这些东西我有足够的经验(这就是为什么我这么讨厌它们的部分原因),但要得到正确结果仍然需要努力。
没有做这项工作就发布一些东西,就意味着其他人将不得不去做。如果有人有能力做这项工作,他们可能早就已经做完了,根本不会抱怨我没有为他们做这件事。做这种兼容性和发布工程工作的所有目的,就是使它对一些人有用,那些不会或者不愿学习http、RSS、Atom、XML、SQL、C + +,make,以及蹩脚的autoconf 的人。
允许我再说一次:愿意在这种事情中管闲事的人是不存在的。他们已经去他们所选择的语言中忙自己的事情了。它就像是一个feed阅读器,主要的东西已经有了。完全可能在一天时间内,从一个平常的思想演化为一个feed采集概念的简单证明。如果不行,或许这项任务就应该被委托出去。
kickstarter是一个机会,让我可以为了别人的大多数利益做这样的事情。一旦做了,它就会按照自己的是非判断将世界改造成成功或者失败。
最后,我想传递一个读者的思想:TMMM 的Fred Brooks 说,一个系统产品价值是一个程序的9倍。假设这样的话,在一个完全成熟的系统中投资这种工作,以寻求一些支持,是合理的吗?
我要感谢那些支持此项目的人。我祝愿我们的项目已经到达了正常运行的地步,这样我就能完全致力于这个项目。事实上,我现在必须转向其他项目和客户。这就是资本主义的现实。
(如果有人想给我钱,使我可以写代码,再送出去,而不必担心为它融资,这也非常好。你是知道怎么联系我的。)
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务