用mac寫程式的好處 - MAC

Dinah avatar
By Dinah
at 2012-04-07T07:37

Table of Contents


→ Killercat:ram吃得凶跟OS底層API策略比較有關係,很難說好還是不好 04/07 06:57
→ Killercat:OSX本來就是傾向於"盡可能放記憶體給程式吃" 04/07 06:57
→ Killercat:你記憶體充足那就會無敵順(這應該就是前面同配備osx會比 04/07 06:58
→ Killercat:win7表現好的重要原因之一) 不過記憶體不夠就很麻煩 04/07 06:58
→ Killercat:尤其osx的swap其實並沒有win的pagefile效率那麼好 :Q 04/07 06:59
→ Killercat:不過我選mac當開發用機有幾個很重要的原因分享一下好了 04/07 07:00
→ Killercat:1. android device幾乎不用灌driver就能正確驅動 04/07 07:00
→ Killercat:2. 相對好用許多許多的unix based terminal 04/07 07:00
→ Killercat:3. 最重要的,這trackpad真是讚阿 XDDDDD 04/07 07:00
→ Killercat:4. xcode 5. 強迫自己用POSIX標準寫東西 04/07 07:01
→ Killercat:不然老實講我是.net c#派的 這個語言真的太棒了 XD 04/07 07:02
→ Killercat:算了回一篇好了 XD 04/07 07:08

來分享一下我自己為什麼選擇mac當開發機好了,
順便聊一下普通人對osx記憶體策略的誤解

OSX從10.3以來(我沒記錯的話)記憶體策略一直都是盡可能的最大化使用
他們的想法是"Unused memory is useless memory"
這策略理論上是正確的,至少在大部分的情況下

OSX記憶體策略來講,讓我們打開Activity Manager看一下
他記憶體一共分成四大區塊 : Free, Actived, Inactived, Wired
其中我們"真正"吃到的是Wired跟Actived,差別在於Wired不會被Paged or swapped
(也就是不會被寫入硬碟:在WIN的說法叫做虛擬記憶體或者PageFile)
而inactived則是最近quit的一些application占用的記憶體,雖然跟free有點差
但是在大多數的情況你可以當作他等同free

所以其實OSX吃的記憶體恐怕沒有大多數人想的那麼多 XD

但是事實上一個程式吃的wired+actived來講,osx的確是比win7來的多
(尤其VM系列 更是多上不少)
前面提過他的策略是盡可能多吃記憶體換取比較順暢的使用者體驗
這種策略不能說好或者不好,但是優點很明顯,缺點卻一樣明顯
在記憶體充足的場合中這樣是很讚的,但是記憶體不夠的場合就會出現問題

OSX也是吃swap(他的swap檔案在/private/var/vm/ 有興趣的人自己去翻一下)
但是他的swap事實上校能比linux的swap FS差一點
(linux swap吃自家的FS所以... 另外我不知道他跟mkswap搞出的swap效能高低)
而且也比windows的pagefile來的差
加上這種記憶體策略下,很容易就會讓部分常常執行到的東西掉進swap
然後他的swap不良造成速度低下 -- 更慘的是有時候wired不夠就會開始靈異現象
(osx的記憶體吃光光靈異現象在開發上不算少見,lion以後好一點)

win7很少有記憶體不夠造成當機或者靈異現象
我家的電腦以前4g, 有一條記憶體偷偷壞掉了所以變成2g我卻不知道
但是雙開VS+TES5只是覺得ㄟ奇怪怎麼電腦便那麼慢 硬碟怎麼老是狂轉
但是就是不會當機或者靈異現象 XD 後來才注意到阿娘威怎麼記憶體剩下2g...

osx其實比win7還需要重開機阿(經驗談)...
只是次數都不多就是了

ok上面聊到了OSX的記憶體策略,有優點也有缺點。下面分享一下為什麼我喜歡用osx開發

1. android device幾乎不用灌driver就能正確驅動

我自己是開發android為主的,他對於每支手機或者device幾乎都是插上就能用
linux的話要自己寫usb定義檔(煩) windows的話要灌每家不同廠商的USB Driver
當然,google是有提供一個公版的win usb driver 但是那個不是每隻手機都能用 :Q

2. 相對好用許多許多的unix based terminal

這個不用多說,這幾乎就是我選擇linux/osx而非windows的最大理由
但是osx又有一點比linux好的地方,在terminal裡面,事實上ctrl-v / ctrl-c
這兩個是有特殊意義的,所以linux的terminal剪下貼上非常麻煩
但是osx用cmd-c/cmd-v取代了ctrl,讓terminal方便度增加相當多


3. Trackpad

這可能不是很多人選擇的理由,但是對我這個喜歡拎個電腦到處跑的人來說
有一個能讓我完全不會想外接滑鼠的好cursor操作介面是一個非常亮眼的亮點

即使是我現在我都仍然是買Magic Trackpad外接我的mac 而非mouse

4. xcode

這個不用說,開發iOS非這個不可。不過老實講我自己是很討厭objc的 XD
只是剛好工作也需要開發一些lib for iOS

5. 強迫自己跟別人POSIX標準

這個應該很多人有這種經驗,接手一組code想要重複利用結果發現編譯錯誤一堆
仔細一看裡面居然充斥了一堆win32 api像是CreateThread(...) CSocket...

為什麼不乖乖用POSIX標準的__beginThreadEx跟SOCKET呢(怒吼)

6. (這是設計比較碰的到的問題) OSX的色彩比較正確

這篇前面剛好有人推文提過,請在本版搜尋"螢幕"

老話一句,我個人是C#派,非常喜愛.net。但是即使如此,我還是選擇mac當開發機
雖然在osx不能跑visual studio,不過大不了VM或者用TeamViewer/VNC連線回家寫阿
反正工作來講大多數都還是碰objc跟java比較多 XD
這些經驗跟大家分享一下參考一下

--
Tags: MAC

All Comments

Thomas avatar
By Thomas
at 2012-04-08T22:07
推這篇
Odelette avatar
By Odelette
at 2012-04-10T04:32
推這篇+1
Kelly avatar
By Kelly
at 2012-04-13T03:51
教我寫ui+1
Regina avatar
By Regina
at 2012-04-17T01:22
推這篇++
John avatar
By John
at 2012-04-21T18:10
Terminal 環境對我而言真的是最重要的
Poppy avatar
By Poppy
at 2012-04-25T16:35
盡量把記憶體用光不是理由,同樣2G RAM的機器不跑其他東西
Win 7 64-bit和Lion的順暢程度就有差,所以本身OS在記憶體
Annie avatar
By Annie
at 2012-04-28T20:59
管理上我不覺得OSX比較優秀.....
另外OSX的unix環境只是相對好用,比不上原版的Linux...
Wallis avatar
By Wallis
at 2012-05-01T02:19
裝個 cygwin 什麼的總是讓人感覺很累贅
Tom avatar
By Tom
at 2012-05-05T09:39
以我的工作環境來說,需要build android image,OSX很麻煩
Damian avatar
By Damian
at 2012-05-10T07:59
某些Linux可以用的套件就算給你Mac port也沒救.....XD
這樣我不如直接用Linux就好, 說真的除了XCode以外Mac對我來
Dinah avatar
By Dinah
at 2012-05-14T00:24
說就是拿來收信上網專用.......
Lydia avatar
By Lydia
at 2012-05-18T16:44
除了那個Apple Logo,寫程式弄台Thinkpad灌Linux簡單一點
Harry avatar
By Harry
at 2012-05-23T04:32
C# .net 真的做得很好寫...
三樓教我寫ui+1 (咦)
John avatar
By John
at 2012-05-27T09:06
@lincho,OSX的unix環境是bsd體系的,與linux的gnu體系有差
Cara avatar
By Cara
at 2012-05-29T00:00
還是要看工作性質,如果要做底層的工作還是Linux比較好
Hazel avatar
By Hazel
at 2012-06-01T21:33
什麼叫原版的linux? 你知道linux是什麼東西嗎?
Doris avatar
By Doris
at 2012-06-04T06:50
maa... build Android image on non-case-sensive
的問題在android前陣子不只是麻煩 根本是bugged...
Susan avatar
By Susan
at 2012-06-08T19:02
不知道現在休的怎樣就是。這個我也是弄個ubuntu在開發
反正也不常寫這東西 睜隻眼閉隻眼嚕
Lily avatar
By Lily
at 2012-06-13T10:32
嘿..有人問我之不知道什麼是Linux...:p
其實不只啦,minicom在iTerm底下也怪怪的,總之小問題很多
Olive avatar
By Olive
at 2012-06-18T07:16
我朋友做底層的買了一台MBP之後還是乖乖換回Thinkpad....
說Mac寫程式好用的大概就是寫App的吧,其實我覺得你說寫
Lily avatar
By Lily
at 2012-06-22T06:28
不過說真的 常用的東西port跟homebrew找不到還滿難的
連冷門到不行的wireshark都有人幫port了....
Andrew avatar
By Andrew
at 2012-06-25T02:57
寫linux(如kernel層級的東西)當然還是用linux 包含\
dalvik VM :Q 這個沒話講,不過畢竟開發者app層占多數
Jack avatar
By Jack
at 2012-06-29T05:48
POSIX程式,反過來說這種程式在Windows上也是難用的要命...
Jake avatar
By Jake
at 2012-07-01T03:15
現在移植性越來越重要了 沒POSIX很多東西都沒辦法移植
想移植到JNI-Android不行 移植到objc不行 什麼都麻煩orz
Agatha avatar
By Agatha
at 2012-07-01T15:29
我的習慣是自己包Middleware,哪個平台就用那個平台的API..
Sierra Rose avatar
By Sierra Rose
at 2012-07-03T16:06
而且重點是 已經幾乎沒有人用win32 api了...
Iris avatar
By Iris
at 2012-07-06T14:38
BTW, 我前兩天寫Python才碰到MySQLdb安裝的問題...
網上找了一下OSX底下安裝那種長長一串步驟只能說..@%#@%
Lauren avatar
By Lauren
at 2012-07-08T01:52
寫這種東西碰到這種麻煩 直接去ec2開個免費的instance
ssh進去寫就好了 XD
像我就是直接去ec2開 還有一個免費的public ip 多好
Joe avatar
By Joe
at 2012-07-12T07:57
你說真的純底層coding osx畢竟不是linux 也不用勉強自己
Blanche avatar
By Blanche
at 2012-07-15T11:16
去用他就是,上次要改個ia32-libs source code都不知道
怎麼下手 後來靈光一閃 靠杯 去ec2改不就好了
我沒神話他吧 就只是好用而已
Adele avatar
By Adele
at 2012-07-17T13:30
OSX在寫App上也沒有講的那麼神就是了,最多是看起來爽一點
Zanna avatar
By Zanna
at 2012-07-22T01:55
不過你說的好處基本上和Linux一模一樣啊..XD
除了那個trackpad以外想不出有什麼獨特的地方...
Dora avatar
By Dora
at 2012-07-22T14:14
友嗎 1 2 3 4 6都是osx才有的阿
Xanthe avatar
By Xanthe
at 2012-07-26T02:31
我自己在MBP上大概就iTerm+Eclipse混用,但是相對來說
Barb Cronin avatar
By Barb Cronin
at 2012-07-27T12:11
6我不敢說linux有沒有 不過ps等軟體沒linux版倒是真的
花錢買來就是用3年阿 吃飯東西爽度不能省 真的
Kumar avatar
By Kumar
at 2012-07-30T23:05
我在Linux上完全可以做一樣的事,而且機器還比較便宜...
Skylar DavisLinda avatar
By Skylar DavisLinda
at 2012-07-31T15:05
3, 4, 6算OS獨有的,但是程式設計師通常不管6, 4你要寫OSX
或是iOS才用得到, 3的話基本上我根本不大動滑鼠...
Sarah avatar
By Sarah
at 2012-08-04T11:58
對我來講生財工具多付一點讓自己工作爽一點 就是讚
Kyle avatar
By Kyle
at 2012-08-06T13:44
6是osx的好處,比較不算在osx寫code的好處XD
Lydia avatar
By Lydia
at 2012-08-07T18:58
我知道有些人很習慣用terminal + vim寫code(我以前就是)
以前還geek到用lynx去看網頁 XD
但是後來想想幹嘛那麼類 orz
Ida avatar
By Ida
at 2012-08-09T10:25
我回一篇好了..XD
Adele avatar
By Adele
at 2012-08-12T19:07
看網頁要用w3m才是王道啊
Odelette avatar
By Odelette
at 2012-08-15T05:15
現在的網頁資訊很圖像化,用純文字看會很難吸收
Necoo avatar
By Necoo
at 2012-08-18T16:11
不過裝個vimperator或是vimium倒是不錯用--如果習慣的話XD
Noah avatar
By Noah
at 2012-08-20T15:35
原po別再戰了 快交我寫ui啊 你們這些職業級的coder
Hedy avatar
By Hedy
at 2012-08-22T03:00
等等為什麼我變成很會寫UI的人了(汗)

Video Converter 限時免費

Anonymous avatar
By Anonymous
at 2012-04-06T23:33
http://itunes.apple.com/tw/app/video-converter-clone2go/id447068560?l=zhandamp;mt=12 限時免費 原價 15美金 影片轉檔軟體 - ...

用mac寫程式的好處

Yuri avatar
By Yuri
at 2012-04-06T22:04
※ 引述《oralB (歐樂B)》之銘言: : 想請問版友們 : 最近在等macbook改版 : 所以還有時間反悔來問問版友 : 爬了網路幾篇文章 : 發現用mac寫程式,並沒有看到大家明顯的表示支持 : 因為之前有使用過一陣子朋友mac的經驗 : 覺得用起來真的就不想用windows了 : 然而在沒有看到大 ...

請問螢幕保護程式(不要效果)

Robert avatar
By Robert
at 2012-04-06T21:36
大家好, 我知道很多人喜歡絢麗的螢保, 但我只想要全黑色的螢幕。 今晚不知何故,突然出現有影像效果的螢保, 我很努力嘗試要調回一片黑, 但選項只有乾脆停用(never)或者非要選個影像效果。 請問要如何回到我的一片黑暗的時代呢...?@@ 謝謝。 -- 我也不確定自己是不是在這兒,在班岩的噴泉 ...

10.7標點符號問題

Mia avatar
By Mia
at 2012-04-06T18:10
之前好像有看過相關的問題解決辦法,但看不太懂 想請問一下10.7.3裡面中文輸入,有沒有辦法打出“頓號”呢? 不知大家都有這個問題還是只有我是個別案例 我目前使用2009小白,裝10.7.3下去跑(有點吃力,再撐個幾個月準備換) 謝謝解答! - ...

yahoo輸入法與office2011 for mac 問題

Irma avatar
By Irma
at 2012-04-06T14:22
機型:MacBook Pro CPU: 2.5 GHz Intel Core 2 Duo Ram: 4 GB 667 Mhz DDR2 SDRAM OS: OSX 10.6.8 office版本: Office 2011 for Mac 中文版 輸入法:yahoo輸入法1.1 最近兩三天使用yahoo輸入法 ...