為什麼我用Mac

分享Share on Facebook0Share on Google+47Tweet about this on Twitter0Email this to someone

這篇文章其實已經醞釀很久了。起因是前幾個月看了tinyfool的为什么我认为每个程序员都应该用Mac OS X?youxu的开发人员为何应该使用 Mac OS X 兼 OS X 小史,我當時就很想順便分享一下我的經驗,但那時忙著Sikuli實在沒法靜下心來寫文章,直到最近稍微閒下來了才又想起這件事。

我從2005升上研究所前買了第一台Mac mini到現在已經五年了,說起來其實沒有很長,但自從2005年起,我就成了非Mac不用一族。但用Mac是一回事,我要先澄清我不算是狂熱的Apple粉絲,我除了Apple的電腦外,只有跟朋友以超低友情價買過一台開學優惠送的ipod touch來玩,除此之外,我沒有iphone、沒有ipad、也沒有Apple鍵盤滑鼠以外的周邊產品。在2005年以前,我高中和大學約6年都是用Linux作為主要工作環境。我一路從Slackware、RedHat、Mandrake(後來改名Mandriva)、玩到Debian、Ubuntu,那段時期我有數台24hr online的Linux server,還換過3台laptop,但都是裝Linux。在更之前呢,從國小的386 PC算到高一將近10年就是用DOS和Windows了。

這篇文章主要想分享的是作為一個programmer使用各種作業系統開發的經驗,不是想要說服大家全改用Mac。雖然從時間上看起來我用DOS和Windows最久,但我真正開始大量寫程式是國中開始用Visual Basic的事,所以我在DOS和Windows平台的開發經驗其實算是最少的。而大學階段是我最密集寫程式的時候,所以我的經驗和使用的工具也都是以UNIX派的為主,不見得適用所有人。

我在DOS+Windows、Linux、Mac這三大主流平台上都混過一段時間,這個遷徙的歷史其實也代表了我個人心態上的轉換。

在剛開始學電腦的時候,我是純粹的使用者。我用電腦玩遊戲,國中幫老師用excel做全班的成績單,閒來無事就隨手玩玩photoshop、3D studio等軟體自娛娛人。我記得在386的DOS時代要玩個遊戲還挺不簡單,雖然很多遊戲都說只要打play.bat就可以玩了,但事實上總要修改config.sys和autoexec.bat裡的一些記憶體或音效卡的設定才能玩。所以那個時代的使用者其實大都是玩家級的人物,多少都對Adlib、EMS、XMS、可恨的640K限制有些了解才有辦法「玩」電腦。

國中開始寫程式之後,我的心態就不太一樣了。像一般玩家般玩電腦已經不能滿足我,我開始熱切的想了解電腦內部運作的一切原理,想了解每個程式是怎麼寫出來的,每個零件是怎麼運作的,每一個細節我都想知道。而我剛好就在這段時間接觸到Slackware Linux。

Slackware Linux其實是一個不太好用的Linux distribution,可能很多人也沒聽過它。現在的Ubuntu和Windows沒兩樣,一直按「next」就能裝完整個系統並開始使用。但那時的Linux裝完後可是「什 麼 都 沒 有」。沒有X11,更別提其上的GNOME或KDE;文字編輯器只有vi(不是vim)和joe;沒有make、沒有gcc、…,總之,真的什麼都沒有。那個時候裝Linux其實是為了自己架MUD server,但當時Linux的安裝教學都說裝完的一件事就是自己重新compile kernel。(因為預設的kernel很陽春,幾乎什麼driver都沒有,不自己compile的話很多硬體都動不了。)其實當時我覺得這還蠻酷的,make config打完出現數百個選項可以慢慢勾選,讓我這種想要一窺作業系統裡面在搞什麼鬼的人非常過癮。(一開始我還不知道有make menuconfig可以用,所以其中一個選項不小心選錯就會非常痛苦要整個重來……)但過了一段時間我就發現,MUD server沒架起來,但倒是很會重編Linux kernel和設定xf86config。

國中我還在用Visual Basic寫程式時,其實沒有注意到「平台」不同的影響,因為當時我只用Windows和VB寫程式,也不會其他語言,更不用提在不同平台寫程式。一直到上高中學了C,開始寫比賽的程式時,才讓我注意到Turbo C和gcc雖然都可以compile C的程式,但有某些header檔(像是conio.h)是只有Turbo C中才能用的。發現這件事後,我才突然搞懂library是什麼,還有Linux下有一堆libxxxx及libxxxx-dev的套件是在做什麼的。

Windows和Linux的關鍵差異 – 資訊透明度 – 也就在這裡顯現出來。在我學VB的時候,我把當時一本VB5的經典書籍從頭到尾全讀過了,但我竟然對library一點概念都沒有。我以為我能用的東西就是VB提供的那些元件,後來我多學了一點後發現我還能呼叫Windows API做一些VB辦不到的低階功能,我從來沒想過要去利用別人已經寫好的程式和函式來節省自己的開發時間。簡單說,我以為要造一輛車子,就是要從輪子甚至是螺絲釘自己做起。

某方面來說這是個好事,因為我的第一個VB遊戲「黑白棋」,就是這樣一個個pixel從無到有自己畫出的。但如果要寫更大的程式,每次都從輪子做起就不是個好主意了。接觸到Linux後,我也學了很多open source界的「哲學」,其中最重要的就是重用別人的輪子。

記得很久以前在Redhat和Mandrake上裝軟體非常痛苦,雖然每個程式都被包裝成一個RPM檔,但RPM之間的相依性常會讓人發瘋。每裝一個軟體都有可能會跳出數個相依的library或套件需要安裝,然後使用者必須自己去找這些相依的RPM,更糟的是這些相依套件可能會沒完沒了的依賴更多其他的套件…。(還好後來改用Debian就不用再被這個RPM地獄折磨了。)

這個過程讓我深刻的體會到,軟體應該是像金字塔一樣一層疊著一層往上蓋的,Linux套件的包裝方式清楚的讓使用者能夠看出來一個軟體是利用了哪些library建構起來的,如果自己想寫有類似功能的程式,很容易就可以找到相關的library來用。但在Windows下就不是這麼一回事了。Windows的軟體是為end-user設計的,目標使用者很可能什麼都不懂,所以發佈軟體時應該要把所需要的library或套件全部包進去變成一個龐大的自動安裝程式,使用者只要一直按下一步就可以裝完了。這讓使用者變得比較輕鬆,但同時也一些對開發者有益的細節也隱藏起來了。

Windows的軟體大多是完全不透明的,安裝時你不知道它裝了什麼,也不知道它寫了什麼到registry,更別提要知道他的某某功能是怎麼做的。但Linux是在另一個極端,每個程式的一切都是透明易懂的,RPM或DEB套件裡有什麼東西一個指令就一清二處,每個套件需要用到哪些相依套件也是明明白白。此外,Linux下的設定檔都是純文字,只要文字編輯器就可以修改,不但方便編輯,也方便寫自動化的script或是備份系統。當然,更不用提Linux下幾乎所有程式都是open source的,只要有興趣,隨時可以打開每天在用的軟體的source研究它是怎麼做的。這些事情在Windows底下則是天方夜譚,所有的細節都被自然的包裝和隱藏起來了。這種透明度的差異對於充滿好奇心的程式設計師會產生南轅北轍的影響,當你接觸的東西越開放,就能自然而然接觸和學習電腦從裡而外的各種知識;但當你接觸的東西越封閉,就只能受限於黑盒子的限制而當個單純無知的使用者。

高中時轉到Linux作為工作環境還有另一個很大的原因:「效率」。Linux的世界是架構在文字設定檔和command line工具上的,整個OS的操作都可以用command line解決。更方便的是搭配shell script或是Perl、Python這種script language,可以輕易把系統裡各種小工具結合起來完成複雜的工作。command line有個很大的好處,你每天用的操作介面,和寫自動化script的介面是完全一樣的。也就是說,你只要把每天打的指令串起來放進一個檔案,就自然變成了shell script,而日後只要執行這個script就能自動完成需要一連串指令的工作。這種工作方式滿足了我身為一個「懶人」的慾望,因為我懶得每天用手親自重複做同樣的事情,所以我寫script將這些事自動化。當script寫的越多,就會面臨越複雜的工作,這時就會想要學更多”UNIX power tools”的用法(這是O’REILLY的一本好書)或是更強大的「黏合」語言(像是Perl)來組合不同工具。透過這種正向循環,可以不斷刺激自己提昇工作效率:事情做得越快,就可以想得更多,解決更複雜的問題,進而就能學得更多,做得更快。

大學那幾年我成了虔誠的Linux command line信徒,不管是什麼樣的事情我都可以用各種小工具加上Perl或shell script來解決,而Windows在這方面就完全比不上Linux。Windows的哲學是一套軟體可以做N種事情,但如果你想做的事情不在它原本設計的功能裡,只能兩手一攤什麼事也做不了。

資訊的透明度和command line帶來的高效率讓我非常享受在Linux上工作的樂趣,然而Linux也不是沒有缺點。當我學得越多,對系統底層的好奇心漸漸被滿足後,Linux的缺點就漸漸暴露出來,其中最讓我受不了的是殘破不全的driver支援。讓我印象最深刻的是在802.11b無線網路剛開始流行時,我花了很多時間在找driver和當白老鼠compile最新的driver,重編kernel幾乎是每日例行公事。除了無線網卡外,就算是有線網卡Linux都不見得支援,最惡名昭彰的莫過於Dlink系列的卡,他們的530TX甚至還被暱稱為惡魔卡。(這張便宜的卡在當時非常流行,但偏偏在Linux上就是不能用…)

雖然我是個programmer,但我同時也是一般user。在我想要快樂用電腦看電影或上網時,還要不時的處理系統內部的問題其實有點惱人,更別提當我只想寫一般的桌面程式或是Web app時,為什麼我還得跟Linux kernel奮戰呢?

除了硬體相容性外,Linux這種過於開放的平台還有個大問題是缺乏統一且一致的user experience design,導致usability常常奇差無比,而這也是很多open source軟體普遍共有的問題。程式設計師在乎的是功能面的設計,每個人做自己想要或喜歡的功能,雖然看起來和樂融融,但很少project有專門的團隊負責思考user是誰,他們想要什麼,以及他們會怎麼用這個軟體。同樣的功能但由不同的介面呈現,帶給使用者的感覺也會有天南地北的差異,而由千百個open source軟體拼湊起來的Linux系統帶給使用者的就是千百種不同的設計和使用方式。(後來Ubuntu的出現大大的改善了這個問題,但那時我早已跳到Mac上了…。)

就在Linux的缺點慢慢浮現後,我同時也注意到身邊很多FreeBSD/Linux hacker們開始改用Mac OS X。深入了解後,我很快發現Mac是一個完美解合Linux的效率和開放,同時又兼顧了精心設計過的user experience design的平台。Mac作業系統核心是BSD的近親Darwin,上層有跟Linux相同的command line shell,所以我以往在Linux慣用的設定檔和程式(bash、screen、vim…)全都可以直接帶到Mac上使用。(更棒的是還能像在Debian下一樣用apt-get install或是port install一個指令就自動裝完所有相依套件)

而在command line的上面則是Apple設計的GUI系統,美觀、一致、充分為使用者「設計」過的介面,輕易的就打敗我在Linux上較調半天的FVWM設定。(我換過和較調過無數的window manager,從enlightenment、GNOME、KDE、Window Maker、FVWM…)除此之外,我也不用再自己重編kernel和找driver,每一台Mac都是買來後一打開就能用了。

後來Mac用久了,漸漸發現更多Mac的好處,尤其是對於programmer而言。

每一台Mac都有附Mac OS X的安裝光碟,裡面同時附帶Xcode。而只要把Xcode裝上去後,我整台Mac就已經準備好可以讓我工作了。Xcode是Apple開發的IDE,可以開發各種常見的程式語言,但其實我不用這個。我都用Xcode底層的command line工具,像是gcc、make、svn,加上OS X內建的screen、vim、perl、python、apache(只用這些的話其實連Xcode都不用裝,每一個OS X都內建),我就有了完整的程式開發環境,而且我甚至還不需要連上網路就可以有這些。除此之外,Xcode裡還附帶很多好用的開發、除錯工具,像是我最愛的Shark(非常好用的profiling和memory debug工具)、或是Malloc Debug(找memory leak的好東西)、BigTop(監看每一個process耗用的資源記錄)。

自從我轉到Mac後,後來因為需要寫跨平台程式而切到Windows時,都覺得極端痛苦。因為Windows是給一般使用者的系統,而且所有程式都是獨立分開的,每次光要把開發環境準備好就要先耗上一整天在下載和安裝。後來我學乖了直接裝cygwin弄一個假的UNIX環境出來,但cygwin畢竟還是跑在Windows上,系統設計的哲學不同讓cygwin還是格格不入。(像是Windows就是沒有用文字檔存放系統設定,所以也沒辦法用一般的文字工具自動操作;Windows也沒有提供夠多的command line工具可以控制系統;Windows也沒有符號連結(symbolic link),我之前想用Bazaar check out一個有符號連結的repository就爆炸了…)

