c#为什么开源

 我来答
冷月无声映寒窗
2023-04-27 · 超过34用户采纳过TA的回答
知道答主
回答量:1348
采纳率:90%
帮助的人:24.6万
展开全部
开源即开放源代码(Open source code)也称为源代码公开,指的是一种软件发布模式,讲源代码公开。闭源(Closed source)是作为开源的反义词而出现的一个术语,指被用于任何没有资格作为开源许可术语的程序。

1、开源。 描述了一种在产品的出品和开发中提供最终源材料的做法。一些人将开放源代码认为是一种哲学思想,另一些人则把它当成一种实用主义。在这个词广泛使用前,开发者和生产者使用很多词去描述这个概念;开放源代码在互联网上获得广泛使用,参加者需要大量更新电脑源代码。开放源代码使得生产模块、通信管道、交互社区获得改善。随后,一个新著作权、软件授权条款、域名和消费者提供创建的,一个新词开源软件诞生。

2、闭源。一般意味着将仅能获得它们许可的计算机程序的一个二进制版本,而没有这个程序的源代码。软件的翻译修改从技术方面来说几乎是不可能的。这个发展模型的源代码被看作这个公司的商业秘密,因此可能获得源代码接入的团体例如学校,商业机构等必须提前签订不泄漏协议,以保证源代码不会大众所知而影响其盈利。

那么对于开源和闭源,两者有哪些优势呢?
针对闭源……

1. 出了问题,不用自己搞定
只要是软件,难保不出问题。要是开源软件出了这事儿,要么你自己,要么某个欠你人情债的工程师,总得有个人要花费时间排除bug。通览代码,求助于开源社区或者开源软件的供应商,通过这些手段来解决问题。

但是闭源呢,一旦你确定开发商代码出了问题,ok,你的工作到此为止! 你只需发个文件,等着就行了。当然,可能会等上几个月或者几年,问题才能得到解决,更甚者永远得不到答复。但是除此之外,你还能做什么呢。 把问题踢回去,放松,期待最好的解决方案,仅此而已。

2. 不必担心贡献回流到社区
如果用的是开源软件, 很有可能, 你解决了一个bug或者做出了改善,之后你的代码就会进入到社区,随着时间的推移从而帮助测试或者维护。

闭源就不同了,你根本用不着给任何人做任何事情。当然,那是因为你接触不到代码,所以也修改不了,但是你可以针对遇到的问题创建自己的解决方案。你可以一直只针对同一个问题,改善再改善,一个版本接着一个版本,至少用不着跟社区打交道,为其他人提供更好的解决方法。

3. 你不必考虑开源许可条款及规定事宜
对于开源,你必须遵循所使用的组件的许可条款。例如,想要搞明白Apache软件许可证和GPL之间的区别与联系,是需要花费一定的时间的。使用哪一种许可证取决于你所用的开源组件以及你如何使用这些组件(发布给第三方或者内部使用),据此都有不同的许可证可供应用(可附加到文档中进行说明)。

像OpenLogic这样的公司可以很容易地理解并遵守开源许可,但是针对闭源,你大可不必担心这类事情!你的供应商的许可协议把有关软件的所有的权利都收走了,如果没有你的公司的律师明确同意的情况下,你几乎是不可能的想以别的方式使用这些软件,想都不要想。当然,你还得考虑许可证数量、突如其来的软件合规性审计、随着时间的推移而恶化的条款、几乎难以理解的法律术语,但至少你不必了解如何使用开源组件。

4. 你用不着为每个组件在众多选项中进行选择
针对数据库,Web服务器,应用服务器,编程语言,图形用户界面框架,类似的方面等等,开源都提供了大量的解决方案。在每一个特定的领域,你都可以找到运用不同的架构方法,使用各种语言构建的健壮的成品。找一款功能相似的工具很容易,这些工具都针对不同的使用场合进行了优化(性能、可扩展性、简洁之间的比较)。为了确信一个工具软件在既定场合下功能够满足需求,可以下载下来,试用一下。

使用闭源软件的话,你就用不着对付那么多的选择。你只需要在每个领域探索两三个大厂商提供的产品。如果供应商没有提供免费试用版本,或者很难说服你为试用品买单,甚至根本不和你签署试用协议,那你就节省时间了。

