`
kyo100900
  • 浏览: 639689 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【翻译】Rod Johnson——平衡的质疑:Spring维护策略的再次调整(完)

阅读更多

<!----><!----><!----><!---->

不管你承不承认,Spring实际上已经是实事上JAVA企业开发的标准 ,SpringSource最近策略维护策略变更已经在JAVA世界满城风雨 Rod终于忍不住在他的BLOG就SpringSource最近策略维护策略变更一事再次进行了新的调整,以求开源与商业达到平衡。Rod希望就此机会一扫大家的顾虑与疑问,表明 SpringSource坚持永远拥护开源的决心。原文请看:

 

http://blog.springsource.com/2008/10/07/a-question-of-balance-tuning-the-maintenance-policy/

 

 

 


正文

 

 

商业运作就像写代码一样:即使你知道你想实现什么,但一开始你并不总是对的。当必要的时候,如果你精益求精的反复修改,仍然会得到一个很好的结果。对 SpringSource 来说,最近的一系列对外宣称的维护策略已经表明我们的观点——使开源社区与企业用户和 Spring 创建者之间达到平衡,从而达到双赢。尽管一开始我们无法很快达到一个平衡,但这如同编码一样,商业运作的“重构”也是需要花时间的。

 

 

过去的几周里,我已经被庞大的 Spring 社区所惊醒,其中还夹着无数的愤怒。

 

 

我们现在正在倾听社区的反馈,不仅仅是那些耳熟能详的论坛,还包括许许多多的路径,比如说私聊和邮件。

 

 

在我们倾听的同时,发现两个突出的问题:

 

 

<!---->1.         <!---->关于 Spring 对社区定期发布的可用稳定最新版本的问题(已经说过,如果没有提供相应的二进制代码,可以请求 Spring repositories 源代码库)

<!---->2.         <!---->对小型企业和小系统整合的收费问题。

 

 

我们也清楚人们觉得 Spring 的软件和我们的承诺都是改进 Java 企业开发;我们还知道他们想要 SpringSource 走向成功并继续保持改革创新。但现在我们确实听到一些用户实际关心的问题,并且打算将它们拿出来讨论讨论。

 

 

对于 Spring 社区中那些仍然心存疑问的人们,今天我想再重述一下我们的承诺,并且就我们收集到的反馈信息,解释我们对维护策略之所以做出这样巨大的改变。

 

 

 

 

我们的开源承诺

 

 

有些人关心 Spring 是不是不再开源了。“许可变更”的小道消息不胫而走。事实上,我们并没有改变 Spring 代码的任何许可。虽然这些推测都是无中生有,但关心仍然有必要。

 

 

“现在我就借此机会再次向大家保证—— Spring 会一如既往的对社区保持开源姿态,采取的许可同先前一样,仍然是基于 Apache 。”

 

 

如果你对此曾有过任何不同的看法,那一定是我和我的同事在宣布维护策略一事上做的不够到位,或者你也许只是道听途说。 SpringSource 的一切都是构建于 Spring 开源的基础之上,并且对社区一向是积极热情。首先,我们不可能将 Spring 闭源,否则那真是太错特错了。其次,我们也清楚即使不是绝大多数,但至少对许多 Java 项目或其它开源项目来说, Spring 扮演着中心角色。作为一个事实上的编程模型标准,闭源策略无疑会极大的伤害 Java 企业开发。再次,闭源策略是个十足糟透了的商业决策。

 

 

我们对开源的承诺仍然一如既往,并且还会继续加大力度。我们期望可以继续同社区并肩作战,在接下的数月及至数年里创造更多的辉煌。对于 Spring Framework3.0 的到来,我们欣喜若狂,其它的开源软件也会随之发布。我们因我们能够为开源做出越来越多的贡献而感到自豪。

 

 

 

 

稳定的社区发布

 

 

最初,我们的维护策略是当每个主要 Spring 版本发布后,社区的维护将维持三个月,来提供版本初始的稳定性,之后的维护发布将只提供给 SpringSource 企业版本用户(尽管源代码还是可以获得,只是没有版本号了)。

 

 

这么说的话,我们仅仅是对 3 个月后的主要发行版本改变了分发方式。我们仍然会将源代码基于当前许可。许可不会改变。

 

 

尽管如此,社区里的一些人还是关心是不是真的 3 个月后就无法从 Spring repository 得到打上 tag 的源代码了。他们担心会因为二进制的发布问题从而让 Spring Spring 社区产生隔阂,因为缺乏 tag 的源代码要想修复 Bug 是有困难的。还有一些人担心这还会造成 Spring 分发上的混乱,从而让 Spring 社区在交流的源代码的时候变得更加困难。

 

 

我们非常慎重的考虑了这些问题,然后我们最后的商量结果是:为了更好的向我们的社区(也许最重要的社区主要还是 Java 企业开发这块)诠释我们的承诺,我们应该进一步的满足用户的需求,从而确保它继续快速发展。

 

 

“鉴于社区的反馈,我们对我们做出的维护策略深感歉意。我们会继续从 Spring trunk 源码中向 Spring 社区提供二进制发布版本,不再是什么 3 个月的期限。对于每个 Spring 的版本,社区版本将仍然保持 trunk 或直到下一个稳定版本。”

 

 

一旦我们发布了某个项目新的 candidate 版本后,我们将通常就不再对开源社区发布它先前版本的 tag 或二进制版本。而 SpringSource 的企业用户对这些可用的发布版拥有三年的使用权。(注:也就是说社区得到的 tag 或二进制版本始终是最新的,后面有举例)

 

 

我们维护策略的关键目标是集中我们的资源来推动 Spring 更加饱满的向前进,并且继续引导 Java 企业开源的革命。随着我们开发资源的不断增长以及频繁的新版本发布,我们前进的步伐将会比以前更加迅速,从为社区带来了更多的特性。

 

 

举个例子, Spring 2.5.x 仍然是可以通过 SVN truck 的,那么在改动后维护策略下,不久我们仍然会为社区提供 Spring 2.5.6 版本。 Spring 3.0M1 很快也要发布了,而它的 trunk 自然是从 3.0 开始。一旦我们发布了 Spring 3.0 RC1 ,那么我们就不再提供任何 Spring 2.5.x 分支的任何 tag 或二进制发布。我们将会一心扑在 3.0 的开发上面,这样在 3.0 的第一个里程碑发布后,我们也可以尽快发布 3.0 的正式版了。

 

 

我们三年的支持策略是为那些不可能或不愿意升级的企业用户所服务的。其余的精力都放最新特性的开发上,从而让社区的开源用户从中享受好处。

 

 

 

小型商业公司付费

 

 

由于往往是大型企业侧重于我们的商业产品,使得一些小的公司认为我们忽悠了它们或者觉得我们不想与它们有业务上的往来。实际上不是这样的——我们不会简单的按照企业的规模才来决定为它定制服务。现在确实有的公司误解我们,还草草下了这个结论,在这里我对我们曾经制定的价格体系而让你们误导而道歉。

 

 

我们知道小型商业公司都是开源软件的活跃分子,他们对整个技术的发展做出了重要的贡献。因此,我们会引入一个新的产品,它的设计和定价都是专门针对一些有特殊需求的小型商业公司。因为这是BLOG,不适合谈论过多的商业细节,但我们还是会在近期发布一些关于此项产品的最新信息。(注:从这里我们可以看出,所谓的小型商业公司收费只是大型企业收费的延续,仍然针对的是有特殊需求的小企业,并不是说Spring对所有小公司要收费了。)

 

 

 

 

平衡

 

 

毋庸置疑,我们已经向我们的社区解释了我们的所作所为以及相关的必要性。

 

 

尽管如此,理解我们维护策略变更的意图仍然非常重要。第一,我们决不在没有向社区和我们客户解释清楚我们的承诺之前,轻易的宣布个维护策略变更。作为一个公司,我们总是在设法对社区开发透明,而不是独自闭门造车。有时候,交流上的不畅快往往都会导致其它公司立马转身,扬长而去。第二,策略是为了帮助我们从一些无法正常升级到最新版本,却又希望得到SpringSource的帮助来维护老版本的机构那里获得收入,也就是说社区不是我们的针对的目标。那些机构要的是稳定的,世界级的技术支持,当然了也包括我们提供的企业开发套件。

 

 

我们想成为一个大公司,可以支付得起为之奋斗的有才能的开发人员费用,可以获得一个合理的利润从而继续加大我们对开源软件的贡献。我们越成功,我们对Spring社区贡献的代码就越多。过去成长的2年里,我们编写开源代码速度越来越快,而在最近的12个月里,Spring的下载量也是越来越多,与此同时,要求会Spring技术的工作也是越来越多。

 

 

许多机构可以通过我们的企业产品,技术支持以及三年周期的版本维护从而认识到我们的价值。同样我们也清楚更多的人并不打算购买这些产品和服务。没关系!那也正是开源软件商业化的意义所在。如果我们可以继续对现有的软件加大投资力度,每个人都会获得的。

 

 

下面我要说到的策略是我期望能够实现的:

 

 

“如果你作为一个机构,在大量的生产环境中通过使用Spring从而享受到了巨大的好处,那么请你向SpringSource支付你所创建价值的1%。我们会将这些钱对于支付薪水,加大开源软件的投资从而获利。”

 

 

如果这个策略可以付诸于行动,那么真是太棒了。如果无法实现,我们只好将我们的维护策略集中服务于那些可以我们报酬的机构,它们可以用我们的产品,并还可以保证获得企业级的软件栈(software stack);同时,我们还会继续保持开源,继续为社区提供卓越的软件。策略尽管并不是很完美,但我们相信我们现在所做的一切对于Spring的开源社区和那些需要SpringSource商业服务的机构来说达到了一个最佳的平衡。我们非常期待你的反馈,这样也会更加帮助我们去为社区做的更加出色。

 

 

 

不再玩更多的电话游戏(Telephone Game)[注1]

 

谁有更多的建议性意见可以通过论坛或发邮件给我,我会由衷的向你说声非常感谢。感谢你在Spring的这些问题上所给予的关注;感谢你花时间和我探讨和分享你的看法。请继续保持下去!

 

 

还有一个经验教训我要说的就是一定要让SpringSourceSpring团队以及Spring社区之间更加直接的交流。也许你玩过一个叫“电话游戏”小游戏,并且听说过这么一个有名的故事:

 

“在第一次世界大战时,一个将军需要传一个信息回司令部。他对他后面的人说:‘快发送增援请求,我们要前进了’。消息在行进的队伍中不断地向后传,最后它到达了总部,但是消息已经变成了‘发送三便士和四便士,我们正打算跳舞’。”

 

通过留言板和博客交流是很重要,但往往并不总是可靠的。

 

 

我非常希望有机会可以通过更好的方法与你交流思想。我已经采取了像在线聊天系统,日常开放电话会议等方式….. Spring社区是属于你的社区,我知道你有更棒的想法…..

 

 

 

 

 

(全文完…..

 

 

 

 

 

 

[注1]:也Chinese whispers。叫现在传话游戏在许多电视娱乐节目里很受欢迎,而且还有了个很好听的新名字“传声筒”,其实它也是一个非常经典的儿童游戏,在英语中叫做Chinese

whispers,从英文名字来看这个游戏是从中国传到国外的可能性很大哦。玩“传声筒”最大的乐趣就是一句话从前到后经过几个人的传递之后就走了样,经常产生意想不到的效果。

 

8
4
分享到:
评论
11 楼 hyys2008 2008-10-14  
娴静女生 写道

呵呵,拜谒拉!


写的很好,很强大。。。


hi,你是男的女的哦,是女的偶就泡你了啊
10 楼 娴静女生 2008-10-12  
呵呵,拜谒拉!


写的很好,很强大。。。
9 楼 hyys2008 2008-10-11  
upheart 写道

大家会为一个个垃圾的“企业中间件”支付不菲的费用,可是却不愿为spring这种在他们项目中起核心作用的东西付一点点钱……开源的商业化还需要探索。大家反映强烈的另一个因素是大家对开源产品投入的感情可能比商业的产品多些


那也不是这么说的,主要是spring不诠释springsource在contribute,整个community也在contribute,因此,收费的话大家肯定反应很强烈了。如果没有communty的支持,相信spring也不会影响这么大,因此,这也是open source community社区的力量。
8 楼 hyys2008 2008-10-11  
robbin 写道

Rod Johnson显然忽略了这一点,而显得过于坦诚。


偶到觉得Rod的坦诚更是让人尊敬(实际上也是逼于无奈,相信,如果之前的策略社区不反对的话,他绝对不会Refatoring),而且,即便不“坦诚”,这么活跃的社区,迟早也会知道的,到那个时候,用户失去了信心,估计spring真的就彻底失败了。

"As we increase our development resources we aim to move forward more quickly than ever before, with frequent major releases bringing new features and capabilities to the community."

按照Rod的说法,目的是为了让spring更好的发展,然而资源有限,而且毕竟是商业公司,肯定需要在商业和开源之前做个平衡。

当然,实际上针对有限资源的问题,Gabriel 提到的一个一种替代方案是:“So let's say 3 extra developers who cost SpringSource 10000$/month do nothing to advance Spring, and the community gets almost nothing from their work, but they do get salaries from SpringSource, so if your company wants to enjoy their work, why shouldn't you pay for it? The alternative is to hire developers yourself which would be responsible to always upgrade your software to use the latest version of Spring, and do you think you could get anyone to do it for free?”,很明显,他是站在社区的角度考虑,针对Rod 在blog上说的balance,这个方式显然很好,不过,本质上,这侧的变更本来就是商业问题,只是在满足商业的前提下,尽量不影响社区。因此,我估计这个替代方案Rod不会接受。


不论如何,先前的policy对spring影响太大了,正如Zvika 所说“Trust has been broken, and it will take a long time to mend. ”。

不管怎么样,Refatoring之后的policy对社区来说的确是一个很振奋的消息,其对社区的限制小了很多很多,相比之前友好了很多很多,虽然还是有那么一点点限制。

不管怎么样,按照现在的polciy,大家应该还是可以像之前一样高枕无忧了。

不过呢,从架构的角度考虑的话,你的设计决策本来就不应该依赖于spring,应该尽量减少其依赖性,应该是使用spring提供的服务,而在任何时候,都可以替换这些服务,那遇到这样的事情的时候,你就不用担心了。

不论如何,spring的代码质量的确很高,因此,大家继续用吧,继续用,嘿嘿。

:)
7 楼 fins 2008-10-10  
lz  一直很喜欢你翻译和总结的文章

我除了忘记向你表达敬意与谢意之外

还忘记了一件重要的事情, 忘记了问你 你的头像里的人是谁?

6 楼 40020072 2008-10-10  
头像太像我一个大学同学了。。。。
5 楼 didasoft 2008-10-10  
robbin 写道

开源软件商业化策略总是会引起轩然大波,这真是一个遗憾。我觉得最为开源软件创始人在把握商业化这一点上,最关键在于:不能让从前的免费用户感觉到他们的服务被削减了。因此无论是软件维护策略,还是宣传口径上,不能出现任何“不”字,这样才能安抚用户。Rod Johnson显然忽略了这一点,而显得过于坦诚。

robbin说得很对,这是一个宣传策略的问题。原则应该是,为想要付费的机构提供更多的服务,而原有的社区服务不发生变化。
4 楼 stack3256 2008-10-09  
花一个星期研究这些声明  ,然后又变了声明...
到底是开源的呢 , 还是不开源的? 或者其中有什么商业陷阱
3 楼 amonlei 2008-10-09  
upheart 写道

大家会为一个个垃圾的“企业中间件”支付不菲的费用,可是却不愿为spring这种在他们项目中起核心作用的东西付一点点钱……开源的商业化还需要探索。大家反映强烈的另一个因素是大家对开源产品投入的感情可能比商业的产品多些

原来免费,突然要花钱,免不了心里不爽。。。
2 楼 upheart 2008-10-09  
大家会为一个个垃圾的“企业中间件”支付不菲的费用,可是却不愿为spring这种在他们项目中起核心作用的东西付一点点钱……开源的商业化还需要探索。

大家反映强烈的另一个因素是大家对开源产品投入的感情可能比商业的产品多些
1 楼 robbin 2008-10-09  
开源软件商业化策略总是会引起轩然大波,这真是一个遗憾。我觉得最为开源软件创始人在把握商业化这一点上,最关键在于:不能让从前的免费用户感觉到他们的服务被削减了。因此无论是软件维护策略,还是宣传口径上,不能出现任何“不”字,这样才能安抚用户。Rod Johnson显然忽略了这一点,而显得过于坦诚。

相关推荐

    让Spring之父Rod Johnson拍案叫绝的原创经典(spring解密)

    《Spring解密》一书,以其深入浅出的讲解方式,赢得了Spring之父Rod Johnson的高度赞扬,这本书无疑是我们深入理解Spring框架的宝贵资源。在这一章节(ch19)中,我们将探讨Spring的核心特性以及其在实际开发中的...

    SpringiA4_SourceCode:Spring实战第四版源码,学习用。

    Spring框架是Java企业级应用开发的核心工具,由Rod Johnson创建,它提供了一个全面的编程和配置模型,旨在简化Java应用程序的开发。Spring以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented...

    面渣逆袭:Spring三十五问,四万字+五十图详解.doc

    * Spring 由 Rod Johnson 创建,目的是开发一个轻量级的 Java 开发框架。 * Spring 具有多种特性,如 IOC 和 DI 的支持、AOP 编程的支持、声明式事务的支持、快捷测试的支持、快速集成功能、复杂 API 模板封装等。 ...

    Spring技术内幕:深入解析Spring架构与设计原理(第2版) .pdf

    Spring框架是一个开源的企业级Java应用程序框架,由Rod Johnson创建,现由Pivotal软件公司支持。Spring框架最初是为了简化企业应用开发而设计的,它提供了一种轻量级的方式来管理依赖注入(Dependency Injection,DI...

    毕设 外文文献翻译--Spring的web-MVC-构架模式

    Spring是一个轻量级的开源Java应用框架,最初由Rod Johnson创建,并由Juergen Hoeller等人继续开发和完善。Spring框架的设计目的是简化企业级应用的开发,提供了一整套的解决方案,包括但不限于依赖注入(DI)、面向...

    Spring总结——田超凡.docx

    Spring 是一个广泛应用于企业级 Java 开发的开源框架,由 Rod Johnson 创建,旨在简化 Java EE 应用的复杂性。它以轻量级、低侵入式的设计理念,提供了全面的解决方案,涵盖从表现层到业务逻辑层再到持久层的各个...

    Spring源代码解析(三):Spring_JDBC.doc

    这些模板类体现了Rod Johnson提倡的编程风格,即通过回调和模板方法来封装复杂操作,降低开发者的负担。 总的来说,Spring JDBC的JdbcTemplate是Spring框架中用于数据库操作的关键组件,通过回调接口和模板方法设计...

    学习笔记:尚硅谷Spring6基础篇

    Spring是一款主流的Java EE轻量级开源框架,由“Spring之父”Rod Johnson提出并创立。Spring的主要目标是简化Java企业级应用的开发难度和开发周期。Spring不仅仅适用于服务器端开发,它的设计理念强调简单性、可测试...

    多图详解Spring框架的设计理念与设计模式

    Rod Johnson在其著作《Expert One-to-One J2EE Design and Development》中对Java EE框架的臃肿和低效提出质疑,并着手探索更加轻量级的开发框架。这一探索的成果便是interface21框架,而Spring正是在此基础上进一步...

    语言程序设计资料:Spring教程.docx

    Spring最初由Rod Johnson在2002年发布,作为一个反模式——EJB(Enterprise JavaBeans)的替代方案。随着Java社区的发展,Spring逐渐成为了企业级Java应用的事实标准,现在已被广泛应用于各种规模和类型的项目中。 ...

    Spring技术内幕:深入解析Spring架构与设计原理(第2版)

    Spring框架是由Rod Johnson创建的一个开源项目,它最初是为了简化企业级Java应用程序的开发而设计的。随着版本的不断迭代,Spring已经成为了一个功能强大且全面的企业级应用开发平台。本书《Spring技术内幕:深入...

    spring2.0技术手册.pdf

    Spring 是一个开源框架,最初由 Rod Johnson 创建。它是一个轻量级的控制反转(IoC)容器,用于简化 Java 应用程序的开发。Spring 2.0 版本进一步扩展了其功能,并提供了更多的特性来支持企业级应用的开发。 #### ...

    Spring技术内幕:深入解析Spring架构与设计原理(第2版).pdf

    Spring框架是由Rod Johnson创建的一个开源框架,最初是为了解决企业级应用开发中的复杂性而诞生的。Spring框架的核心特性可以被方便地集成到任何Java应用中,而不需要额外的部署。Spring框架提供了一个强大的反转...

    Spring5.1中文参考指南.pdf

    - **历史背景**:Spring项目始于2002年,由Rod Johnson创建,自2004年发布第一个版本以来,不断发展成为当今最受欢迎的企业级Java应用开发框架之一。 - **设计哲学**:强调轻量级、非侵入性以及对POJO的支持,通过...

    精通Spring+4.x++企业应用开发实战

    Spring框架是一个开源的应用框架,由Rod Johnson在2004年创建。它主要用来简化企业级Java应用程序的开发工作。Spring框架的核心特性包括依赖注入(Dependency Injection, DI)、面向切面编程(Aspect Oriented ...

    Spring教程 spring tutorial

    - **2003年6月**:Spring框架由Rod Johnson创建并首次发布。 - **2004年**:Spring框架1.0正式发布。 - **2005年**:Spring框架2.0发布,增加了对Java 5的支持。 - **2015年3月**:Spring框架4.1.6发布,这是本教程...

    spring-developing-java-applications-enterprise

    Spring框架是一个开源的企业级Java应用框架,由Rod Johnson创建并由Pivotal Software维护。它最初被设计为解决企业应用开发中的复杂性问题,随着时间的发展,Spring已经成为了一个功能强大且全面的框架,支持从简单...

    马士兵老师spring框架学习笔记

    Spring框架是Java开发中的核心框架,由Rod Johnson在其著作《Expert One-on-One J2EE Design and Development》中提出,旨在简化企业级应用的开发。马士兵老师是知名的Java教育专家,他的Spring框架学习笔记深入浅出...

    spring框架外文文献.docx

    Spring框架起源于Rod Johnson在2002年出版的《Expert One-on-One J2EE Design and Development》中的代码。这个框架融合了Java企业版(JEE)开发的最佳实践,与一流的第三方框架集成,并提供了简单的扩展点,允许你...

    java-spring经典教材

    Spring框架由Rod Johnson最初编写,并于2003年6月首次发布在Apache 2.0许可下。 #### 二、Spring框架的特点 - **轻量级**:Spring框架在大小和透明度方面都是轻量级的,其基本版本大约只有2MB。 - **模块化**:...

Global site tag (gtag.js) - Google Analytics