從Linux轉到Mac,讓我可以花更多時間專注在我想寫的程式上,而不是拿去研究driver的相容問題,或是Linux kernel新增的設定選項。對於一個應用程式或網頁程式的開發人員來說,這些底層的細節都是不重要的。雖然說Windows也把系統底層的細節藏起來了,但它實在藏的太徹底了。萬一偶爾需要看系統底層的訊息來debug,在Mac上還是跟Linux一樣直接到/var/log下grep一下就有了,但在Windows上除了「回報給微軟」外,也沒太多辦法可以自力救濟。

Mac上很多設計也改變了我使用電腦的方式。例如說QuickSilver讓我可以用鍵盤快速啟動任何程式,甚至是做更複雜的操作。Spotlight讓我不再需要思考怎麼把檔案文件分類整理到不同folder裡,需要什麼就像用google一樣只要直接用spotlight找就好了。Mac上的繪圖、設計軟體都有很貼心的設計,例如OmniGraffle的自動對齊線,可以幫忙使用者輕易設計出平衡、一致、美觀的圖像、網頁、或是圖形介面。Mac上幾乎什麼都可以自然地用drag and drop操作(例如Safari很早以前就可以把檔案拖到網頁裡上傳),但很奇怪Windows上就是有些地方可以有些不行。

整體來說,Mac是一個融合Windows和Linux雙方優點的平衡點,我可以像一般使用者一樣不費心力的操作電腦,也可以用高效率的command line處理複雜的任務,甚至是在需要的時候扮演hacker挖掘底層的錯誤訊息,或是利用Darwin Ports安裝和修改我需要的open source軟體。但除了Mac外,其實我還是有在用Linux,只是都跑在遠端的server上而已。主要原因是在沒有圖形介面時,Mac就沒有什麼優勢了。所以到現在即使我的laptop都改用Mac,我也還是會有一個terminal連到我的Linux server上。(雖然說主要是拿來掛IRC和BBS的…)

分享Share on Facebook0Share on Google+47Tweet about this on Twitter0Email this to someone

