深圳网站建设 联雅网络,越南做企业网站,织梦网站主页代码在后台怎么改,网站的元素爱编程#xff0c;不爱修电脑#xff1b;爱学习#xff0c;更爱运动#xff1b;爱科技#xff0c;也爱娱乐#xff1b;爱工作#xff0c;不爱加班。爱幽默、爱生活、爱浪漫、爱打拼#xff0c;我是程序员#xff0c;我为自己代言#xff0c;关注程序员#xff0c;分… 爱编程不爱修电脑爱学习更爱运动爱科技也爱娱乐爱工作不爱加班。爱幽默、爱生活、爱浪漫、爱打拼我是程序员我为自己代言关注程序员分享程序员的那些事儿『有人的地方就有江湖』— 徐克。笑傲江湖。序一个竞争的市场就会有对立的产生这世界存在著很多不同的领域领域好比是个江湖的缩影因此就有许多门派的纷争例如说浏览器领域有著最大宗的 IE 派门派成长速度飞快武功版号跳的跟台湾物价指数一样快的 Chrome 门不断被模仿一直被超越的 Opera 派韧性极强一直对抗几大势力的 Firefox 派等等程序语言也有自己的领域纷争社群网站也有社群网站领域的战争这根本就是一个战火永不停止的战国时代但是其中持续最久衝突最大最激烈当然以作业系统这块领域为最因此让我们来谈谈这个江湖。首先我想讲讲这个武林的历史不想看的人可以直接跳到最下面我的看法。作业系统的上古时代在很久以前这块江湖的地位是侷限在于少数被选上的人才可以踏入的这些人就是工程师因为要掌握这个领域的武功不是一件容易的事情因为在这个领域的武功基本心法就是学习一堆複杂的武功招式(文字介面的程序指令)这些被选上的人必须学习很多很多的招式然后搭配使用这些招式进而来操作作业系统因此这门领域的武功学习曲线是很高的不是随便阿猫阿狗可以学习的在这段时间中掌握了这些招式你就能去使用作业系统中的各式各样的武器(软体)在这段时间内你可以透过作业系统本身提供的基本招式来控制作业系统你可以透过武器提供的招式来使用武器你甚至可以自己发明招式(自己写script)来控制作业系统和武器因此当时所有的工程师都有自己打造的一套最适合自己的武功没有了他们武功会大打折扣但是在他们使用自己打造的武功时能发挥出他们最强大的威力。百家争鸣但是这世界后来起了变化当时某人将一个『连猴子也能学会用电脑』的概念带进了这个领域让这个领域不再被少数人寡佔这个概念就是 GUI (图形化介面)GUI 的产生让作业系统看起来更容易理解大幅降低了这个领域武功的学习曲线将这个概念发扬光大的有几个大门派一个是目前最大的微软 派这个门派非常可怕势力非常之庞大他们以作业系统这个领域起家不单单如此还将触角伸向非常多不同的领域几乎是跟电脑有关的领域都参一脚不难理解是一个以征服世界为终极目标的门派掌门人是 Bill Gates据说他靠著卖出这些武功所赚的钱蝉联了 13 年的世界首富是个极为可怕的角色所有能力值大概都是 ?????微软派的武功非常多但都是以 Windows NT 这个核心心法所延伸出来的像是大家熟知的 Windows XPWindows 7 等等。另外一个是由 Steve Jobs 建立的苹果教教主 Steve Jobs 是一代传奇人物苹果教早期曾经发生过一次内乱这次内乱迫使当时教主 Steve Jobs 远走他乡但是强者天生就是不平凡在教主离开苹果教的这段期间教主看出了当时武功心法的一些通病为了矫正这些错误他穷尽心力费尽苦思的想出一套旷世奇功 — NeXTStep而反观在这期间苹果教在新教主阿猫一号的带领下反而流失越来越多的教徒整个苹果教呈现一个日暮西山的状况因此在其他长老的强烈要求下他们将 Steve Jobs 迎回了苹果教继续担任教主当然教主也带回了他所创的那套旷世奇功 NeXTStep 作为日后苹果横行天下的武功 Mac OS 的基础如果你有研究过 Mac 的心法你不难发现在他们的招式中常常会有 NS 的 prefix 像是 NSString这个 NS 所指的就是继承于 NeXTStep在教主回归苹果教后经过了几年的发展再次将苹果教推向了新的高峰推出的许多划时代的神兵利器像是 iPod、iPhone、iPad苹果教利用这些神兵利器打下了一片大大的江山成为微软派最大的劲敌但在作业系统领域上的唯一一套武功就是 Mac OS也就是这个门派最基本的心法武功。其他门派像是 Linux 门也是一股势力这个门派的武功与苹果教的 Mac OS 同样都是由一个上古时代就存在的门派 Unix 演变而来这个上古时代也就是本文一开始提到在还没有『连猴子也能学会用电脑』这个概念出现前那个被少数人所寡佔的世界这个门派心法的特性就像是我们前面提到的工程师可以利用各种由作业系统本身或是应用程序本身所提供的招式加上自己的想法组合出最适合自己的武器因此 Linux 及 Mac OS 皆继承了这个传统但是 Linux 门情况比较特殊的是虽然他是一个门派但是本身有非常多不同的势力这些势力自己每天互相打来打去不亦乐乎造成无法将枪口一致对外大家自己闭门造车一直重複打造别人已经有的武功因此发展始终无法达到一个高峰但是一直以来他在伺服器领域的令人惊艳也让 Linux 在这块领域有著他不可取代的地位。回到武功心法前面说到这个世界的改变是由于『连猴子也能学会用电脑』这个概念的带入但是这个概念在每个门派的实作方式是不一样的例如说微软派为了将这个心法发挥到极致将自己的心法改造的与上古时代完全不同抛弃了那些使用指令操纵一切的心法取而代之的是使用许多不同的武器(软体)来应付不同的对象(档案)因此基本心法(作业系统)不再是重点而是一个随时可以替换掉的东西(随时可以重灌)你只要保留你的档案重灌你的作业系统后再把这些武器装上去就可以用了这个过程不知葬送了多少宅男的青春但也让他们有当好人帮正妹修电脑的机会但是因为如此微软派的心法失去了原本上古流传下来的传统你无法使用招式(指令)来操作各种不同的武器(软体、程序)因为这些武器现在开始彼此是不相往来GUI 上的所有程序无法互相沟通。你可能会问这有什麽影响我告诉你影响可大了人使用电脑的目的就是提高工作效率在程序无法互相沟通的情况下程序必须仰赖人的操作才有办法工作因为你无法写一些综合巨集来完成複杂大量的工作以微软的例子来说会使用 VBA 脚本的人工作效率会是一般人的 n 倍因为你可以完全的操控你的作业系统就像你使用 VBA 可以完全的自动化 Excel 一样但是作业系统想要做到这个层次必须仰赖著一个统一的执行环境来管理这些程序这个目标也是之前程序语言领域的 Sun 想要在他们的工作站做到的事情也就是 Java但是那是另一段故事我们先暂且不谈这样的影响对工程师来说就是 “什麽都看不到”现在微软派武功心法全部都蒙上了一层马赛克因为所有的东西都是被包装过的相对的工程师们无法去真正的了解这套武功心法你想要做的事情如果超出了武器(软体)能应付的范围你只能放弃也是因为包装的太好在发生问题想要 Debug 的时候你根本看不到作业系统层面的问题只能按下那个回报给微软的按钮因此在微软派以这样的概念全力发展 GUI 的历史后取而代之所捨弃的就是这个 “问题”我把问题用双引号包起来的原因是因为对一般使用者来说这并不算是个问题因为他们感受不到我相信这或许也是微软的成功原因之一。Linux 门则是把原先上古时代的传统发挥的淋漓尽致但就像我前面提到的Linux 门自己的内战打的不亦乐乎当你踏入了 Linux 门之后你会发现常常当你想使用 Linux 上面所需要的武器 A 的时他会告诉你你必须先有武器 B 的 1.13 版然后武器 B 的 1.13 版必须先有装备 C 的 2.01 版然后装备 C 的 2.01 版需要 Linux 心法的 1.03 版然后结果你发现你在用的是 Linux 心法 2.0 版因此虽然 Linux 门继承了上古 Unix 门的良好传统让你可以像高手般的打造自己的武功也可以完全的掌控整个作业系统但是常会因为这些武器的相依性给搞疯还没用到武器就先被武器给弄死了。再谈 GUI所以你大概可以体会GUI 开始算是一个作业系统的分水岭他让每个门派的心法看起来变得很不一样微软派的设计让你看不到作业系统层面的东西因为东西几乎都是被包装好的但是你可以在微软派的 windows 系列武功上使用相对良好的 GUI但是由于微软派的 GUI 设计是跟底层绑在一起的因此有时候 GUI 的崩溃也让系统一起崩溃了就出现了传说中的蓝白画面Linux 门的设计非常开放你可以随时取用串接你想用的心法但是在 GUI 方面就差强人意大部分是一些看起来就像是山寨微软派或苹果教的产物当然现在来说有些表现较为优异的像是 Ubuntu 之类的但用过就知道还是有差而苹果教正好是取其两家之长一个拥有高度 usability 的 GUI 介面加上可以自行设计的武器系统Mac OS 感觉就像是上古流传下来的神器再用对武器施法的卷轴衝到 10 那样强大在 Mac OS 上使用继承于教主所开发的心法 NeXTStep 的进化版本 Cocoa这套心法提供了一个统一的作业系统执行环境所有基于 Cocoa 心法所研发出来的新武器都有了统一的介面这个统一的介面让你可以 100% 的控制所有的程序而且 Mac OS 本身就已经提供了完整的开发环境给所有的工程师反观在 Linux 门缺乏这个在 GUI 上统一的介面因此他们的 GUI 看起来就挺杯具而微软派的 Windows 系列在从 Vista 以后希望打造出一个完全建构于新心法 .NET 框架的环境来达成像是统一介面的环境但是由于其设计哲学上的差异他们还是有差异而且 .NET 心法的一个致命伤就是仰赖著使用者必须自行去更新 .NET 版本如果他没有更新成适合的版本那你所开发的武器可能他就没有办法使用。后记其实是简短的故事整理对于使用 Mac 或是 PC 的来写程序比较好其实两派各有说法个人浅见只是文化上的差异一个最简单考虑的重点就是你想开发哪个平台上面的软体那麽你最好就使用该平台来开发你想开发 Windows 上面的应用程序那麽赶快安装 Visual Studio.NET你想开发 Mac 上面的程序那就赶快买台 Mac 安装好你的 XCode当然你也可以考虑 Java 来开发跨平台的程序但是用过都知道在 GUI 的显示在不同平台上还是会有差异的那如果是开发 Web 的程序来说个人浅见如果你是使用 PHP、Ruby、Python 等程序语言那麽 Unix-base 的环境还是比较适合你因为你必须常常去追踪你的 Application 在系统的运行状况来做效能的调教或是 Debug而这是在 Windows 平台上的相对弱项。已经看过太多的战文在讨论 unix 好还是 windows 好其实就像我说的是文化上的差异微软的文化是以一般使用者为出发点而设计的平台如果是由一个 Unix 的工程师来设计一个软体他可能会开始先设计一个文字介面的核心然后才加上一层 GUI 的皮这样这支程序才可以为其他程序设计师来自动化操作因为 Unix 的哲学是以程序设计师为出发点反观 Windows 工程师会倾向于先做出一个使用者操作的画面然后才去写核心部分对于 99.999999999% 的使用者不写程序的 Windows 这是很正常的事。另外 Windows 跟 Unix 最大的差异还是在资讯透明度Windows 上核心底层的东西必须仰赖微软更新后才会修复因为你很难去看到底层的原始码而 Unix 由于开放的关系你可以随时进入底层去找出错误来修正他但这也不算是 Unix 就比较好的观点因为这单纯是设计理念的不同Windows 倾向于我帮你处理所有底层的问题你专心写你的程序就好而 Unix 则是我让你看光光你不开心就改没关系因此两派信徒互相嘲笑对方其实只是设计理念上的差异罢了。虽然我用 Mac但我相信比尔盖兹在 Windows 上写程序还是会把我震住的所以我从不嘲笑 Windows 的工程师所以请依照你的需求挑选你的平台就好如果要开发微软的程序那麽用微软的环境还是最无痛的欢迎关注我的公众号同步更新文章DoNet技术分享平台阅读原文