5. 你不必四处找幻灯片
如果打算找一些软件的会议简报,架构图表,截图,以及其他相关的文档,这需要花费一定的时间。使用开源软件,你得读百科,访问论坛,还有邮件列表,才能获取到你需要的相关组件的信息。

使用闭源软件,一通电话就足够了,只需坐在自己舒适的办公室,会有西装革履的专业人士把PowerPoint演示文稿寄送到你的面前。当然,在你提供自己的联系方式之前,销售人员是不会给你打电话的。这样看来,至少自己没必要在网上搜索带有漂亮的图形的PPT。

6. 你无需到处寻求技术支持
你可以得到来自开源社区,自己的工程师,或专业开源组织的帮助。这可能需要一些时间,以决定是否要服务等级协议(SLA)的支持,以便于在保证的时间内得到答复,就像从OpenLogic那里获得帮助一样,或者如果你可以自由的发问题到邮件列表,自己解决。

闭源就不同了,你根本不需要担忧从哪获得帮助。而且,你可能根本用不着和工程师当面交谈,只需要知道给谁打电话就OK了。

7. 认输就行了
开源软件,总会有办法解决问题,打补丁,改善,强化,重构,升级,或者重写。没可能跟闭源那样,甩手走开。当然,你可以谩骂开发出这个导致问题的软件的社区,但是你仍然可以解决问题,从社区或者组织那里获得帮助,或者自己动手解决。 而对于商业供应商,那就远不能满足于骂一顿和花费一天的时间来找他们。

当然啦。欢迎各位来讨论学习交流,加群1083227756
文章知识点与官方知识档案匹配
C技能树首页概览
144340 人正在系统学习中

聚天下高手,共享学习资料!

QQ群名片

打开CSDN APP,看更多技术内容

孰优孰劣 — 开源 vs. 闭源_weixin_34217711的博客
闭源操作系统时不时中止对旧硬件的支持,迫使用户去购买新的硬件。我们还不得不亲自寻找、安装驱动。 社区支持 几乎所有的开源操作系统都有用户论坛,你可以在那里提问题,并从别的用户那里得到答案。大家在那里分享技巧和窍门,互帮互助。有经...
继续访问
开源和闭源_weixin_34216196的博客
闭源比开源更安全 在国人当中,安全性的需求远大于隐私性的需求,360的兴起就是说明,为什么在浏览器、电脑管家甚至是搜索引擎之上,360都可以所向披靡?不是因为他的技术和软件多厉害,而是因为360已经成为了安全的代名词,用户使用觉得放心。
继续访问
java二次开发源码-kalai:将Clojure转换为多种目标语言(Rust、C++、Java等)的源到源转译器
java二次开发源码卡莱转换器 Kalai 是一个从 Clojure 到其他语言(Rust、Java、C++ 等)的源到源转译器。 Kalai 的目标是允许有用的算法被编码一次,然后自动提供给其他目标编程语言。 基本原理 支持的表格 Kalai 旨在对工作 Clojure 源代码进行操作。 Kalai 没有在 Clojure 之上引入任何新语法。 Kalai 支持足够多的 Clojure 语言结构子集来表示许多有用的算法和应用程序。 命名空间转换为类,函数转换为静态函数,defs 和 let 转换为变量,原子转换为可变数据结构,数据文字在使用时通过库默认为等效的持久数据结构。 Kalai 明确禁止除defn和def之外的顶级形式。 例如: ( ns foo.bar ) ( println " hi " ) 虽然在 Clojure 中有效,但大多数目标语言在编译期间不允许执行代码,因此 Kalai 将拒绝此代码。 在 . 已实现的目标语言 锈 Java 另见kalai.emit.langs/TARGET-LANGS 用法 最简单的入门方法是遵循examples文件夹中建立的模式。 定义了
Java开源十年争议不断:其实仍然是“闭源”
2006年11月13日,Sun Microsystems正式宣布Java开源,并希望此举能够让社区帮助进行安全分析、bug报告、增强性能、了解偏僻个案等。 不过,十年过去之后,对于Java开源的争议依旧存在。批评者认为,Java并没有像官方说的那样完全开源,其实只开放了SDK,而Java SE和Java EE TCKs仍然是闭源的。 对于Java的开源身世,最初IBM呼吁将Java捐给
继续访问
Qt 的开源版本与商业版区别及 LGPL 与闭源程序_李肖遥的博客-CSDN博 ...
这两个版本最大的区别在于,前者是免费的,后者是收费的。既然代码都是一致的,所以费用就要是用来购买 Qt 的售后服务和培训等等相关服务。 Qt版权问题 现在我们是来说一下版权的问题。LGPL 是一个开源协议,因此,有人会担心 LGPL 能否用...
继续访问
关于开源和闭源的探讨(下)_Ultipa的博客
这一模式的通用特点是通过对开源项目进行二次开发、定制、重新封装来提供具有特色(Differentiation)的功能与服务(例如性能、便捷性的提高等),并以新的开源或闭源的产品方式在市场上发行。 以Open Stack11为例,Open Stack的定位是一款星球...
继续访问
开源 vs. 闭源
2019独角兽企业重金招聘Python工程师标准>>> ...
继续访问
由Java说起:编程语言还需要开源吗?
过去的几个月里出现了很多关于Java的讨论,讨论它究竟是一种开源的语言还是一种有专利的语言。人们开始怀疑对Java进行投资是否还有意义,担心这种语言将会受到它的新管家Oracle的独裁控制。在这种情形下,人们表达出了对这种语言长期发展方向的担忧,尤其担忧的是潜在的开发和运行Java软件所需的许可费用以及成本的增加。这更加导致了人们去寻找一种开源的,独立于厂商的语言,以此避免把自己的基础架构和开发工作都捆绑在像Oracle这样的单个公司的商业标准之上。 像Python,C/C++,JavaScript,Ruby和Perl等语言都是优秀的能
编程学习,编程语言,php,android,java,c,javascript 编程语言教学,资讯
整合了各种语言(php,android,c,c++,html,div+css,python,ruby等)在工作和面试中遇到的问题 随时随地的阅读,提高我们的时间碎片利用率 我们在路上...我们不断的学习.
开源与闭源的 5 个最大区别
转载自|TARS 基金会作者 |Isabella Ferreira开源软件是指公开可用的计算机源代码,其特性允许任何人都可以查看、修改和分发开源代码。其中,开源社区使用分散和协作的方式进行开源软件的开发。因此,与单个公司或个人开发的软件相比,开源软件更便宜、更灵活。如今,开源软件已被公司和个人用户广泛使用,每年都会创建数千个新的开源项目。在本文中,我们将讨论开源开发模式...
继续访问

