• 今天到CSDN参加了一个关于开源的讨论,谈到了自己参加开源项目的感受,也谈到了公司的一些情况。关于自己的部分,前前后后在blog里提到了不少。这里稍微整理一下自己对公司开源情况的一些理解,不见得完全正确,只是基于自己看到的和理解的,如果哪位同事觉得不对或不足,不妨站出来纠正或补充我。

    ThoughtWorks是一个咨询公司,这意味着我们有很多机会参与到不同领域的开发之中,也就让我们的经验可以得到不断丰富,更重要的是,我们有机会知道哪些经验是可以复用的。一些可以被复用的知识就在开发过程中被识别出来。ThoughtWorker们是一群愿意不断把事情做得更好的人,于是,就会有一些人把这些可以复用的部分提炼出来,将其开源,把这些知识分享到给社区。据说,CruiseControlRubyWorks就是诞生自ThoughtWorks的实际项目。

    ThoughtWorks最有价值的部分是人。和这样一群人一起工作,只要你把自己的想法抛出来,就会有人愿意与你讨论。相信大家都有类似的经验,很多时候,自己想一个问题很容易走进一个误区,而和别人稍微讨论一下,即便这个人的言论本身并不能给你带来太多的价值,但这个讨论的过程会让自己的思路逐渐清晰起来。ThoughtWorker们是一个巨大的思想来源,这样一群人之间的讨论经常会激荡出各种各样的火花。一个业余的例子是上周五下班之后,一群人玩编故事的游戏,其结果是包括周边的人在内,大家都已经乐得直不起腰了。

    开源,需要一个环境。如果周围的人都在做开源,自己就会以为开源是一件理所当然的事情。列在公司开源网站上的项目,其实那只是一些比较知名的项目,也是冰山一角。平时,不经意间和某个人聊天,你就发现,原来身边的这个人正在做一个开源的东西。大家在一起讨论的时候,也经常可以听到这样的话,那就不妨开源一下试试。陶公子最近发起了一个关于Domain Model的讨论,我就对他说了类似的话。

    公司内部有一个Innovation Community,也就是说,公司是鼓励大家进行创新的。经常会收到公司内部关于Innovation的邮件,介绍一些最近一段时间有人做的一些事情。其中很重要的一环就是一些ThoughtWorker新近发起的一些开源项目。gigix最近就在一次Innovation Community活动上,介绍了fluorida

    如果一些开源项目能够证明自身的价值,公司也是愿意投入一些精力将它完善。Selenium和CruiseControl就是这样在ThoughtWorks的协助下,得到了快速的成长。当然,不只是公司员工的项目,对于一些其它有价值的项目,公司也会投入一定精力去做,比如Ruby和JRuby。

    有了这样的土壤,开源也就变得自然而然。
  • OpenJDK
    https://openjdk.dev.java.net/

    Mobile and Embedded Community
    http://community.java.net/mobileandembedded/

    Open Source Java
    http://www.sun.com/software/opensource/java/

    Sun Opens Java
    http://www.sun.com/2006-1113/feature/index.jsp

    Java Story
    http://www.sun.com/2006-1113/feature/story.jsp

    James Gosling's Letter to the Java Community
    http://www.sun.com/software/opensource/java/gosling_letter.jsp

    CSDN报道
    http://blog.csdn.net/programmer_editor/archive/2006/11/14/1383027.aspx

    喊了好长时间的口号,Java终于开源了。这次主要是SE和ME,加上之前的EE,算是凑足了一条完整的线。

    和很多朋友一样,我有一个疑问。JDK的源码很早就可以得到了,开源的差别在哪呢?想来想去,根源可能在于我们对于开源的理解。我们一直认为有源码就叫开源,其实,开源的意义并不只是在代码开放,还有一个参与反馈的过程。原来的Java,我们可以从中学习,但并不能把自己的想法回馈到Java中,所以,算不得真正的开源。如果想参与,现在有机会了,因为Java开源了。

    不过,有一点需要清楚,实际上这里的开源只是开放SUN的Java实现,而并非Java语言,平台API和规范。这些东西依然控制伟大的JCP手中,这么多年了,JCP的办事效率大家都很清楚。所以,这种开源方式对Java而言,不会伤筋动骨,但是,想大踏步的前进也是不可能的。

    SUN对Java的开源采用了GPL 2,也就是说,可以发布自己的Java版本,但所做的改动要反馈回这个项目之中,SUN希望借此保持Java的纯正。谈及这次开源的意义,SUN把GNU/Linux也列了出来,至少以后发布的Linux发行版中加入Java可以名正言顺了,Richard Stallman可是最在乎名义的。

    SUN有做好事的传统,Solaris、NetBeans、OpenOffice等等全都送到了开源阵营中,这次是Java。SUN是商人和技术人矛盾的组合,它做出的东西都很不错,只是无法给自己带来足够的价值。SUN不傻,能赚钱的东西,它是不会开源的,送到开源社区也是无奈之举。

    顺便说一下,Java那个可爱吉祥物Duke也开源了。
    https://duke.dev.java.net/