82 thoughts on “為什麼我用Mac

  1. Pingback: Tweets that mention 為什麼我用Mac | vgod’s blog -- Topsy.com

  2. 如果不考虑界面的美观问题,我觉得Mac没什么优势啊。

    美人常见亦凡人。

    讲开发环境,Ubuntu也很方便的。而且你会经常切换不同的电脑做开发吗?

    所以说,一般的用户,应该用Windows,做Programmer的,应该用Linux,喜欢Fancy的东西的,用Mac.

    • Mac的介面不是「美觀」的差別而已,是usability上的差別。
      但Ubuntu也在usability上下了很大功夫,現在的差距已經不像五年前那麼巨大了。

      其實我還蠻常需要切換不同OS做開發的,因為我的project得在三種平台上跑,每次釋出前都要深刻體驗一下不同平台的差異。
      就寫程式來說,Linux和Mac給我的體驗沒有太大差異(因為我都用UNIX的方法在作事)。但日常使用時,Mac優勢就大多了。

  3. 对了,为什么Mac没有Driver的问题呢?

    因为硬件都是他们自己造的,你试试自己装一个网卡上去,看你能不能找到Driver吧。

    • mac的好處也是壞處就是硬體的變動性低,所有的mac出廠的時候都是OS已經安裝完成,所以你不用煩惱driver的問題,software/firmware的自動更新也都幫你準備好了,所以你不需要”自己裝一個網卡”因為他本來就內建了,當然如果你對你的網卡有特別需求那mac可能就不會在你的考慮名單之內囉

      • mac 的這個好處,另個角度來看,就是硬體採購被 Apple 綁住。

        與其說 Linux 有 driver 問題,不如說是 PC H/W 產業生態的問題。
        Linux device driver programmer 努力打破這樣的限制,
        讓大家有便宜又開放的 OS/computer 可用。

        GUI / usability 又是另一個層面的 issue.

  4. 我是從AppleII開始進入腦世界的,經過AppleSoft,Apple DOS 3.2,CP/M 至 DOS,Windows 之後 UNIX 才開始出現 SCO XENIX,SCO UNIX,Solaris, BSD, Linux 一直到OS X,現在也大都是用OS X做我的工作, 因為正如你說的,OS X有Windows和UNIX之長, 又可以用 X-Window, 不用太煩惱driver的問題, 不過一樣我有一半的時間是掛在Linux上,用的是Slackware. 用過了各種Linux Distribution 如Gentoo,RedHat之後,我回到了最開始使用的Slackware,因為簡單,沒有太高的要求, 而我都是自compile我要的程式,從kernel到gcc到x-window等. 而我還是大部份都在 Command Line 工作,用vi程式.有時用各種UNIX的小工具grep,awk,sed再不然用perl就可以做完很多事了,在windows下是用GNUWin32加上MinGW就可以將UNIX的使用經驗有限度的搬到Windows下了,因為我有時要改改別人的VB程式….Qrz. 現在叫我去用Windows真有一種想要砸掉的衝動.

      • Unix 的世界 解決方案越來越好.

        我也是從 APPLEII開始 不過一直沒有向前進 一直到大學快畢業Windows95出現才開始比較用電腦. 出國後研究所的環境是SGI跟SunOS. 這時候開始用Slackware. 畢業後第一個工作就是unix admin. 弄個web hosting platform不怎麼覺得屌, 倒是把公司的Win311 ISDN機器裝成Redhat覺得最爽. 免費的防火牆ipmasquerade 功能強大. 但是這期間工作上一直都是用Windows Laptop為主. 幸虧有Cygwin陪伴.

        一直以來在server上都是Solaris/Debian Linux/OpenBSD 從兩千年走到現在. Workstation/laptop在家中就從Slackware (00) 換到redhat (02) 再換到debian (04).

        多虧老婆才用到了OSX. 是個可愛的作業系統沒錯. Debian 近幾年多虧OSX的刺激也進步了一點. 真是感謝.

  5. 第二,三阶段有极其相似的体会,不过我对linux的了解没有博主这么深刻,对mac的各种贴心设计也是爱不释手,Mac适合工作和生活,不适合游戏。程序员用mac确实会提高效率。

    • reparse point和symbolic link是完全不同的東西呀。

      reparse point是hard link,不能跨volume,而且還只能在NTFS上用..。

      • 有种reparse point叫junction,是可以让目录跨volume的。在vista下面有个command tool叫mklink
        Creates a symbolic link.
        MKLINK [[/D] | [/H] | [/J]] Link Target
        /D Creates a directory symbolic link. Default is a file
        symbolic link.
        /H Creates a hard link instead of a symbolic link.
        /J Creates a Directory Junction.
        Link specifies the new symbolic link name.
        Target specifies the path (relative or absolute) that the new link
        refers to.
        确实是有symbol link的,不过可能没有linux上面那么强大

  6. 你对Linux易用性的印象还停留在几年前吧,我和你一样是从linuxer转为macer,回国短暂的时间里面用了用ubuntu最新版本,现在的Linux版本驱动支持很完善,界面也很不错了。当然还是比不上Mac,但普通使用一点问题都没有

    • 文章裡說的當然是幾年前的情況。

      我也有在用最新的ubuntu 10.04,usability的確比以前好很多,但我裝到實驗室一台DELL的laptop上時還是沒有無線網卡的driver,讓我多花了一段時間才找到3rd party driver和從官方driver抽出的firmware…。

      • 同意,前陣子裝了ubuntu 9在eeepc上,無線網路卡也是找了很久的driver但偶而還是匯出問題,終於放棄了裝了Win7….

  7. 我雖然不寫程式,但也用過Xcode跟windows上的開發工具

    如果有一點美感的然,都能明顯感到MAC設計的巧妙,
    不只是圖形、視覺上的美觀,更是站在使用著的立場去設計個個元件的動線。

    而且從硬體與軟體一體結合,更感覺是一樣完整的工具、作品,而不只是拼湊的產物。

    也不是說其他平台不好,而是在某些原因上,無法在軟體、硬體與使用者經驗的結合。

  8. 我覺得要用 windows, 主要還是兩個原因:便宜、被工作綁住。
    我工作上就是得在 windows 環境開發,那還真是沒什麼辦法。當然公司也是有人裝 mac 在裡面跑 windows + visual studio 啦,慢到爆而已.

  9. OSX就是可以享受用Linux的爽度,
    但是在護維時間取得一個平衡點的作業系統,
    尤其是灌NB或是要裝手寫版這種Driver的時候,
    就算是Ubuntu還是要搞很久。
    講白一點,就是花錢換時間,
    就看你覺得時間重要還是錢重要。

    回樓上,你同事應該是OSX上裝VM跑Windows再跑VS,
    如果用bootcamp應該就不會慢了,
    我因工作需要要使用Windows,用bootcamp跑完全沒有問題,
    而且我在用的是比VS更肥的企業套裝軟體。

  10. 你沒提到Delphi的VCL framework跟.NET的component堆出來的各式各樣framework,也就自然沒有提到199x在web興起前,Windows桌面環境程式開發上的元件化思潮。

    透過OOP的encapsulation/polymorphism,一個開發人員可以實作封裝了特定功能的元件出來,讓其他開發人員使用支援這些元件界面的IDE,很方便的重複使用這些元件在自己的程式中。如果有必要增添新功能,也可以透過OO的方式去做-在Delphi/.NET中可以透過繼承來處理,在OLE/COM則可以透過實作一樣介面的wrapper跟新介面的實作來達到既相容舊物件的client也支援新功能的效果-例如IE與Office,從Windows 3.1的時代起,就提供automation objects,讓其他程式能自動化、程式化操縱它們。

    你要怎麼透過一組可以自動生成的物件介面去操作Firefox、Safari或Chrome? 沒有辦法。它們有plugin SDK可以用,但是當我想內嵌一個web browser或一個Flash content在自己的程式中時,他們永遠是最後的選擇-這是code reuseability的問題。我可以在半小時內,用Delphi或.NET平台上的許多語言,從無到有的,寫出一個工具去程式化操作Acrobat reader、IE或Office或其他實作了COM automation的3rd party software。可是在UNIX上,我想要程式化操縱任何其他別人寫的東西,如果我沒有作者提供的文件,我只能自己去看人家的原始碼,大概不會有幾個程式的開發者從一開始就提供了meta data來方便其他程式開發者在binary code的層次以OO的方式重複使用它、擴充它。

    非Windows環境中也不是沒出現過binary code level的OO架構,像CORBA就是其中一個,Java VM在某個層次上也提供了這樣的東西。但是,儘管Java在某個層次上,也希望能做到像VCL/.NET framework一樣的,可以透過IDE操作各種由別人提供的元件,達成GUI/web app的rapid development的效果;實質上,一直就是少了些神髓。

    我覺得這純然是各種架構從一開始就在設計哲學理念上有所不同。

    其一:
    以前Berners Lee在鼓吹semantic web時,說他在設計HTTP跟HTML時,犯了一個錯誤。雖然web興起了,但是大部分網頁都只是給人類看的,如果要以機器/軟體自動化處理它們之中的資訊,很不方便,甚至困難重重-沒有統一的方法。這其實也是我看完vgod這篇文章之後,維持不變的想法。

    其二:
    有一派主張,所謂的文明,讓一個人在享受文明的好處之前,並不必須從頭到尾把所有事情都搞清楚。我要用冰箱、電視,我不必知道壓縮機、陰極射線管或液晶面板怎麼運作的,我只要把它們插上電、接上該接的電線、打開開關(這就是三個最基本的電器使用的物件方法),它們就該會正常提供該提供的功能了。

    只要介面定義明確,介面的提供者與使用者之間遵循一個雙方接受的契約/協定,一個介面底下的實作細節大可像是一個黑箱子一樣,使用者完全不必去管黑箱子裏頭到底有什麼東西。基於這樣的概念,即使這組介面的使用者不是人,而是一個IDE或是其他程式,也無所謂。

    為什麼我要在自己程式中使用別人的東西時,我一定要「手」寫code,而不是讓電腦去自動生成那些code?我能在半小時內在自己的程式中內嵌一個PDF reader、一個web browser或一個Flash content,也是因為已經有別人的object server實作所謂的ActiveX control的物件介面,讓他們能在我的窗子中呈現它們的東西,讓我能自動生成一個操縱它們功能的object proxy。

    該接的線路能夠自動接合,這才是進步。如果我要重複使用別人家的code,還要自己寫半天code或甚至好幾天code,這算是什麼進步呢?

    • 這個回應似乎扯得太遠了點,不知道為什麼我用Mac的心得可以讓你聯想到這些 :p
      我只簡單回應一下我的想法,這個主題如果要深入討論應該是要另闢新文的。

      我也贊同你說的如果要把程式接合時,能什麼code都不要寫最好。但這和我說的資訊透明度是兩回事。如果只是要重用現有的程式而不改變其內部的行為,在UNIX上只要用pipe就可以把任何command line程式接在一起,一行code都不用寫(頂多只是用grep、sed把資料過濾和轉換成不同格式而已)。雖然COM提供一個介面讓你輕易的把一個browser嵌進你的程式裡,但你有辦法在這個「元件」上新增功能(例如處理HTML5的tag)或是修改原本的行為嗎?把一切都元件化是很好的想法,但如果這個元件過於龐大,那只是變成另一個神祕的黑盒子而已。

      而在UNIX上要自動化他人的程式簡單無比,別人也不用預先設計什麼COM的介面,因為自動化command line程式就跟使用者平常用它的方法一模一樣。你在command line輸入什麼指令和參數,script裡也就是放一樣的東西進去。而且UNIX的程式都很小,功能單純,不管是要接合這些程式,甚至在「必要時」要修改或新增他們的功能都很容易(也只有這時候才會需要去看原始碼)。

      anyway, 既然提到Tim Berners Lee,我倒是覺得他要是當初做WWW時就把semantic考慮進去,那WWW就會停留在學術界裡,或是現在流行的WWW發明人就不是他了。 😛

      • 確實是扯遠了。:)

        關於IE那問題,是的,因為我做過了,所以我可以說要修改它本來HTML tag的行為是可能的。IE的COM介面可以被browser helper或extension給多包一層wrapper上去,它給出來的HTML document DOM object的內容物也可以被置換成不同render行為的東西,或是在被render出來的東西上頭加些自己的東西-例如能在每張圖上面加上自動隱藏的浮動小tool bar,讓使用者可以按個button就把圖透過手機簡訊傳到自己或朋友的手機上;寫這樣的東西不會比在Firefox上寫個plugin來做要費時,但是比之更OO,很好延伸出各式各樣的新功能。

        再像IE的Javascript engine,雖然它遭到的批評很多,可是我可以很方便(半小時內)的將自己的物件expose給它,讓Javascript code也能自動化我的東西,不僅僅是在IE內跑而已,也能在console上跑。

        我也曾經有段時間認為UNIX那樣子很好,但是雙方在設計哲學與文化上有著根本的不同,其中大者,以process為單位跟以object為單位的差別。

        以Open Office來說,它提供給其他程式的可自動化的程度就遠輸Office,甚至輸Windows 3.1時代的Office。當然你可以說,那好,我們來用TeX;不過那要自己動手做的東西又更多了,而且最重要的,完全不OO。透過OO的方式,我們可以很容易透過一個統一的介面與統一的meta data標準,讓程式提供給其他程式的自動化功能有個自我描述方式,能被其他軟體開發工具自動化操作這些,不僅僅給人類使用、設計這些自動化功能的用法,也讓其他軟體開發工具能設計怎樣使用這些自動化功能。

        好比說,我可以設計自動化的流程控制工具,把某一物件的一個物件方法的產出餵給其他物件的某個物件方法,圖形化呈現,圖形化操作,拉拉線就好。如果再加上手寫輸入的筆勢識別或觸控的手勢識別,我用筆或手點點點或拉拉線,就可以把這些物件自動化起來。如果你要透明化,這些動作也都可以自動生成source code (via .NET Code DOM),喜歡Java就生Java code,喜歡Python就生Python code,喜歡C#就給C# code。要讓小孩子很簡單的寫程式,最簡單的就是讓他塗鴉畫出來的東西能自動生出code來,而這些code能自動化操作既有的code。

        要怎樣提供可以自動化存取的統一meta data/用法描述給那些UNIX tool? 它們設計之初就完全缺乏這樣的概念。

        • 我覺得如果所有程式都有定義和公開一個interface讓其他程式存取,世界就會向你說的一樣美好。但在Windows下最大的矛盾是,Windows的文化是一個給end-user用的平台,多數programmer寫的程式是給一般人用的GUI程式,他們有什麼動機要特別去定義一個給其他程式用的API呢? (Semantic web也有同樣的問題,絕大多數的網頁都是一般使用者用簡單的工具做出來的,他們有什麼動機要特別花力氣把網頁做成機器可以讀的呢?)

          以programmer的角度來說,如果每個程式都有API可以連結是最好的(至於是不是OO我覺得完全不是重點),但不管是哪個平台,這種經過特殊設計的程式都只是少數中的少數。

          昨天有網友跟我提到Joel的雙元文化主義一文,他的觀點其實就跟我想說的差不多。

        • Joel也有提過.NET等在windows上面的文化影響
          .NET最麻煩的地方,是它只能dynamic link,而不能用static
          所以只要終端使用戶不自己手動更新.NET或安裝.NET,很多程式就不能跑!!
          .NET現在在網路伺服器中流行(只要更新伺服器,與使用者是否安裝.NET無關)
          但在桌面程式一直都沒有真正普及

          Vista就是一個要將整個作業系統全部基於.NET建構起來的作業系統

          沒有一個工具是完美的,即使在linux/mac底下也一樣
          但不同的地方是
          即使有不完美,開放源碼的環境下我們可以把不符合自己需求的工具修到好

        • 回dryman:
          Linux是Open source,但Mac OS X又不是Open Source.只能說他的好處是提供了Unix環境的Command Line Interface.

  11. “加上OS X內建的screen、vim、perl、python、apache(只用這些的話其實連Xcode都不用裝,每一個OS X都內建)”

    Where do you find the Vim that comes with OS X? I only know MacVim, which needs to be downloaded from the internet. Thank you.

  12. 在同樣等級規格下面,MAC電腦幾乎比windows7電腦貴了一倍以上,MAC i7筆電要台幣八萬元阿,誰買的起阿……

    • 有趣的是,Mac往往不需要在同樣的等級規格下,就能跑出比Mac規格要好的電腦還要順的成績
      何須買i7?甚至不需要i5的Mac就能很順了
      Windows 7呢?

  13. 其实并不是因为看到Mac才进来的,吸引我的是vgod提到了Mandrake和Slackware这两个发行版本;-) Mandrake是引我入Linux门的第一个发行版。Slackware的KISS也是我喜欢的风格,但我痛恨pkgtool(事实上Arch Linux更好的发扬光大了KISS,完全BSD风格,超强pacman包管理工具和ABS/AUR)。

    01年开始用Linux,03年开始完全用Linux工作学习。从05年开始接触OS X,06年有幸工作在Tiger下,08年买了第一台自己的Macbook,其实完全是冲着10.5 Leopard去的。之后继续使用Linux作为主系统是因为Linux完全可以满足我工作学习所有的需求(在这里得感谢公司提供的环境^^),也可以用接触到一些cutting edge的技术,更重要的是享受完全掌控系统的自由(透明度,开放度,从base开始搭积木)。

    另外一个不喜欢用Mac的理由是自己不喜欢在OS X上用macports, fink和homebrew。觉得要用还如用Linux折腾起来皮实lol

    vgod提到的Linux的缺点,大多数确实存在。不过硬件支持上,现在主流的发行版本,如Ubuntu,Fedora,openSUSE等等均不在话下了。此外Linux下开发人员意见不同导致选择太多(比如DE/WM),容易迷失方向。不能不提,近几年来Ubuntu的出现很大程度上推动了Linux desktop的发展,也正在改变了桌面OS的格局。

    对Mac的感受:OS X人性化,可以把人彻底从照顾计算机操作系统中解放出来,因为OS X自己可以很好的照顾自己,用户可以更好的投入到自己所需要完成的任务上。使用过程中可以感受到OS X那种追求极致完美的理念,包括三方的apps。Leopard开始引入Time Machine虽然不完美,但让备份变得异常轻松。另外一个让我印象深刻的东西,就是OS X的Migration Assistant,目前其他操作系统的迁移工具绝对没法做到如此简单的做到用户设定,程序(包括三方),用户数据的一次性迁移(通过外置硬盘,其他分区,时间机器,WIFI,火线等),保持source -> target获得完全一致的设定,这个确实超赞。

    “OS X是Linux(甚至BSD)和Windows之间的一个平衡点” – 不能同意更多;-)

    没想到一下子写了这么多;-)

    也评论过《为什么我们要用Linux?》 http://terrywang.net/archives/638

    写过Windows,Mac和Windows三系统对比,欢迎评论;-)
    https://sites.google.com/site/imterry/computer/windowssucks

  14. 我也是盡量用mac,但是那是因為美觀買了macbook pro,apple的bootcamp driver在macbook pro下面問題實在很多,讓windows xp很容易當機。
    我的看法完全不同,有UI介面的狀況下,widnows實在有太多好用但是不夠美觀的程式,比對mac上面有太多美觀很多但是沒那麼好用的程式。沒UI介面下,我也不會特別用mac的terminal,要就直接連到unix上面去。
    我主要開發程式在java上面,mac的java版本是自己的,一般使用上沒有問題實際上問題多多,話說google好像很多人用macbook pro,demo也用mac os,但是他們最新發表的spring+gwt在mac os下面就是有問題,在widnows/linux下面可以調校到ok,而且windows上面我已經習慣同時放十多個不同版本的java(write once, test everywhere!),在mac完全沒辦法。

  15. 一篇非常浅薄的苹果软文。Linux驱动问题早就是老黄历了。Mac的安装光盘竟然也成为好用的理由。

  16. 我在Thinkpad上跑了3年Gentoo Linux,现在换Mac就再也没有换回去了。
    Linux至今还没搞定指纹识别的驱动,硬盘防震感应的耗电还是很严重。Mac用私有硬件绕过了这个问题。
    其实让我坚持在Mac上的是电池,我的T60加一块光驱位置的电池,也只能用4小时。现在的MacBookPro轻松就能用7小时。

    楼上,
    Mac的光盘提供了XCode,Win没有提供任何编译器。我想原本是这个意思吧?

    • > Linux至今还没搞定指纹识别的驱动

      誰說的?我四年前在 T60 上的 RHEL5 就有 think-finger 可以用

  17. 很欣賞這篇的經驗歷程之談。

    參考一下這個表格:
    [img]http://img35.imageshack.us/img35/5156/whichos.png[/img]
    http://img35.imageshack.us/img35/5156/whichos.png
    列出了:
    是使用 GUI/CLI、Local/Remote、Non-Prog./Prog.、Prog. for Web/ Non-Web
    各種不同使用情境或目的的情況下,
    Windows/Mac/Linux 在各格子裡,
    應互有優缺;
    也許在不同情境下,
    交互使用,而非獨尊哪一環境,
    可能會更切需要吧!

  18. 在10.6我都用LaunchBar取代Quicksilver, 一樣快速,
    就算在中文輸入法下,都還是能辨識英文的keyword,
    對我來說方便很多….

  19. Pingback: Twitter Weekly Updates for 2010-06-01

  20. 從你的觀點來看 Linux 的弱點主要在於硬體支援,
    所以如果能夠提供正常運作的硬體環境,
    Linux 和 Mac 對開發者來說不就差不多了?

      • 我是知道 Mac 好像有 Development Guide 之類的文件,
        所以上面的軟體有比較一致的行為。
        不過也是有聽過 Mac 使用者抱怨過 third-party 的軟體會操作不一致,
        所以像 Linux 這樣完全開放的環境應該更難做到了…

  21. 可惜, 在mac osx 環境下進行java development, 要等待apple的java 更新, 未必夠windows / linux 環境般方便同自由

  22. 我頗認同這篇文章的理念,我也是寫Linux的經驗多過Windows,也曾經想過Mac會是我的解決方案,不過前一台iBook G4給我的印象太差了,現在還是回到Windows桌面跟Linux工作站的方式在進行。不過如果哪天會有自己在家開發的需求的話,我想我可能還是會再來一台mac…..

  23. Pingback: How to Build a Hackintosh ? | whatup 的 blog

  24. Pingback: Opinions about Mac, iPhone and other Apple products | Peaceful revolution

  25. 作者與我使用os的經驗挺像的。不過我對linux的情節沒有你那麼深就是了。
    因為我看到linux的時候,剛好是他的桌面系統最不穩定,而且軟體包依賴讓人發瘋的崩潰時候,動不動就當掉。那個時候真的很讓我崩潰,所以除了學了一些linux kernel的編譯,修改引導的文章之外,用了一段時間就放棄了。linux的軟體包問題,似乎是從debian的apt機制開始才好起來的吧?
    真正對類unix系統的學習就是freebsd了。這個系統對我來說就是很完美的一個系統了,port機制同時支持代碼編譯與二進制包。依賴關係都是自動解決(linux後來的軟體包機制,我想肯定也是從bsd系統學來的。gentoo那個和port機制根本就是如出一轍)。當然,因為歷史原來freebsd比起linux其實還是小眾了。並且許可證又比gnu的寬鬆一點,所以引不來那些極度開源人群。還有就是驅動少了些。。。。freebsd也真是用起來很爽的一個系統,而且因為有core team的存在,基礎系統比起linux來說,我個人覺得是要穩定的。基礎系統層面上算是蓋了章的。總之bsd上遇到的學習阻力真的小了很多。與作者相似的是,我除了mac之外,也剛好是有自己的bsd server來無端連線用。。
    喜歡上mac是最初是因為對bsd的唯一不滿,那就是gui上的問題。其實類unix系統用的gui都一樣。x-window上的視窗管理器。現在主流的應該還是gnome,kde吧。有人把這兩個管理器歸結為一個學mac一個學的win。我覺得還是蠻有道理的。gnu下的東西多數都很好用。可唯獨gui方面唯永遠帶著濃濃的山寨味道。似乎技術員們對end-user從來都是不關心的。他們對介面好像也不是很上心,總是有得用就行了。而且視窗管理器上也是群雄並起,紛爭不斷。另可怕的是,你在kde環境下啟動一下gnome程式(是不是叫gtk程式更準確一點?)還可以看到不統一的ui。另外,說實話,我是真的在gui上沒什麼diy的心情。太浪費時間了。
    看到macosx(還有之前的NeXTstep。ps:我對macos之前的數代都不是太有興趣)與bsd的親緣關係就讓我有對mac有好感了。macosx系列的介面也比較精美。我的第一反應是:我終於找到bsd unix的完美表現版本了。這是我最初用mac的原因。
    先說說之前看到的幾個問題吧:
    1.驅動問題:自家的硬體+系統。驅動問題是肯定沒有的。唯一被大家說到的是硬體的升級問題。我想呢可能還是不能光從pc角度來看。首先看看產品線的話,imac是一體機,這東西本來就沒什麼讓你升級的空間。bmp,即使是pc筆記本升級的空間也是很小的,加加記憶體麼?那mbp也可能做到。另外mini tv之類幾種產品都不是讓你升級用的。更不要說iphone ipad之類的移動設備。唯一被大家說道的應該主要還是macpro。首先要承認的是macpro真的沒法讓你升級。插進去的非mac擅長的專業領域pci設備想要個驅動確實沒什麼戲。想得到的只有專門為macpro出售的顯卡了。這就算是平常的東西了。不過就一般的pc機而言。一般人也是對一台pc來說。不換大件cpu和主板,只有加記憶體。顯卡方面a,n卡的廠商每年還是會有新作出售,而且性能都不低(而言macpro也不是用來玩遊戲的)。所以大手筆變化的升級,不要說對mac,就是對一般的pc來說,我覺得也是很少的。加上macpro的定位。。。貌似用硬體來說事,也不是太恰當。
    2.價格問題,這個就沒什麼好說的了。我覺得吧,一分價錢一分貨。mac機的品質,外觀設計各方面,基本上還是對得起這價格的。
    3.我開始真正覺得mac好的地方:
    之前看到一遍文章老是提到win/lin開發時候,想要微調程式的外觀是多麼多麼的方便。這也許是出於工作的無奈吧。。。不過我對mac的喜歡也正是來源於其外觀的統一。大家都知道因為win/linx在程式設計的時候可以自由的利用那些開發庫和api,對自己的程式進行制定。反過來的是,apple對自己的系統中至少有兩個很重要的地方進行了限定。
    1)系統的主題外觀,程式本身不能獨立制定。也就是說,你不能隨意建立一個外觀與系統主外觀不同的程式出來。
    2)系統開發語言被限制在了objective-c上(c因為是ojbc的子集所以可以用。c++則應該是apple開發的objective-c++,總之是被限制在obj系列上)。在新版本的macosx中還廢棄了carbon api,轉而全數使用cocoa(我想這應該可以看作是把底層的api,封裝後再給用戶使用)。
    這兩個限制應該是相輔相成的。因為系統級的開發庫本身就是對整個os的一個設計體現。macosx限制外觀的修改,其實就是從end-user的角度做的決定。如果打開幾個常用程式,卻發現個個長得奇形怪狀,不知道你會是什麼心情。。自由?不!那是受罪。windows下曾有一個時期,瘋狂的流行程式主題功能,大部分的程式不管是否必要都要加個這個功能才安心,就連常用的輸入法也帶有這個功能。其實你用輸入法的時候真的非要看那一小塊主題區麼?很多主題偏偏設計得文字效果極差,我們這類筆形輸入法使用者倒是無所謂,真正苦了的還是那些拼音用戶,再好的拼音輸入法重碼的時候,你還是要去看一眼螢屏的。這還不算上那些設計水準不高,又不能讓程式回到標準介面的程式。
    macosx的介面法則甚至可以從開發工具上看得出,介面編輯程式interface builder(這個程式的功能在xcode4重新並入了主程式中)中添加元件的時候,會發現有輔助線提示你符合系統介面法則的推薦距離,並可幫助對齊(我記得這個功能在整個非.net時期,ms vs中應該是沒有提供的),功能看起來小,但卻真的很有用。apple的限制讓用戶使用程式的介面保證了一致性。順應了macosx的介面法則的程式,也會是非常容易使用,不用特別學習的用戶程式。
    就像之前說的,系統框架庫是系統設計的體現。而限定了底層api,而只允許使用cocoa才可以達到這樣的目的。macosx的桌面環境從nextstep中繼承了大部分的習慣。像是剪貼板的風格,目標拖放,或者還有過去在win下每個程式都要痛苦實現的無限undo,redo功能,在cocoa中都應系統的功能設計而自動的提供了。你要做的不過是實現一個協議方法就可以輕鬆的實現了。這樣設定也讓程式間的相似度很高。更不要說程式語言多國化,配置文件檔案unicode化,存儲domain化(這也是為什麼macosx的系統搬移工具那麼好使的原因)。這些在win平臺上讓一代開發人員頭疼的要死的功能(.NET後來慢慢的搞出了這些功能,不過非native代碼,在win上吃了多少記憶體。。。這個我想不說大家也是看得到的。),在系統提供了相關的功能的同時,你也不需要拖著api去寫一些沒有意義的代碼。cocoa已經把這些簡化得容易使用,又設定簡單了
    我對程式設計沒什麼研究。不過我覺得macosx與開發庫cocoa的配合真的非常好。macosx還在於開發工具的設計對開發人員來說都是非常的貼心的。比如在macosx上開發程式時,在mvc模式的應用下,介面與代碼的設計真的是分開的(.net上 還是畫畫 雙擊 寫代碼。。。而且介面本身還不能獨立運作,你要編譯後連程式一起運作空轉,現在.net上好像也有類似的東西了,不過我覺得效果真的不是很好)。方法與事件,只要拖拖滑鼠連連線就可以了。加上cocoa中一些功能的設計。你可以省去寫很多很多膠水代碼的時間,把精力寫在重要部分的代碼上。這也是為什麼選用objective-c作為御用程式設計語言的原因(他的機制真的很適合幹這個)。
    對程式設計瞭解沒有前輩們那麼通透,這些大概就是我的體會了。
    還有一個macosx為用戶著想的地方,我想也可以拿出來說一下。那就是系統的字體宣染效果和系統主題。
    首先,真的很喜歡mac的字體渲染效果。雖然有人說感覺看起來有點像是發黴,不過這個效果卻真的很適合在顯示器上來看。其實以前在crt上的效果更明顯一點,不過現在在lcd上的表現也還是不錯的。而且我想apple會繼續精進這一方面吧。win上的字體渲染系統,字體看起來比較細一點,好像是看起來挺好看的,不過我看時間長了真有點受不了。
    第二,其實很多人喜歡上macosx是因為10.4 tiger向前的幾個版本裡的 金屬塑膠主題效果,確實看起來很特別,但從leopard開始這套主題就沒有了,換之的是一套灰度為主的主題,並沒有之前的那麼華麗。查了很久得到的答案是,leopard的開始的灰色主題比之tiger系列的金屬塑膠,雖然看起來不夠華麗,但沉穩大氣,最重要的是,這套灰色主題更利於長時間使用計算機的人。我想相比為了那看起來也不怎麼樣的外觀,又是毛玻璃,又透明的win設計來說,我想我更願意使用macosx。
    說macosx因為外觀占優,我覺得這也不是絕對的。大家可以看一看其前身系統,喬布斯離開蘋果後,創辦的nextstep公司出口的計算機所搭載的NeXTstep系統,這套系統和macosx非常的想像,但這套系統外觀可沒有那麼華麗,這其系統在開發員間仍然是非常優秀的系統。值得一提的是,從wiki上的記錄來看,世界上第一台www服務器與瀏覽器也都是在此平臺上開發出來的。
    我想很多演講會上,演講人使用mac系列機,也許外觀是一個因素,但系統本身的優點是更大的一個方面,人的審美是會疲勞的,也許當外觀的光環不那麼耀眼的時候,你才能看到macosx的好。
    就說這些吧,不小心就打出了這些字來,如有什麼不對的地方,還請指出。謝謝。

  26. Pingback: Is It Steve Jobs’ Post-PC World? « 二師兄的筆記部落格

  27. Pingback: 轉機 | 陳 Kino

  28. Pingback: [讀者投書] 這會是 Steve Jobs 的「後 PC 時代」嗎?

  29. Pingback: 這會是 Steve Jobs 的「後 PC 時代」嗎?

  30. Pingback: S&J Studio » Apple,Google,Facebook,Amazon 你喜歡那一家?

  31. 基於作業系統設計之初所要達到的目的,Linux和windows所被要求的特性是不同的。windows是給一般使用者用的,版主和前輩都說過N次了。

    所以windows才會把資訊幾乎完全的隱藏,目的不外乎在保護OS不被使用者在無意中破壞,而且一般使用者沒有權利,也沒有義務,也沒有能力去對一個有版權的軟體去做修改(當然最近興起的open source軟體沒版權,但一般使用者還是沒有能力去修改,並且這些人占大多數的)。

    但Linux不同在設計之初它假定它的使用者是有相關知識、能力的前提下,所以它被設計的可以讓有能力的人去修正所碰到的問題,看看早期的Linux介面只有command就可以理解,它不是為了一般使用者所設計的。

    當然我們不能忘記windows是商業軟體的”本質”,而且大部份windows上的程式也是商業的當然不會給你修改更不用說寫interface給你用。(要用更好的功能就給我拿錢來)(當然最近興起的open source軟體例外)

    以上是我的看法mac我沒用過不方便比較(或許我以後也會放棄windows),但最少現在windows和Linux我都用過,寫下這些感想錯誤之處希望各位前輩給予指導。

  32. Pingback: ez 鍵盤滑鼠記錄器點用 -網誌熱搜"ez 鍵盤滑鼠記錄器點用"

  33. 自从大学开始使用Linux之后,就对Linux的command line方式有深厚的感情了,虽然刚刚入手时确实很困难,但在长时间的使用之后,就会发现其好处.现在工作的内容都是Windows相关,所以每次使用公司电脑都很头痛.

  34. Mac是完全不同的。MAC /蘋果產品是一種生活方式。的Windows / Linux等工具。非常相似的情況下,例如iPhone和Android手機。它不是一個軟件規範戰爭。我們比較的是一個品牌的經驗與工具的銷售。

  35. 但是MAC有很多軟體不支援~~~用起來也是挺痛苦的!!

    雖然很快很穩~~但有些軟體~~實際上win用起來更順手~~

    更多的小外掛沒有~~

    購買者要考量自己的需求點才是~~

    其實各有各的優缺點!!

  36. Pingback: FSCWfungshui, 府相朝垣風水命理

  37. Pingback: Chatting with Girls

  38. Pingback: micronichefinder

  39. vgod 你好,由於工作的需要必須操作solaris 請問sikuli目前有辦法在solaris上執行嗎?

  40. Pingback: objectivec基礎教程 pdf -部落格熱搜- objectivec基礎教程 pdf

  41. Pingback: BANK DE BINARY

  42. Pingback: MyfreeCams Free Token generator 2013 is program who for free can add tokens to your accountin webcams for adults. Myfreecams.com is adult web site with webcams models when u can tip tokens to take show. Myfreecams.com is a very popular site with models on

  43. Pingback: 好站與連結分享 2013/09 | Vixual

  44. 真是茅塞頓開耶! 原來我都誤解 Mac

    發文至今又隔了五年, 不知道站長現今是否有新的心得?

  45. 您好:

    不好意思…因為真的看了太多工程師強烈推薦 mac,但是我接觸過的工程師近十個,沒有一個說 mac 好用,包含我在內…..如果可以用 windows 開發,絕對沒人想用 mac。

    我了解 mac 在安裝一些套件上真的很容易,一堆開發套件問題也比較少,至少我現在用的開發套件,就一堆小問題……但我還是堅持用 windows。

    但我真的想了解…”都沒有人覺得 mac 很慢嗎?”

    應該說,相同的硬體設備下,windows 運作速度我認為是 mac 的好幾倍。

    我用 mac book CPU i7 記憶體 4G,用了半年多,因為要開發 ios app。所以我基本上已經半年多沒碰過 windows 了。

    直接有一天我同事在程式上有些問題請我去看看,他用的是 windows,從碰到滑鼠那一刻起……我幾乎嚇呆了!
    我從來沒用過這麼順暢的 OS !不管我要複製貼上、切換介面、開啟應用程式等等,我完全感覺不到 “延遲”。

    他是 i5 + 記憶體 2G,但是真的很順暢!

    反過來…我用 mac 的經驗,每次按右鍵就必須等待…切換畫面也是等待…
    不管我想做甚麼操作都必須等等等等等等…………..

    我用過 mac book、iMac 都一樣很慢,我接觸過的所有工程師都說 mac 很慢,就像當機一樣,所以我周邊工程師朋友大家都喜歡用 windows 開發,我們公司4~5台 iMac 被丟到角落。我問為什麼不用…答案不外乎”慢”。

    以上…抱歉我廢話真的很多,但我真的很好奇為什麼國內外大家一致推薦 Mac 是最佳開發 OS 呢?畢竟環境方便是一時的,但速度是一輩子的事啊。

    謝謝。

留言給我吧!