热门推荐 八个 C++ 开源项目,帮助初学者进阶成长
ThreadPool 一个简单的 C++11 线程池实现,只有一个头文件,代码加起来不到 100 行。 GitHub 地址:https://github.com/progschj/ThreadPool sudoku C++ 实现的命令行数独游戏。600 余行代码,初学者也可以轻松学习。 GitHub 地址:https://github.com/mayerui/sudoku Tinytetris Tinytetris 是一个用 C++ 编写的终端版俄罗斯方块游戏。它提供了两个版本的源码,分为注释版和库版,注释
继续访问

Java8 & Java11将闭源?作为Java程序员该何去何从?
前言 首先声明,本篇博客不包含任何批判行为,只是以自身作为一个以Java语言开发为主的这样一个工程师的背景之下,来谈谈自己对Java这门语言的个人看法,最后,如果觉得本文不错,欢迎点赞,如若不足之处欢迎指正。 Java8 & Java11将闭源? 因为前段时间(大概在JDK11正式发布的时间节点)博主在社区中看到,有很多人都在喧嚣说 Java8 和 Java11 都将要...
继续访问

【转】C++开源库
C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用。当Java横行天下之后,MS又突然发力,搞出C#语言,有大片的曾经的C++程序员,以为C++要就此沉沦,未料,这三年来,C++的生命力突然被 严重地增强了。主力原因就是开源的软件、基础软件(比如并发原生支持,比如Android必定要推出原生的SDK)、各种跨平台应用的出现。 开源C++库必须具有以下特点:必须是成熟的产品、跨平台的产品、相对通用的库。 一、
继续访问
Java开源还是闭源
今天在《Java核心技术·卷I》看到常见误解 Java is proprietary, and it should therefore be avoided.(英文版P14) 表示很好奇为什么会产生这种误解于是去查了一下java的开源历程。 先罗列一下查到的资料: 2006年11月13日,Sun Microsystems正式宣布Java开源,并希望此举能够让社区帮助进行安全分析、bug报告...
继续访问
C/C++在Java、Android和Objective-C三大平台下实现混合编程
一、为什么使用C/C++ 便于移植,用C/C++写得库可以方便在其他的平台上再次使用。 代码的保护,由于java层代码很容易被反编译,而C/C++库反汇难度较大。 提高程序的执行效率,将要求高性能的应用逻辑使用C/C++开发...
c#源码转java源码的-hello-world:C/C++编程初学者
C/C++编程初学者 Git手册 网上有大量关于Git系统的信息,请自行查阅。 Git统计方法 统计代码量 git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ;...
我应该学习哪种编程语言C#,C ++,C,Java,Python,Rubby等
亲爱的SHUVO BISWAS,我应该学习哪种编程语言:C#,C ++,C,Java,Python,Rubby等。 从工作和追随者的角度出发,很容易学习C#.2。 开源和跨平台的观点JAVA.Index(rating)of this ...的链接
积分管理系统java源码-WebAssembly:让C/C++在浏览器中运行
WebAssembly是多种编程语言的编译目标,包括C和C++; WebAssembly开始被应用于Web浏览器之外的领域,如区块链和内容分发网络(CDN); 最初出现在Firefox中的ASM.js让业界开始关注于解决跨浏览器协作,以便让原生代码...
leetcode338-LeetCode_lxw:C++/Java/Python中的LeetCode编程实践
编程实践/ / . 由...所提交 。 算法 数字 标题 解决方案 类型 困难 001 哈希表 简单的 002 链表 简单的 003 哈希表 中等的 004 分而治之 难的 005 DP/字符串 难的 006 细绳 中等的 007 数学(溢出) 中等的 008 字符...
最新发布 开源是什么
开发人员分享洞察、构想和代码,共同和单独创建更多创新的软件解决方案 这种可扩展且灵活的软件可确保任何拥有源代码 的人都能将其修改、增强和重新分发,从而提高可复用性和可访问性。这样,软件可以发挥更多、更好的用途,可以更灵活,成本可以更低,寿命可以更长,也没有供应商锁定。社区曾经对此的解释是:“它指的是言论自由的自由,而不是免费啤酒的免费”。由于 Linux 是基于限制软件用途的开源许可证发布的,只要符合相应的许可条件,任何人都可以运行、研究、修改和重新分发源代码,甚至还可以销售修改后代码的副本。
继续访问
C++ 开源大全
程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 标准库 C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。 Standard Template Library:标准模板库 C POSIX library: POSIX系统的C标准库规范 ISO C++ Standards Committee:C++标准委员会 框架 C++通用框架..
继续访问
C/C++开发人员要了解的几大著名C/C++开源库
本文详细讲述C/C++开发人员需要了解的几大著名C/C++开源库。
继续访问

