五千年(敝帚自珍)

主题:【原创】论开源和修桥-说说我对开源的理解 -- 猪头简

共:💬27 🌺33
分页树展主题 · 全看首页 上页
/ 2
下页 末页
        • 家园 开源差不多只能算是一种软件发布模式,而非开发模式

          开源改变的是软件的发布模式,而非开发模式。

          开源发布的好处不言自明,使用者得到的更多的好处和权力。对于开发者而言,好处并不是很明显,可以看到的好处是用户提交的bug会更有质量。但这种用户相当少,显然能够在遇到问题进行源代码级的分析的人是很少的。而且除非是著名项目,否则也没有太多人(即便有能力)去花时间进行这种分析。

          有些人对开源软件进行了扩展以满足他自己的需求。但问题在于,这些人通常水平达不到开发软件的人的高度,所以哪怕他做了一个很好的扩展,也很难进入代码树,而后续得人即便从网上得到了他的代码,阅读起来也会感觉到困难。此外这个人的修改也许引入了许多其他的问题(他未必能够理解原来的整个设计和源代码,他当初扩展的目的只是为了自己的项目,而且最原始的代码未必适合扩展,说不定更合适的做法是重新设计架构)。

          • 家园 应该说

            应该说,很多开源作品的成功是源于是免费的。。

            商业作品也有很白烂的(还不如开源的,不过这种作品一般没人注意),做的好的多数不便宜。开源作品满足够用的需求,然后经过若干人评测稳定后,ok了,影响力日益扩大。

            也因此开源作品收版权费不是那么容易。

            一个好的软件作品,首先是软件构架出色,然后是核心开发人员水平高。

            开源作品优点在于有时候一些小扩展可以自行定制,但是不见得适合所有人。

            • 家园 核心在于开发者水平

              成功的open src项目,由于其开发人员水平超高,我认为那些项目如果不是open src的,也同样会成功。而且越是成功的open src项目,它的代码树越严格,几乎最后只有1到2个人有权力修改。

              一个有趣的事情是这样的:由于windows的symbol可以免费从MS下载,而且非常方便,其开发环境甚至集成了symbol下载,以至于在调试时只比没有src code差一点点,有时候我甚至感觉更方便,毕竟如果只有src code而没有symbol,是不能直接汇编-〉code的。有能力的程序员可以很容易的基于symbol找出windows的bug。这样做的人不多,因为有能力读懂汇编(哪怕是基于symbol)的人很少。linux代码是全开源的,但能够提交bug的人也很少,我认为和前者是差不多多的。

              所以linux开源的好处在于,使用者(开发者)可以通过阅读code学习——因此许多东西没有文档也无所谓了——反正你可以阅读代码(这怎么看都像是讽刺),使用者(开发者)可以修改——这个是windows怎么都赶不上的。

              至于多人添加模块,众人拾材火焰火焰高之类的梦想,那是不现实的。甚至众人寻找bug,都不那么现实。

      • 家园 开源整个一套体系你没看见啊

        linux kernel 不谈,linux上跑的大批软件真不入你的法眼?

        • 家园 好的当然有,但大量的是垃圾

          最有名的open source项目包括linux kernel,apache,boost等等,这些项目水平当然是相当高的,我或多或少都看了里面的代码,的确是水平非常高的。但上面提到的这3个代表性/标志性的项目,开发模式是典型的外科手术式的做法,是有主刀医生的。而且也绝对不是前文所提到的修桥模式。这些项目的开源,只是利于使用者阅读代码,也许有人会为自己的项目对代码进行调整,但调整不会进入源代码。能够修改源代码的人非常少,而且这些人都是超一流专家,写代码的时候是经过精心设计的。这个过程和大公司里开发商业软件没什么区别——可能还更为精英主义一些。

          我前面提到这些软件的代码会被其他人阅读,阅读者可以修改以适应自己的项目。这样的例子很多,但99.9%的修改到此为止,再也没有下家。还有0.1%的修改会被提交到前面所说的那些项目拥有者那里,在经过他们的仔细review之后进入源代码树。请注意是经过仔细review之后,而且review的人通常就是项目拥有者。这种review未必是非常快的,也许要拖很久。

          大批的open src软件先天就不足,一方面没有超一流高手,写得代码很烂。另一方面,由于很烂,所以没人会去关注,因此就更烂,因为没有人测试。然后由于没人愿意基于烂代码修改,所以也没人试图修改,即便有人试图修改,也不容易进入代码树。所以它就一直烂在那里。甚至很多著名软件都是如此。

          我举一个著名的开源项目的例子。vnc是一个远程桌面控制软件,非常著名,而且衍生出了许多变种。它的用户很多,修改也很活跃,直到最近都有更新。但是里面代码是非常烂的。我除了佩服他们在如此烂的代码基础上居然还能维持下去之外,别的也说不出什么了。事实上,vnc的多个变种,包括realvnc,tightvnc,utralvnc,都开发了商业版本,据说代码彻底重写过。而open src版本,则持续的保持烂的状态。这有点像前文所提到的那座桥。

          • 家园 就所谓开源的Linux kernel说明一点

            Linux kernel可以算是开源的标志了。但不要以为Linux真的是像鼓吹者说的那样,是由每个参与者改出来的。

            其实在Linux kernel开发者中,很多都是在支持Linux的跨国商业软件巨头里上班的,也就是说,是这些支持Linux的软件业巨头出钱,支付这些人工资去开发Linux kernel。

            现在Linux的成功很大程度上可以说是由于一些软件业巨头的支持,一旦没有了这些支持,Linux还能凭着共产主义式的开源模式继续发展吗,我看未必。这恐怕打碎了很多人美好的幻想,商业巨头们为什么要自己出钱出做免费了Linux,自己想想吧。

            • 家园 开源

              开源或者封闭都可以赚钱,不必执着一种模式

              不过现实来说,封闭是比较能保护核心知识产权的。

              举个简单的例子,oracle假设拿来开源,他仍然可以收版权费。但是就有可能某家山寨软件直接拉oracle搞出个山寨版本,但是他们封闭代码,拿来卖钱,oracle想对付这种家伙就很困难。

              像开源的东西也不少,比较少通过版权赚钱就是因为实在很容易被山寨了。

            • 家园 俺看过一篇分析写的很有意思

              俺看过一篇分析写的很有意思

              各个巨头都有自己的unix实现,事实上几个巨头都觉得这种情况很难受。

              他们希望能一统unix世界,但是以谁为标准?

              因此默契的捧linux了。

              linux不是为了对付微软,他的用途会很广阔的。像手机上、mid上、各种手持设备都能找到linux的变种。

              微软在pc领域优势大,但是如果运行平台性能不够,表现是比较差而且不够稳定的。另外,一般移动设备很少敢盗版微软的东西。

          • 家园 你这话讲的非常没有道理啊

            好像没有人宣称开源就一定保证质量如何吧,你这么评论开源纯属大战风车啊。

            你拿sourceforge说事那更是滑稽,是个人都可以在上面注册一个项目。

            开源可没有牛到一开源就是瓜瓜叫的软件啊。

          • 家园 同意。修桥的比喻并不正确

            同意。修桥的比喻并不正确

            无论是现实的修桥还是软件开发,都没有学徒工随便介入就搞出一个漂亮东西的道理。

    • 家园 好文章

      别的都同意,只是最后一段有点腹诽。

      IBM之所以能够成为全球最伟大的软件公司之一,并不在于它买了多少操作系统,而在于它为大型企业提供从管理到信息化的整套定制解决方案,而这套方案当中,包含了许多开源软件,以后或许更多

      想当年,IBM是电脑业的龙头老大,现如今,老本眼看要吃光。叹一声,IBM,曾经全球最伟大的软件公司。

      • 家园 我到现在也没觉得

        IBM在吃老本,事实上IBM几乎是变化最快的公司。想当年硬盘利润有多高?说卖就卖,事实证明IBM的眼光是对的;PC业务,包括笔记本,TP的利润应该还可以吧,也一样说卖就卖,现在看IBM还是卖对了吧。

        我就说一个,IBM在国内赚钱赚的最多,但同时声誉也是最好的,相反,MS在国内事实上没赚到什么钱,声誉确实是最差的一个。

        IBM和SUN的斗争,就耐人寻味,IBM看到SUN手里有JAVA这样的好东西,就投钱给apache做tomcat/tapestry/harmony之类的,结果IBM在开源界名声极好,简直就是开源界的大金主;同时IBM指责SUN对JAVA封闭源代码,搞得SUN好象成了千古罪人一样。事实上SUN在JAVA上任劳任怨,也一样没落下什么好。

        IBM有一点,就是它始终牢牢占据了高端计算平台,什么样的软件开源只要不影响到他的高端计算平台,IBM自然都会支持。

分页树展主题 · 全看首页 上页
/ 2
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河