1
jiyinyiyong 2013-09-15 13:14:30 +08:00
比如说 CoffeeScript 是开源的 https://github.com/jashkenas/coffee-script/issues
然后一群菜鸟混在大牛中文, 一起在 Github 上提各种需求, 能力不同的人争论来争论去, 社区要的功能, 作者的看法, 在代码完成前完成后都被讨论个 N 遍, 任何会 Git 和语言开发的 Github 用户都可以 Fork 代码提交自己的修改, 虽然不一定采纳.. 好处解释不来... |
2
bjlbeyond OP @jiyinyiyong 首先感谢你的回复,你说的这一点我懂。但是比如一门不是开源的语言,编写的软件放到github上这不是也叫开源了吗?这是不是和语言的开不开源没有关系?
|
3
ericls 2013-09-15 13:26:43 +08:00
我也不理解 这个是什么意思。。
难道是编译器是否开源? 有些编译器c写的 c是不是开源? |
4
lichao 2013-09-15 13:31:45 +08:00 1
|
5
bjlbeyond OP @lichao 你上面所说的“就去修改源代码”这个源代码指的是什么?未经过编译的文件?能给我源代码的链接地址吗?如果不是开源的语言是不是就没有你说的这个公开的源代码?
|
6
kstsca 2013-09-15 13:35:13 +08:00 1
简单说 c加密不容易破解。 php加密难度大,还有更平台有关,win是封闭的 所以出来的东西一堆shit 而linux都是不加密 代码公开的。
|
7
meta 2013-09-15 13:35:34 +08:00
c不开源?那gcc怎么办。
|
8
lichao 2013-09-15 13:35:58 +08:00
|
11
likexian 2013-09-15 13:37:34 +08:00
开源 == 有社区去维护它,完善它,不受各种商业标准限制,也不会因为某个人或某个公司的行为导致这个东西突然死掉
更简单的来说,开源是一种精神 |
12
cxe2v 2013-09-15 13:45:22 +08:00 7
哈哈哈,看上面一群自己都没搞清楚开源意思的人来急着给楼主解释什么叫开源,好玩!
|
17
fwee 2013-09-15 14:26:47 +08:00
@bjlbeyond 语言是规范,一般说‘开源’指的是官方实现是开源的。比如C#(语言),你完全可以去改mono(一种开源实现),或者自己去实现一个
|
19
yinxingren 2013-09-15 14:36:53 +08:00
|
21
lidashuang 2013-09-15 14:37:34 +08:00
@bjlbeyond c#不是开源的,不过有开源的实现
|
24
est 2013-09-15 14:42:29 +08:00
这贴太欢乐了。
|
25
lll9p 2013-09-15 14:48:43 +08:00 2
感觉LZ没有语言的实现这个概念。。。
|
26
LokiSharp 2013-09-15 14:56:26 +08:00 1
@ericls 说C不是开源语言是因为C的规范是由「ANSI(美国标准委员会)」来指定的。这个规范是闭源的,普通人不能修改。
而 GCC 这类编译器属于对 C 的实现,需要去实现 ANSI 制定的标准,但是具体实现方式可以自行决定。 比如说,你对 GCC 的一个功能实现方式不满意,你可以去修改 GCC 来使它符合你的意愿。 但是如果你对 C 标准不满意(比如你不喜欢花括号,或者它不面向对象),你没有权力去修改标准,但是你可以在其基础上创造新的语言。 |
27
lhx2008 2013-09-15 15:00:38 +08:00 1
开源就是开放源代码,
源代码开放是相对的,比如说一个电池盒,闭源就是不给你换里面的电池,只能厂家来换, 相对的开源就是你可以去换电池, 但是开源也只是相对的,电池里面的东西你也没有能力去更换 !但是,你可以去换一节更好的电池。 我的理解,轻拍 |
28
wtbhk 2013-09-15 15:06:47 +08:00
语言开源和用语言写出来的东西开源这根本不是一回事吧= =
好吧我也不知道语言开源是什么意思,语言不就是一套标准吗,还分开源的标准和不开源的标准? |
30
wtbhk 2013-09-15 15:12:09 +08:00
@onemoo 所以语言的开源闭源其实没有软件的开闭源这么严格吧。遵循标准放出源代码就是开源否则就不是,而所谓的开放团体和封闭团体其实不那么好区分。
|
31
9hills 2013-09-15 15:47:30 +08:00 1
我的理解是这样的,一门语言是否可以称为是开源的,取决于这门语言的官方实现是不是开源的,比如GCC就不是C的官方实现(C貌似没有官方实现),所以GCC是GPL的,但是不能说C这门语言是开源。而Python的官方实现 CPython是开源的,so我们可以认为Python是门开源语言
而语言开源与否和用这个语言写出的程序开源与否没有任何关系(有时候标准库什么的会有一些问题,不过不细谈了) |
32
cxh116 2013-09-15 16:13:30 +08:00
@bjlbeyond
首先,开源软件(英语:Open source software,英文缩写:OSS,中文也称:开放源代码软件)是一种源代码可以任意获取的计算机软件,这种软件的版权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改、增进提高这款软件的质量。 http://zh.wikipedia.org/wiki/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6 上文也到了另外一种东西软件协议(License).有了License这个东西,会导致开源也不一定免费. 比如我可以把源公开,自己写个License,必须给我100元才可以使用我这个项目的代码. 关于用开源的语言写的东西是可以开源,得看开源语言的License约束你的产品是否允许开源. 比如你发明一个语言,你可以在License约束,所以以此语言写的代码必须以二进制形式发布,不允许公开源码 另外31楼说的也很对,语言一般来说是一种标准,可以有多种实现.比如python有cpython,jython等,一般License针对实现的 |
33
alexrezit 2013-09-15 16:16:34 +08:00
只听说过开源软件, 开源硬件, 从来没听说过开源语言.
|
35
meta 2013-09-15 17:49:37 +08:00
什么是c的官方,谁拥有c的商标权,我也写个编译器来编译c,会不会有人找我打官司,说我不能使用c这个名称。还有,如果我的c语言的实现的标准库跟ansi的不一样,ansi会不会告我侵权,未经许可修改了标准库。
|
36
air00dd 2013-09-15 17:53:30 +08:00
|
37
lightening 2013-09-15 17:53:48 +08:00 2
@bjlbeyond 你自己的项目开不开源和语言没有关系。你用 php 做了一个网站,只要你愿意把你的网站的源代码公开给别人,那就是开源的。
其实,语言只是一种标准,就像汉语和英语一样。你人类掌握了一种语言,电脑也掌握那种语言,才能沟通。电脑掌握一种语言的方法就是编译器或解释器。这个编译器或解释器也是一个软件,所以也有开源和闭源之分。其实,现在广泛使用的 C 语言编译器 gcc 和 clang 都是开源的。php 解释器是用 C 语言写的,并且作者愿意公开它的源代码,所以说 php 是开源的。有的语言比如 java,有闭源编译器,也有社区维护的开源编译器,你可以根据需要选择使用。 而你,可以用一个开源的语言做一个闭源的项目,也可以用一个闭源的语言做一个开源的项目。你的项目是否开源完全取决于你是否愿意公开你自己项目的源代码。 开源的编译器、解释器有什么好处?第一,是开源的解释器、编译器可以利用社区的力量去维护。如果有人发现了一个 bug,就可以去帮忙修补掉。这一点,所有的开源软件都有这样优点。第二,是比较安全。编译器是非常核心的东西,如果你不知道你使用的编译器、解释器在背后偷偷干什么的话,是不是有点危险?开源的编译器、解释器就相对安全一些,毕竟有那么多双眼镜盯着,如果有什么后门,会比较容易被发现。所以现在被广泛使用的语言的编译器、解释器,几乎全都是开源的。 |
38
wodemyworld 2013-09-15 20:39:44 +08:00
这尼玛也要讨论么。。。
语言跟开不开源无关,v2ex已经沦落到如此地步了。。。 |
39
Narcissu5 2013-09-15 21:06:31 +08:00
@LokiSharp 规范是闭源的?规范都没有源代码哪来的开源闭源?
另外,C#的语法标准,元数据格式都已经是EMAC标准了,不用再担心微软。之前一直被担心的是基本库的API,不过从Java的判例来看,至少海洋法系的美国不再是问题了。 |
40
jiyinyiyong 2013-09-15 21:51:29 +08:00
@bjlbeyond 呃.. 楼主问题没写细, 我也只回答了我知道的部分.
代码是否开源取决于与源码一起发布的协议, MIT, BSD, GPL 比较常见, ...表示作为业余基本上写东西都用 MIT, BSD, 几乎不保留个人对代码的权利, 像 GPL 协议会规定使用改软件的软件也必需遵守 GPL 否则不成立. 一般情况下, 写完代码发布出去, 附带一个开源协议, 就算开源了, 如果那门语言本身表明有限制那另当别论, 具体不是很清楚. 只是开源社区对开源代码要求, 或者说期待会高一点, 不是写了代码扔过去就好, 别人看到你开源, 会期待你修 Bug, 期待你维护, 或者讨论增减功能什么的. 这主要看使用者了. 当然这不算在代码开源必须满足的条件里. |
41
kdlijian 2013-09-15 22:02:27 +08:00
楼主问得问题比较微妙,建议先搞清楚什么是*软件*开源与闭源就好了。
关于**编程语言**是否说版权保护,且看甲骨文和Google去年的官司: 《甲骨文坚称编程语言受版权保护 Google持异议》 http://www.leiphone.com/0414-google-oracle-debate.html |
42
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的编译器编译成可执行文件,运行算不同的操作系统上。 最后,关于开源协议的东西,楼上有很多介绍了,自行了解。 |
43
hpowen 2013-09-16 04:27:36 +08:00
好欢乐+1
|
44
cattyhouse 2013-09-16 07:28:05 +08:00 via iPhone
http://en.m.wikipedia.org/wiki/List_of_open-source_programming_languages
语言是一个定义了如何写代码以及如何将代码转译成计算机能理解的二进制文件的一系列规范。实现这些规范要靠软件,有些开源,有些闭源,以上就是所有开源的编译器。 语言本身不存在开源不开源,它是个规范,就比如USB,WIFI规范一样。 |
45
zencoding 2013-09-16 08:09:40 +08:00
好欢乐+1
|
46
linuxer 2013-09-16 09:12:42 +08:00
涨知识了。
|
47
julyclyde 2013-09-16 11:41:04 +08:00
伸手党+troll啊
|
48
lixm 2013-09-16 11:57:41 +08:00
其实我觉得更应该说某个编译器或者某个解释器开源,而不是语言开源,语言应该属于规范之类的东西。例如C语言,事实上只是一个标准,有各种编译器实现,gcc, clang以及微软的c编译器等。
|
49
SharkIng 2013-09-16 12:06:50 +08:00
开源语言就是说这个语言的一些库代码都是公开的,你可以自己添加自己需要的库,或者是自己修改已有的库
我是这样理解的,不过这种说法真的不多,一般都是说开源软件 |
50
meta 2013-09-16 12:24:39 +08:00
我觉得楼主的意思可能是说php写出来的东西发布后可以看到源代码(解释执行的那种,不包括编译或者混淆过后的),而c写出来的如果是二进制发布的话则看不到源代码。
所以请楼主确认一下你想表达的真实意思是不是这个。如果真是这样,那么跟源协议有什么关系,楼上各位还较真个什么劲。 |
51
momo5269 2013-09-16 12:56:18 +08:00
维护、开发和发展都是开源社区和开源的标准组织在运作的,独立于厂商,生态系统自由开放的。
相反的例子则是由厂商和封闭标准组织进行运作的,有专利权的,生态系统独裁统治的。 我只是说和语言相关的开放与封闭,其实我也不知道开源语言是啥,语言的开源倒是有点明白。 |
52
66beta 2013-09-16 14:07:42 +08:00
简单来说,看它的license就行了
|
53
luikore 2013-09-16 14:42:24 +08:00 1
最简单解释: "至少不是微软或者 Oracle 搞的"...
|
56
deyu260 2013-09-17 18:16:50 +08:00
这让我想起了世界上哪个语言最好的笑话,程序员永远在争论
|
57
USCONAN 2014-10-31 07:39:57 +08:00
英語是開源的嗎?
這是同一個問題。 |