java用开源还是闭源_开源软件和闭源软件有什么不同?
几乎每一款计算机软件都是用源代码构建出来的,或者用技术蓝图说明程序如何运行。当开发人员的成品公开发布时,他们必须决定该产品是开源还是闭源。闭源软件也就是公众熟知的专有软件,公众没法接触源代码,所以他们不能看见或者修改源代码。但是对于开源软件,源代码是大众可访问的,如果需要,程序员可以查看或者修改代码。记住,要使用一个开源产品,你不需要阅读或者改变任何代码。大多数应用程序,游戏和其他流行软件都是闭源...
继续访问
沦饼哟
2023-05-02 · 贡献了超过523个回答
知道答主
回答量:523
采纳率:100%
帮助的人:9.6万
展开全部
C语言之所以开源,主要是因为以下几个原因:

1. 开放性:C语言的开放性使得其成为了一个通用的编程语言,可以运行于不同的操作系统中,并且可以通过不同的编译器来进行编译。

2. 跨平台:C语言具有跨平台特性,这使得它成为了各种计算机系统的通用语言。由于C语言可以在不同的平台上运行,因此在不同的平台上开发软件时,可以使用同一种语言和工具,这大大减少了开发和维护成本。

3. 社区支持:C语言有着庞大的社区支持,这意味着有很多人愿意为C语言的开发和维护做出贡献。这些人可以通过贡献代码、测试软件、修复缺陷等方式来支持C语言的发展。

4. 兼容性:C语言的兼容性非常好,可以与其他编程语言进行很好的集成。因此,它是很多软件和系统的基础语言。

