经常说一门编程语言是开源的是什么意思?

2013-09-15 13:06:35 +08:00
 bjlbeyond
最近正在学PHP,在网上看了不知道有多少遍PHP开源多么多么好。。。开源到底是什么意思?对于我们学习编程语言有什么好处?php源码是什么?

C语言不是开源的,那么PHP开源和C比起来有什么优点?
17406 次点击
所在节点    程序员
57 条回复
kdlijian
2013-09-15 22:02:27 +08:00
楼主问得问题比较微妙,建议先搞清楚什么是*软件*开源与闭源就好了。

关于**编程语言**是否说版权保护,且看甲骨文和Google去年的官司:

《甲骨文坚称编程语言受版权保护 Google持异议》
http://www.leiphone.com/0414-google-oracle-debate.html
Mutoo
2013-09-15 23:08:02 +08:00
"最近正在学PHP,在网上看了不知道有多少遍PHP开源多么多么好。"
我觉得你所听到的正确的说法应该是“有很多用PHP编写的项目是开源的”吧。

比如说wordpress,你可以从网页获得到wordpress从0.1版到现在最新的版本的源码,可以自行修改以满足自己的项目。

此外,php解释器本身确实也是开源的,你可以在这里获得它的所有源码 http://lxr.php.net/xref/PHP_5_4/ 但修改PHP通常对你的项目意义不大,
除非你做到像 facebook 这么大的公司,他们对php有更高的性能要求,可能会去修改PHP来达到他们要的效率,然后将代码提交到php社区,为开源做贡献。

至于你所谓的语言是否开源这样的说法,语言这种东西,其实只是一个规范,
比如英语有英语语法,所有讲英语的人只要遵循这个语法,就能相互交流。
世界上有那么一群人聚在一起,修订某种语言的规则,比如 ANSI C
http://zh.wikipedia.org/zh-cn/ANSI_C
然后大家用 ASNI C 标准来写程序,至此程序还只是文本而已,这时候要有一个C编译器来解读这个程序。不同的编译器最后都能产生可执行文件,但是其中的效率并不一样。
开源领域最有名的就是 GCC 编译器了,它的源码是开放的,你可以自由获取,可以去修改它,有趣的是 GCC 也是用 C 语言编写的,它能够完成自身的编译(鸡生蛋,蛋生鸡)。
而微软也有自己的编译器 CL.exe 这个编译器并不开源。

虽然有这么多的编译器,但是只要你的源码遵循ASNI C,那么就能通过同样遵循ASNI C的编译器编译成可执行文件,运行算不同的操作系统上。

最后,关于开源协议的东西,楼上有很多介绍了,自行了解。
hpowen
2013-09-16 04:27:36 +08:00
好欢乐+1
cattyhouse
2013-09-16 07:28:05 +08:00
http://en.m.wikipedia.org/wiki/List_of_open-source_programming_languages

语言是一个定义了如何写代码以及如何将代码转译成计算机能理解的二进制文件的一系列规范。实现这些规范要靠软件,有些开源,有些闭源,以上就是所有开源的编译器。

语言本身不存在开源不开源,它是个规范,就比如USB,WIFI规范一样。
zencoding
2013-09-16 08:09:40 +08:00
好欢乐+1
linuxer
2013-09-16 09:12:42 +08:00
涨知识了。
julyclyde
2013-09-16 11:41:04 +08:00
伸手党+troll啊
lixm
2013-09-16 11:57:41 +08:00
其实我觉得更应该说某个编译器或者某个解释器开源,而不是语言开源,语言应该属于规范之类的东西。例如C语言,事实上只是一个标准,有各种编译器实现,gcc, clang以及微软的c编译器等。
SharkIng
2013-09-16 12:06:50 +08:00
开源语言就是说这个语言的一些库代码都是公开的,你可以自己添加自己需要的库,或者是自己修改已有的库

我是这样理解的,不过这种说法真的不多,一般都是说开源软件
meta
2013-09-16 12:24:39 +08:00
我觉得楼主的意思可能是说php写出来的东西发布后可以看到源代码(解释执行的那种,不包括编译或者混淆过后的),而c写出来的如果是二进制发布的话则看不到源代码。
所以请楼主确认一下你想表达的真实意思是不是这个。如果真是这样,那么跟源协议有什么关系,楼上各位还较真个什么劲。
momo5269
2013-09-16 12:56:18 +08:00
维护、开发和发展都是开源社区和开源的标准组织在运作的,独立于厂商,生态系统自由开放的。
相反的例子则是由厂商和封闭标准组织进行运作的,有专利权的,生态系统独裁统治的。

我只是说和语言相关的开放与封闭,其实我也不知道开源语言是啥,语言的开源倒是有点明白。
66beta
2013-09-16 14:07:42 +08:00
简单来说,看它的license就行了
luikore
2013-09-16 14:42:24 +08:00
最简单解释: "至少不是微软或者 Oracle 搞的"...
miaoever
2013-09-17 12:27:22 +08:00
@luikore 微软开源的项目不少。
luikore
2013-09-17 18:07:27 +08:00
@miaoever 都是边缘项目或者做不下去的...
deyu260
2013-09-17 18:16:50 +08:00
这让我想起了世界上哪个语言最好的笑话,程序员永远在争论
USCONAN
2014-10-31 07:39:57 +08:00
英語是開源的嗎?

這是同一個問題。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/82523

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX