以前写的,怕引来口水战,干脆不发。这段时间面试了十来人,用Mac的开发水平明显高于Windows的,挺多感想的,于是改改发了吧。
Windows: 对普通用户而言体验最友好,对开发者体验最差;
Linux:开发者的天堂,普通用户的噩梦;从嵌入式开发到应用开发,一应俱全;
Mac:WEB开发与设计师首选,嵌入式开发不推荐;对普通用户而言Windows各有优劣;
为什么Linux是开发者天堂?
软件开发有很强的实践性,所以高质量的源码、技术文档对于开发者的成长是决定性的。假如一个人想了解操作系统原理,却连源码都看不到,改改操作系统都做不了,我不相信这个人能理解得了操作系统原理,而由于缺少可实践的源码,所以技术文档也只能隔靴搔痒,绕着路子尝试把问题讲清楚,而不是放出可执行的示例源码。而这……正是Windows的现状。
与之相反,Linux构建在开源世界上(我就不去争自由软件跟开源软件的不同了,不是本文主题),正好就没有上面的问题。稍微懂行的人都知道Linux开源代码质量之高远不是Windows上流传于网络上的源码所能匹敌的,而这几年开源世界的火爆,对于长期浸泡在Linux上的人更是一种福音。另外一个影响效率的则是命令行,属于会用的人不用解释,不会用的人解释也没用,不展开。。。
总的来说,一个Linux开发者,想了解啥都能轻易找到这个世界上最优质的资源,拿到后可以立马实践;而一个Windows开发者,则在这方面完全处于劣势,这一来一回,成长上该有多大差距?
绕了一大圈,终于要讲使用Mac的开发者的开发水平为什么会高于Windows开发者了。很简单,Mac是类UNIX系统,所以Mac开发者找的资料跟Linux开发者不说100%,也有70%,80%的重合,自然成长效率会比Windows高。
顺便写下本人在这几个系统方面的经历:
就我个人而言,大四自学Linux后,一直到去年8月,所有的开发工作都是在Linux完成(当然,工作内容只有Windows工具的就没办法了)。当时决定换成Linux只有一个理由,我从大一到大三一直在想操作系统原理和怎么写一个操作系统这两件事情?找来Windows的系统编程,MFC,VC,驱动开发之类的书来看,却总觉得不得要领,一度怀疑是不是自己太笨了。后来由于搞嵌入式开发,使用Linux,需要先适应,从《鸟哥的LINUX私房菜》,到《UNIX环境高级编程》,接着又看Linux的源码,学习《LDD3》,仿佛打开了一个新世界的大门,才明白,并不是我太笨了,只不过是Windows把简单的复杂化了,同时缺少可实践的开源代码做研究。
去年8月转做WEB开发,之前买的Mac发现是类UNIX系统,因此一周不到就能适应整个系统,决定在上面先开发一段时间试试。平时也需要用些图形处理和日常办公,这些明显纯Linux是弱项,而Mac做得很好。于是一段时间后,确实感受到WEB开发上,Mac上的开发体验会好于纯Linux。Mac主要胜在两点:1. Mac的brew包管理一致性高,并且包很新,包依赖问题容易解决 2.图片处理在WEB开发中的需要比较频繁。
终!!!