总的来说,C语言之所以开源,主要是为了使其更加开放、通用、易于使用和开发。开源的C语言也吸引了越来越多的程序员和开发者的加入,为C语言的发展和应用带来了更多的可能性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
188******51
2023-05-02 · 贡献了超过223个回答
知道答主
回答量:223
采纳率:0%
帮助的人:4.5万
展开全部
C语言之所以成为开源语言,有以下原因:

首先,C语言是一种基础编程语言,具有广泛的应用领域。C语言的出现,为计算机编程打下了基础,成为了后来许多编程语言的基础,例如C++、Java等。由于C语言的广泛应用和基础性质,使得许多人对其进行学习和研究,而开源可以让更多的人参与到C语言的开发中来,使其更加完善和强大。

其次,开源促进了C语言的发展和应用。通过开源,大量的程序员和开发者可以共同参与到C语言的开发和维护中,解决了许多问题和缺陷,提高了C语言的稳定性和安全性,同时也推动了C语言在各个领域的应用,如操作系统、编译器、游戏开发等。

最后,开源符合C语言的设计初衷。C语言的设计者Dennis Ritchie曾表示,C语言的开发目的是为了实现一个简单、高效、可移植的编程语言,以方便各种计算机系统上的程序开发。而开源正是符合这一初衷的,通过开源,许多人可以共同参与到C语言的开发中,使其更加简单、高效、可移植。

因此,C语言之所以开源,是因为其广泛的应用领域、基础性质、发展需求和设计初衷的要求。开源可以让更多的人参与到C语言的开发和维护中来,从而推动C语言的发展和应用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
free阿道夫个
2023-05-09 · 超过1023用户采纳过TA的回答
知道大有可为答主
回答量:2354
采纳率:98%
帮助的人:43.8万
展开全部
C#是微软公司开发的一种面向对象的编程语言,主要用于开发Windows和跨平台应用程序。C#最初是闭源的,但是在2014年,微软公司宣布将C#编译器和相关工具的源代码开放,这是为什么C#最终被开源的原因有以下几个:
1. 开源促进了技术的进步和创新。开源软件可以让更多的人参与到软件开发中来,形成更加开放和自由的软件社区,促进技术的进步和创新。
2. 开源可以提高软件的质量和可靠性。开源软件可以让更多的人使用和修改源代码,提高软件的质量和可靠性。
3. 开源可以带来更好的安全性。开源软件让任何人都可以检查源代码中是否存在漏洞或者恶意代码,从而提高软件的安全性。
4. 开源可以提高软件的可移植性。开源软件可以让更多的人参与到软件开发中来,从而增加软件的可移植性,使其可以在不同的平台上运行。
总之,C#被开源,一方面是因为开源软件具有许多优点,能够促进技术的进步和创新,提高软件的质量和可靠性,带来更好的安全性,并且形成更加开放和自由的软件社区;另一方面,微软公司也希望通过开源,吸引更多的开发者使用和开发C#,从而进一步推动C#的发展。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
叶舞清秋aR
2023-05-09 · 贡献了超过325个回答
知道答主
回答量:325
采纳率:0%
帮助的人:6.6万
展开全部
C语言之所以成为一门开源语言,主要是因为以下几个原因:

1. C语言在早期就已经被广泛使用,成为了计算机编程领域中的一个重要语言。由于它的普及程度和应用范围广泛,因此许多开发人员和组织都对C语言产生了浓厚的兴趣,纷纷为其开发各种工具和库,推动了C语言的开源进程。

2. C语言的开源也与其一开始的设计目的有关。C语言最初是由贝尔实验室的Dennis Ritchie和Ken Thompson在20世纪70年代开发的,他们的设计目的就是要创建一种自由的、开放的编程语言,使得更多的人能够轻松地使用它来进行编程工作。因此,C语言从一开始就具有开源的基因。

3. 开源模式可以促进C语言的发展和进步。由于C语言是一种开源语言,因此开发人员可以自由地对其进行修改和扩展,推动了C语言的不断发展和进步。同时,开源模式也使得C语言的使用者可以更加灵活地使用各种工具和库,从而提高了编程的效率和质量。

总之,C语言之所以成为开源语言,是因为它在早期就已经被广泛使用,并具有传承自由、开放的设计理念,同时开源模式也促进了C语言的发展和进步。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(54)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式