当前位置:
系统粉 >
电脑问答 >
其他问答 > 对程序员来说,为什么Linux系统比Windows系统更好?
对程序员来说,为什么Linux系统比Windows系统更好?
提问者:tiancaiycl | 浏览 次 | 提问时间:2017-05-17 | 回答数量:10
已有10条答案
kinglovechina
回答数:166 | 被采纳数:144
2017-05-17 13:56:05
对于程序员来说,最好的工具就是能够提升效率,能够偷懒。软件安装windows是面向普通用户,因此所有安装都是依靠鼠标拖拽式安装,例如安装vscode编辑器,我需要下面几步打开浏览器打开vscode官网点击下载下载完毕后,双击安装看似上面几步也不是很慢。没有对比就没有伤害。Linux系统下是这样1.wget 下载地址 && sudo dpkg -i vscode.deb就这样好了。道理很简单,原本一步能做完的事绝不弄成三步做。程序员为了偷懒已经伤心病狂
Shell其实windows也是有命令行工具,为什么总是被人吐槽呢?因为实在太丑了,PowerShell还算勉强好点。但是Linux的Shell才是最强大,上至一句话干掉系统 sudo rm -rf /*,下至scp -r。你可以拥有整个系统最高权限。windows为了安全,很多细节你不能把控。连个包管理器也很难用。利用Shell我们可以做很多自动化的工作,自动化一键大包项目上传服务器部署。一个终端窗口解决你所有工作问题。
生态在服务器领域Linux处于龙头地位。不管是Docker还是机器学习框架Tensorflow,都是先基于Linux环境。因为他们对Linux兼容性好,安装时不会出现各种莫名其妙的问题。减少了解决问题的成本。
源代码开放,可自由修改对于程序员来说,源代码开放的产品是毫无保留,连“内裤”都为你展现的产品……在此基础上更进一步的是,Linux操作系统不仅源代码开放,而且可以自由地执行、复制、再发行、修改、强化。通俗点来说,就是人家不但家底给你看,免费给你用,还允许你自由地“揉捏”——就这条件,就算你拿一个团的美女去诱惑程序员,他也舍不得丢掉 Linux 呀!
专业性强,安全性高,性能稳定专业性
与 Windows 不同的是,Linux 是为程序员而生的。甚至可以这么说,没有程序员就没有 Linux。在全世界程序员的共同努力下, Linux 拥有了众多专业级的调试工具,开发工具,安全工具,编程工具……
但如果要比供普通人群使用的软件,Linux 与 Windows 较劲可就小巫见大巫了:Windows 上有数量庞大的各类游戏,各类播放器,各类聊天工具,各类浏览器,Linux 上却只有可以用手指头数得清的 ……
安全性
Linux 是一个典型的多用户多任务操作系统,除了 root 这个超级用户以及授权用户外,每个用户都只能对自己的文件进行操作,不可以轻易删除、修改其他用户的文件。形象点来说,就是 A 用户已经把自己搞得灰头土脸、片甲不留了,B 用户仍然可以悠哉游哉地喝茶看报。
性能稳定
关于 Linux 性能的稳定性,用数据来说话更有表现力。在稳定性要求较高的服务器上,Linux 和 Unix 几乎一统天下,Windows 毫无招架之力。Linux 可以数月、数年的持续高效运行而无需重启。
我是程序猿,不过不是什么大牛,既不在git上有项目,也不是供职于BAT这种大企业,我觉得当今大部分程序员应该也和我的处境是一样的,我自己的理解是1 linux免费 目前大部分的项目都是B/S类型的 那服务端不用linux用啥?用win么?2 linux轻量 服务端的linux一般是命令行,没有图形化,这就比win好,有纯命令行的win么?没有把?3 传承问题 因为国内大部分服务器都是linux,所以你能在很多来源社区,论坛上面找到很多linux的运维资料,这样就形成了一个良性循环4 linux开源 不过这对于90%的程序员来说并没什么卵用,大部分程序猿(如鄙人) 并没有多少机会,或者说目前这个阶段还达不到修改底层源码的水平,能真正接触,甚至优化os内核的这样的程序员毕竟是少数顶尖大牛,不过也就因为这样,在少数的巨头企业的带动下,这种开源os成为大家挣相学习的对象,主要还是成熟,优秀且免费的东西,上哪找去?linux不火谁火?
我是做dba的,算运维吧,linux的运维成本要比windows低很多,最简单的例子,linux很多变更操作是不用重启的,pc重启不算啥,服务器每次重启我都有种死一会的感觉。此外linux由于开源,可使用的运维工具也多,出问题可分析的日志,资料也多。windows比较封闭,只有重启大法。至于命令行,专业运维人员其实更钟情于命令行是有原因的。因为一旦掌握了,你就可以随心所欲了
为什么!我认为用数据说话才好。如果真是那么好,你手机为什么不是Linux而是Android或者IOS。如果那么好还有乔布斯的岁月!你别告诉我Linux多么技术性,多么底层之类的,这比较狗屁(这是有技术比较的)。一件明明几分钟可以搞定的事,去搞半天还在配置,这叫什么效率。有盗版能轻而易举做动画,你在Linux上面瞎折腾。然后说安全,所谓病毒木马等少,这原本就是悖论,Android少不少,根本不少,因为一种不流行的东西根本不会有太多人去关注,WPS有破解版不嘛!无论常规技术吹得多么牛逼,只有流行,破解,漏洞等必然就多
干了七年linux服务器开发了,感觉linux是侧重点不同,它主要注意力集中在稳定和用户自我灵活运用上,一般用它也主要是当服务器用。要说易用当然还是windows,交互体验就是好啊,linux上写代码简直蛋疼,别扯什么自己配置ide各种功能都有什么的,怎么配都蛋疼,没办法时才会在linux上直接开发,在上面操作如雨时也没有感觉到自己很牛逼,只感觉蛋疼。
工作中的技术选型会优先考虑linux,因为确实有很多优势。选择GUN/Linux的理由优点:1安全 - 几乎不存在诸如病毒、间谍软件、流氓软件之类的问题。2易维护 - 请忘掉扫描病毒、磁盘碎片整理、清理注册表以及频繁的被要求重启等等诸如此类的问题。3稳定 - GNU/Linux 是非常稳定的。 虽然个别应用程序可能会崩溃,但操作系统本身的崩溃是非常罕见的。(事实上一些非官方打包程序是较为不稳定的)4软件自由/开源 - 您可以随意的使用软件。如果您愿意的话,甚至可以自由地学习程序源代码,修改程序以及任意的分享程序,而不用受制于所谓的用户许可协议。(当然要在GPL或者其他开源许可协议的条件之下)5开放标准 - GNU/Linux 和运行在其上的应用程序,大多数都符合开放标准,这使得与其他平台的无缝兼容成为可能,并帮助您避免受制于一些厂商的限制。6社区 - GNU/Linux已经被形容为 "world wide team sport",由全世界的优秀程序员提供支持。7低成本 - 大多数 GNU/Linux 发行版是可以免费下载的,并且拥有大量的免费程序支持。此外,大多数 GUN/Linux 对硬件的要求较低,这意味着您并不需要频繁的对硬件进行升级。8合法 - 人们可以合法并且免费的获取一些高质量的软件,这意味着我们并不必要去盗版或者使用盗版(当然这是非法的),也不会受制于一些利用垄断地位而滥用市场支配手段的企业。(是不是该特指下微软...)9透明公开 - 绝大多数 GNU/Linux 是开放开发的,使用公共邮件列表、公共IRC频道、公共bug追踪、公共新特性追踪等等。10多样选择 - 在 Linux 的世界中,有很多不同的发行版本,有些由商业公司支持,有些则由非商业组织维护。这些不同的发行版本可以运行在不同类型的计算机上,比如手机、个人计算机甚至超级电脑。我们甚至可以根据自己的爱好和需要选择不同的桌面环境,以更好的完成我们的工作。11尝新 - 或许仅仅是为了不断的尝试一些新的或者不同的东西,成为很多人最原始的动机。改用GUN/Linux的一些挑战1从头学起 - 您将会学习一个全新的不同的操作系统、很多新的程序,以及很多全新的名词术语。 ——并且您需要 忘却 在其他操作系统(如MS Windows)上学习的旧知识。2缺失的应用软件和游戏 - 您会失去一些熟知的应用程序,典型的如Microsoft Office、 Adobe Photoshop 和其他流行的大型主流游戏。双系统启动、WINE或虚拟机会提供这问题的部分解决办法。当然有很多可选的高质量 GNU/Linux 原生软件值得用,后面将介绍各种 GNU/Linux 下的应用软件。3缺少硬件支持 - 绝大多数硬件是支持的,但不是全部——在购买新硬件组件前建议您研究一下兼容性 ——越新的和分布越少的组件,出问题的风险越大。4寻求帮助更难 - 通常朋友、家人、同事不能帮您解决 GNU/Linux 相关问题,所以您需要在线获取帮助,这通常并不如您的朋友“现场”帮您解决那样高效。
从来不会拿linux和windows比,也不会觉得linux比windows好。linux环境纯,资源消耗少,非常适合做web服务器,体积小扩展性强。windows方便管理,也能做游戏服务器,开几个虚拟机想装什么都可以,扩展同样很强大。总有人觉得linux比windows高大尚,因为开源 git什么的,windows没有吗?C写的在windows就不能运行吗?他们唯一值得注意的区别是收费和不收费。
这个问题的主体说的是linux对程序员开发的好处,实际上和小编说的有比较大的偏差。首先,对于程序员而言开发环境首选是windows,绝大多数语言在windows下都可以进行编码和编译,如python、java甚至linux c,少数无法在windows下编译的那个是极其小众了,使用的人不多;其次,windows下程序员的开发效率是最高的,开发的本质就是看需求、看设计、写代码和测试,这离不开好用的输入法、好用的office软件、好用的IDE、好用的原型工具、项目管理工具、数据库模型设计工具、UML工具、协作工具等等等,在windows下这些都支持的非常好,选择很多,反观linux就不一样了,所以说开发不是单纯的编码,编码只是开发的一小部分工作而已;最后,linux有着其天然的有所,开源是一个,健壮性、稳定性是一个,很多第三方中间件或服务(如:openstack的产品系列)只能在Linux下运行是一个,所以Linux很多时候是作为线上运行服务器或线下开发测试服务器使用。其实很多程序员都不懂Linux的,有的甚至基本命令都不知道,这很正常,现在的开发语言很多都是跨平台的,开发的时候只要注意一些细节用什么系统懂一样。会用Linux的不一定是好程序员,反之不会用的也不一定不好,不过会用Linux的程序员一般都会帮助部署或者由研究过分布式和大数据的,整体上来说会linux的程序员相对来说会厉害一点。
gtalove2008
回答数:193 | 被采纳数:35
2017-05-17 14:14:57
无意义的比较。本人不是程序员,喜欢临时写脚本偷懒,从win10远程登陆到linux命令行上写,或者win10开bash,有时在外应急,只有安卓手机,也是远程登陆linux命令行执行自己写的工具处理任务,这些都是执行在linux环境下的,同时linux服务器执行效率比windows个人电脑快。但是,工作总得和各地的人交流,qq和微信,还是windows上方便,尤其是经常截图后加点箭头方框文字什么的,即使linux上有wine版但不稳定,有截图工具但后期加点标示不方便,还有内部的办公系统,只支持ie8,非常蛋疼。看个人实际需要,我是win和lin并用的。