為什麼很多人都選擇 OS X + Vim + IntelliJ IDEA?
為什麼很多人覺得用Eclipse很low?
為什麼覺得用IntelliJ IDEA或者vim高大上? Joshua Bloch寫Effective java也是用的windows,為什麼很多人都用OS X卻不用Ubuntu或者Windows或者其他操作系統?對於開發環境的選擇,很多人似乎只是在盲從。這些選擇真的提高了開發效率嗎?
我不認為所有工作內容都能體現OS X + Vim + IntelliJ IDEA的優勢,大家是遇到了什麼場景時才真正覺得"非它不可"。希望大家能分享一下自己的經驗。
作為一個將近8年工作經驗的Java程序員,剛好這三樣東西我都在用(都有超過4年以上的使用經驗),而且用得都很歡,這些年來,這些工具實實在在幫了我很大的忙,讓我工作效率更高,有了更多時間扯淡,看新聞。所以容我好好說說選擇OSX + Vim + Intellij IDEA的原因。
為什麼選擇OS X?
漂亮、穩定、Unix環境、各種命令行工具。我可以直接在自己機器上裝Nginx,MySQL等和線上部署環境一致,多happy啊。Windows很難做到這一點。為什麼是Vim?
花半個月時間學習Vim後,編輯文件的效率是其它工具的好幾倍,為什麼不用?當你熟悉使用Vim後,你看其它人慢吞吞編輯文件時,心裡總會泛起為他著急的心情。另外我使用Vim的一個最大用途是批量修改文件,列模式,正則表達式替換,區域替換,沒有比這更好用的工具了。對了,前兩天我們運維同學在系統性學習Vim 1個多月以後,忽然發了一個感慨,表示用Vim編輯文件時,那種隨心所欲的感覺實在太秒了。為什麼Intellij IDEA,不用Eclipse?
作為使用了Intellij IDEA 7年老用戶,我在部門一直推廣用Intellij IDEA,所有新來的同事都必須學習使用。在適應了Intellij IDEA以後,沒有人再想念Eclipse了。為什麼? 因為很多時候Eclipse要花10秒乾的活,Intellij IDEA一秒種就能搞定。現在很多時候寫代碼的時候,腦子想得有多快,編輯代碼就能有多快,腦子再也不用等手了,Eclipse做不到這一點。很多時候,你只要看一個熟悉Intellij IDEA的人給你演示一下他寫代碼的速度,你就知道為什麼國外有很多優秀的程序員喜歡用Intellij IDEA了(我看過不少開源項目源碼,其中帶了Intellij IDEA的項目文件)。最後說說關於工具的事情。
有些人總喜歡拿某些牛人曾經的故事來說明工具不重要,真的是這樣嗎?牛人們用那些粗陋的工具很大原因是由當時的時代背景決定的,當時就沒有更先進的工具!事實上,對於每一個程序員來說,更好的工具可以實實在在提升效率(前提是,你認真學習過如何高效地使用它們)。現在的互聯網產品,每天都想著怎麼給用戶提供更好的體驗,可笑的是不少程序員們,仍然覺得體驗不重要,效率不重要。牛人一般是這麼寫代碼的:
比爾·蓋茨:艾倫毫不質疑比爾·蓋茨的編程能力,蓋茨當年要編寫軟盤驅動器的Basic程序,還有幾天的時候抓著三個作業本和十根鉛筆住進了旅館,5天後帶著幾千個位元組的彙編代碼回來了,然後滿臉倦容把這些代碼輸入終端,告訴艾倫「搞定,你們再看看有沒有bug」,然後就回哈佛了。事了拂衣去,深藏功與名。
李納斯·托瓦茲(Linus):在整個創造 Linux 的過程中,我們沒有看到李納斯使用了什麼樣高級工具,估計那時也沒有,整個系統基本上是一行行代碼敲出來的,純手工打造,這些先賢的編程功底和效率讓我們嘆為觀止,所以,現在,我決定打開終端,輸入 vi,然後鍵入:to be continued,感受一下李納斯當年編程的風采……
高手眼中,根本沒有工具,飛花摘葉,皆可傷人。
現在最大的問題來了:你覺得自己有那麼牛嗎?
如果沒有的話就老老實實承認,工具之間確實存在優劣和效率上的差異。
1、如果你不是一個 Windows 相關技術的開發者,那麼 OS X 幾乎是為程序員量身定製的操作系統。
2、IntelliJ IDEA 就是比 Eclipse 功能強大,商業 License 的錢不是白收的。
3、熟練掌握了 Vim 或 Emacs,絕逼比任何其他的文本編輯器效率高。當你還在等待 IDE 打開的時候,人家已經在命令行把事情分分鐘搞定了,還能隨時登錄到伺服器編程和修改文件。
當你認為別人都在裝逼的時候,別人已經絕塵遠去……就醬。
別查了,引用的那兩段文字都是我寫的,在我的書和專欄中可以找到。沒人覺得用Eclipse很low,也沒人覺得vim高大上。沒有人盲從,所謂盲從的一部分人要麼堅持不下去放棄了,一部分真的成了一些工具的忠實用戶。很正常,沒有對錯可言。
當然不可否認還有一部分人常年都很糾結,怕吃怕燙的。好在這與別人無關,世界就應該是多元的。用OS X很正常,誰買了mac不用自帶系統,非要做個ubuntu那才是異類。至於Windows,贊一下,它在虛擬機下表現非常好。
Vim 和 Eclipse 沒有可比性。Emacs用來寫日記很好。
Eclipse 和 IntelliJ IDEA,沒見什麼特別顯著的差異,只有幾點促使我放棄了Eclipse:
IDEA的提示、補全恰恰可以在我想要的位置出現,很貼心省力氣;IDEA的啟動速度OK,而Eclipse貌似默認在掃描全部插件,速度慢;IDEA可以摺疊掉很多沒有用的代碼,感覺特別清晰。比如
IDEA的設置項可以像Spotlight一樣檢索。IDEA 的Git, Gradle等集成都很好,一些新東西不用自己到處搜羅plugin去折騰。我知道在Eclipse里很多特性都可以配置或者安裝插件實現出來,但我懶,不再願意學習這些。我對Eclipse很有些感情的,但真的感覺它有點兒失去活力了。轉開源社區一個翻譯:IntelliJ IDEA 的 20 個代碼自動完成的特性
在這篇文章中,我想向您展示 IntelliJ IDEA 中最棒的 20 個代碼自動完成的特性,可讓 Java 編碼變得更加高效。對任何集成開發環境來說,代碼的自動完成都是最最重要的一項功能,它根據你輸入的內容進行預判並幫你自動完成你想輸入的代碼,有時候甚至都不知道自己想要輸入什麼,例如一些類名、成員、方法或者是其他方面的內容。
IntelliJ IDEA 中的代碼自動完成的功能之所以能讓我如此印象深刻,原因是 IDEA 真的理解你的代碼以及你當前所在的上下文。接下來我們將這些最重要的特性進行簡單的說明,這些特性讓 IDEA 顯示出比其他 IDE 更棒的表現。
即刻完成 Instant completion
第一個也是最吸引我的就是「即刻完成」特性,不同於其他 IDE,IDEA 可在任意地方提供這個功能,而不只是當你要訪問某個類的成員時。只需要輸入單詞的首字母,IntelliJ IDEA 就會立即給出最相關的、最適合此處代碼編輯需要的選項共你選擇。
想要了解「即刻完成」是多麼的有效,你可以瀏覽這個 演示視頻.
類型感知的自動完成 Type-aware completion
另一個特性同樣打破了常規的代碼自動完成的方法,稱為:智能自動完成。你可能已經知道,IDEA 中包含不止一種自動完成的功能,包括 基本自動完成 ?Space 和 智能自動完成 ??Space.
當你呼出 智能自動完成 時,它會將建議列表中的不適用的條目過濾掉,只顯示可用的類、變數、屬性或者方法,這個提升了性能而且可以避免不必要的錯誤,如果你試用下這個功能,你肯定會時刻想到它。
靜態屬性和方法 Static fields and methods
就如同剛才我說的,IDEA 一直走在你的想法之前。如果你不記得一些靜態成員的類名,你只需要開始輸入靜態成員的名稱,然後調用兩次「自動完成」,IDEA 會給你提供正確的可供選擇的列表,甚至是通過靜態 import 進來的方法,如果你調用 Intention action ?? 的話.
再一次說明,如果你使用 智能自動完成, 它將只提供可正確使用的選項。
鏈式自動完成 Chain completion
接下來的一個可讓你更多的提升編碼效率的自動完成特性,名為 鏈式自動完成(Chain completion). 如果你需要輸入這樣的調用方法 getModule().getProject(),只需要使用兩次 Smart completion 即可。這種情況下 IDEA 將掃描變數、屬性和方法,以及在當前上下文中的可見性,並為你提供可用的選擇。
你可能知道 Eclipse Juno 有一個名為 Code Recommenders 的插件,這是一個相當有意思的插件提供了這裡說到的功能,但它的工作方式完全不同,只提供 Eclipse SDK API 類中的建議,而 IDEA 為你提供你代碼中所有類的自動完成建議。
數據流分析 Data flow analysis
IntelliJ IDEA 被稱為是最智能的 Java IDE 的原因是,IDEA 提供的各種功能都是基於對你代碼分析的結果,數據流分析就是其中一項。IDEA 分析數據流以便猜測運行環境中的變數類型,並提供基於這個類型的自動完成以及自動增加類的強制類型轉換。
常量自動完成 Constants completion
很多 API 使用 Java 的原始類型而不是枚舉類型來定義常量,IDEA 能分析出項目中的這些常量,並在自動完成的建議列表中提供選擇,快速輸入。
父類自動完成 Super completion
你可能已經注意到了,要調用一個有很多參數的父類構造函數挺煩人,而 IDEA 能理解你想要的並提供建議列表供選擇。
語句自動完成 Statements completion
IntelliJ IDEA 另外一個智能的特性就是 自動完成語句 Complete statement ???, 可以幫你完成正在輸入的語句的剩餘部分,自動增加漏掉的大括弧小括弧和必要的格式化處理。
你可能認為這是一個很小的特性,但你會很驚奇的發現當你習慣後,它節省你很多時間。
想試試這個特性可在代碼中嘗試輸入 if 然後按 ???. 你也可以在從建議列表中選擇的時候使用。
參數信息 Parameter info
我相信大多數的 IDE 在你調用某個方法或者構造函數時都提供了參數的建議,然後如何提供的也是非常重要。
IntelliJ IDEA 會顯示每個重載方法或者構造函數的參數信息,並高亮其中最佳匹配的參數類型。這幫你根據輸入和期望的內容來選擇合適的方法。
你也可以通過 ?P 來顯示參數信息。
快速定義 Quick definition
另外一個你可能不知道的特性就是 快速定義 Quick definition ??I. 它會彈窗顯示建議列表中的方法定義的內容,更多的時候,方法的定義比文檔更有用,特別是你不確定要使用哪個方法時。
從自動完成中排除 Exclude from completion
我肯定每個人都至少會碰到一次這種情形,你從來不用的某個反覆總是反覆的出現在自動建議列表中。例如 com.sun 或者是 java.awt 包。
IntelliJ IDEA 可幫你排除掉這些選項,只需要在要排除的選項中調用 Intention ?? 並確認,你也可以在Settings 中重新找回這些信息。
其他語言注入 Injected languages
接下來的這個就不管是代碼自動完成那麼簡單,這個功能完全可以開一篇新的文章詳細介紹,但這裡只介紹它跟代碼自動完成有關的部分。
其他語言注入 Language injection 是 IntelliJ IDEA 帶來的高級代碼助手,可對 Java 代碼中字元串的表達式進行自動完成。這些表達式可以是 SQL, JPQL, XPath expression, HTML, CSS, JavaScript 片段等任何語言。
在 IntelliJ IDEA 提供這些表達式的自動完成功能前,你必須指定對應的語言,你可在字元串上調用 Intention action ?? 來設置,然後方可使用。
例如你在 IDEA 中定義了一個數據源,你將可使用基於表名的 SQL 表達式的自動完成,該 IDE 會分析項目中所有的文件並提供所支持語言的高級自動完成功能。
使用 Tab 鍵的自動完成 Completion with Tab
另外一個特性就是 Сompletion with Tab,也就是使用 Tab 鍵來實現自動完成,當你選擇建議列表中的某個條目後點擊 ?, 選中的內容將會覆蓋游標標識符,而不是插入。這在編輯如文件名這樣的標識符片段時是很有用的。
否定布爾值結果 Negating boolean results
並不是所有人都知道,當你從建議列表中使用 ! 來選擇一個布爾值的選項時,IntelliJ IDEA 會自動添加所選項的的非值(例如本來是true的變成false)。
中間匹配 Middle matching
另外一個高效的方法就是 中間匹配 Middle matching. 意思是當你在剛開始要輸入某個標識符時,IntelliJ IDEA 就會為你提供可供選擇的建議列表,這個特性能顯著提升編碼效率,特別是當你只記住某個名稱的一部分時。
大小寫敏感設置 Case sensitivity settings
正如你可能已經知道的,代碼完成常用的方法就是使用駝峰法則來根據您的輸入去匹配相應的類名。雖然你需要輸入至少一個大小字母來給 IDE 一些線索提示。而 IntelliJ IDEA 改進了這個法則,它不要求一定是大小字母,也可以是小寫的,也就是說你沒必要在每次使用這個功能時按 ?
默認 IntelliJ IDEA 對大小寫是敏感的,你可以在 Settings 修改此項設置。
資源屬性(properties)、文件名和資源的自動完成
IDEA 還可判斷當前正在使用一些載入資源的方法,並給出可供選擇的資源列表。
一些在非 Java 文件中的類名自動完成 Class name completion in non-Java files
IntelliJ IDEA 同樣還提供一些非 Java 文件,如 XML 配置文件中的類名自動完成。
其他地方的自動完成 Completion in other places
另外一個你在別的 IDE 中很難見過的自動完成功能是,它不只是在代碼編輯器中,還可用在調試器、表達式模擬、監視、文件選擇器、搜索輸入等等諸多地方使用。
表達式評估和監視工具中的自動完成這個功能是非常有價值的。
總結
我希望這篇文章能幫你更好的理解 IntelliJ IDEA 的代碼自動完成特性,並從中受益。
你可以通過 Help → Productivity Guide 來了解更多的自動完成的類型以及 IDEA 已經幫你節省了多少時間(這個有點意思)
osx之前自帶java,windows不帶。eclipse的功能上有點弱,比如各種亂補全,idea的代碼提示智能很多。至於Joshua Bloch,高司令這些人早年似乎是用emacs寫代碼,現在好像高老師改netbeans了,你想想說用文本編輯器寫java,異常處理啥的,會死人呀。
主要是你說的這三個東西配合得實在太完美。
Vim就不細說了,Vim不是一個編輯器,而是一種操作習慣。用Emacs我傾向於用Emacs來干所有事情,用Vim我傾向於把所有東西都配成Vim。這主要是模式切換這個idea實在比較巧奪天工,完美解決了快捷鍵衝突的問題。無論是什麼編輯工具,只要支持Vim的鍵位方案,我就不用擔心基本的編輯操作問題,原生的快捷方式還基本不用怎麼改。比如我主要用Intellij,但偶爾去同事的機器上用下eclipse或sublime,只要開了Vim模式,照樣毫無壓力。而且只要你習慣了模式切換這種思路,用MacOS上的Keyboard Maestro的group activation可以玩出許多花樣,而不用擔心全局快捷鍵衝突。
比如說,在bash shell里用 set -o vi 命令可以把輸入命令行時的操作習慣改為vi風格。比如說按Esc I回到行首,Esc A則移動到行尾。此外在命令行上按Esc v可以打開Vim編輯器來編輯當前命令行上的命令,對於輸入一些長命令非常方便。
MacOS上有獨佔神器Karabiner,不但提供了全系統範圍的Vim模擬器,還可以配出來幾百個額外的基於多鍵齊按的快捷鍵組合,與原本的基於轉義功能鍵(Control,Shift,Command,Option)的快捷鍵組合毫不衝突。
Mac 下有什麼軟體能夠極大地提高工作效率? - 知乎用戶的回答
Mac(OS X)有哪些冷門但是一但發現就無法自拔的軟體? - 知乎用戶的回答我一直試圖在Windows上用AHK實現類似功能,但還沒有找到可用的方案。
Intellij支持aceJump,這是eclipse所沒有的。
如何成為 IntelliJ IDEA 鍵盤流? - 知乎用戶的回答Intellij有比較完美的Vim模擬器,與eclipse上的vrapper各有千秋,但某些批量操作還是用原生Vim方便。而intellij支持在打開外部編輯器時傳入當前游標的行號和列號,我可以輕易配出一個一鍵開Vim方案,把游標定位到當前位置上。
ITeye - Java編程 Hibernate Spring AJAX Agile 敏捷軟體開發 ruby on rails
用同樣的思路可以配出一鍵開sublime。eclipse的vrapper也能支持類似的一鍵開Vim,但eclipse本身卻不支持在打開第三方應用時傳入游標位置,你沒法同時配置一鍵開sublime。此外與Windows相比,MacOS上還有Shell多窗口管理神器tmux(當然Linux也可用)。你可以用tmux send-key命令非常方便地在外部應用中向其中某個shell發命令或模擬按鍵。舉例來說,我不喜歡在IDE內部啟動伺服器,就可以在Intellij里配一些執行外部命令的快捷方式,通過tmux send-key通知tmux在某個固定窗口啟動或關閉伺服器。這種方案的好處是,你可以在任意地方執行tmux send-key,又總是可以通過tmux快速找到一些長期運行的命令行程序的位置,而不是每次都開一個新窗口。
作為一個從Windows轉到LInux再轉到Mac,從eclipse到intellij,從ultraedit到sublime到emacs再到vim的碼農,一些使用習慣和軟體的不同我倒可以克服,但以上幾點帶來的好處決定了已經回不了頭了。Mac OS 作為一個商業支持的*nix系統的吸引力自然不用說了。外觀設計現在可能有點爛大街,可當初絕對是概念產品。就像小時候看雜誌里的前衛設計似的,即使沒用處你都想買一個,更別說這麼實用的東西了。用vim的肯定都是命令行,vi可以說是安裝率最高的編輯器,沒有之一,連同為神器的emacs都比不上它。流行性決定使用率。你手指夠長的話,一隻手根本不用動就能完成操作,有的人可能覺得寫代碼不像打字,快不快影響不大,但是那種只用鍵盤操縱電腦的感覺是無可替代的。至於這個IDE沒用過,但是eclipse用過,實在是太大了啊。。。跑的慢不說還時不時崩潰。。用的欲哭無淚。。所以用其他IDE就不需要什麼理由了吧
用了兩個月idea還是換回了eclipse。沒覺得ec很low,放棄idea也只是覺得個性不合。
本人很懶,也有人說是低調,但我真的很想說我是真的很懶... 也不為證明自己逼格多高,因為我懶得證明。不管是mac,vim還是IDEA在我眼裡都是個工具而已,工具嘛,好用,功能強大,人性化是最主要的 其次嘛,得長得好看不是,mac嘛。不管是mac的系統還是外觀都是一流的,功能強大,界面美觀。vim嘛,雖然界面不咋好看,但是功能強大呀,強大到可以無視其界面哈 從Eclipse換到IDEA雖然當時很難上手,一旦上手就拋不開了,非常好用,用過都知道,回頭再看eclipse感覺瞬間土掉渣了,至於為什麼ubuntu和mac os呢,這就是個人愛好了,ubuntu東西實在太雜亂了,太多了,對於有潔癖的程序員真的受不了。mac os相對就乾淨多了 還有就是很現實的東西了,資金不夠呀,要是你不在乎那1w多塊錢那就mac吧,最後說下windows,程序員的話,用這個東西玩玩遊戲就行了
匿名用戶的答案已經修改,稍微好了一點。提升知乎的社區質量,需要大家共同來努力,包括提問者和回答者。
------那個匿名用戶的答案,反對加沒有幫助,沒有一點乾貨,誰在刷存在感,誰low,純屬自己打臉的答案,匿個名就不low逼了么?知乎的社區,論壇性太重,實在不嚴肅。------Intellij IDEA,作為一個java的IDE,比eclipse智能很多,號稱全世界最智能的IDE,不是蓋的。Jetbrains做的resharper(Visual Studio的增強插件),VS被各種微軟粉奉為神一樣的IDE,但對resharper也是一致好評,微軟內部是買了resharper的license的,很多員工在使用。所以這個公司在IDE方面的產品,可以說是同類產品無法企及的高度。我當年離開eclipse,是因為其啟動慢,架構臃腫,就拿最簡單的裝插件重啟這件事情,非要弄一個不重啟直接應用更改,結果一用就崩潰,讓人深刻的感受到了這個產品的腦殘。最近對eclipse有印象是其4.2的logo實在是太丑了,不能直視。
對於eclipse技術上的評價,我這麼多年來的看法是,當年的incremental java compilation,是一個創舉,也是它能夠火起來的最重要原因。但是在那之後,沒有任何創新,吃老本吃到現在,所以逐漸被淘汰,連老東家也不要它了。包括過時的OSGI技術,3年前還如火如荼,當年在實習的時候還用過,現在看來,只是一個過分重量級的模塊化系統。當年scala早期的時候,IDE很差(IDEA相對好一點,但也很差),那些主管scala的人選擇了eclipse去開發scala-ide,就是看中了eclipse的增量編譯,現在證明是一個錯誤的選擇,現在的scala-ide,增量編譯非常卡頓,甚至需要把自動編譯關掉,需要的時候按Ctrl+B編譯,這就完全的變成了IDEA的編譯方法。
後來換了mac之後也試用了eclipse,幾點非常不開心,
1. UI太丑,和OS X的原生漂亮風格格格不入。都知道eclipse的UI是用SWT做的,在windows下還算可以,因為windows的UI比較大眾化,適應性比較強,但是OS X的UI比較獨特,可以說在各個方面都是經過精心設計達到高度統一和和諧的一個模樣,eclipse用SWT模擬的原生UI就相形見絀,有一種東施效顰的感覺。我甚至懷疑SWT這貨除了eclipse還有人在用么。反觀IDEA,雖然是用Swing,但是在os x下完全沒有不和諧的感覺,新版本的UI越來越漂亮,這就是差距。(IDEA在windows下的UI實際很醜,而且字體渲染不好,但由於上面說的,windows的UI大眾化,所以看不出太大區別)2. Mac下的默認快捷鍵太難用,簡直反人類。感覺完全沒有根據mac用戶的習慣進行快捷鍵的個性化的定製,就是隨意拼湊的感覺。很多習慣的mac快捷鍵,比如Ctrl+A到行首,都不能用。有可能是因為設置沒有設對。但一個產品需要一個普通用戶來如此折騰的,產品經理都應該拉出去槍斃。3. 國內的網路下載插件實在太不能忍,IDEA最近也有這個問題。但是IDEA的插件管理系統很好,清晰明了,依賴關係基本沒有。eclipse插件依賴關係太過複雜,導致安裝一個插件要同時下載好多,更嚴重化了這個問題。Ubuntu實際也有這個問題,分包太細,太混亂,相比之下,Arch的包管理就很簡單。IDEA實際也有不少問題,內存佔用大,卡頓(這些問題主要是在開發scala的時候出現,所以一部分原因是因為scala插件開發的不好,事實上這個插件以現在的標準來看,確實不好,IDEA的原生java功能還是非常好用的,基本沒有任何問題,這就是親兒子和二等公民的差距)。縱觀jetbrains的產品線,這種類IDE的產品,已經做成了一個平台,知道平台和普通的IDE的區別么?就像當年中華小當家裡面,謝師傅看到小當家做出宇宙大燒麥的時候,說出的一句話:「對於我這種只把點心當點心的人,他的境界好像在千萬光年之外」。Jetbrains想在自己的平台上添加一個功能,一個語言,簡直太容易了,隨便弄弄,一個新產品就出來了。反觀eclipse,使用OSGI也是想把自己做成一個平台,所有組件可插拔,可以支持任意多語言,任意多功能,只是現實和理想是有差距的。eclipse圖謀太大,做的太差。這裡面有商業模式的原因,有歷史包袱的原因。
另外,作為一個mac用戶,我不用vim,原來習慣導致的,並且gvim的UI實在不敢恭維。Sublime不錯,簡單好用。而且這種編輯器,和IDE是完全不同的定位,編輯器是不能用來寫Java或者Scala這種語言的,最多寫寫腳本。這也是上面說的,從對程序語言的理解角度,Jetbrains的平台,對於這些只能對程序做正則表達式parsing的編輯器來說,境界在千萬光年以外。剛發現題目已經被改掉了,不是這個low那個low的了,我之前的吐槽就沒有太大必要了,謝各位抬愛
另,我看到別的答案有針對我說的記事本的問題,我澄清一下,我不是想說效率不重要、記事本也很好,也從來沒有否認好的工具可以大幅提升生產效率,但關鍵在於每個人對好的工具的標準是不一樣的,本來就是蘿蔔白菜的東西,居然互相歧視,甚至於有的人想通過使用什麼工具去彰顯逼格,最後很容易淪為口水戰,還嫌知乎口水戰不夠多嗎?還是希望少提點這樣的問題吧
-----原答案分界線-----
牛逼的人通過寫過哪些軟體來刷存在感
low逼的人通過使用哪些軟體來刷存在感James Gosling、Doug Lea級別的人用記事本寫也牛逼一天到晚覺得用這個low用那個low的人就算是用lisp machine也掩蓋不了low逼本色要看你是做什麼開發。和 Unix 相關的開發,或者需要用到 Unix 下面工具(Unix 下面開發用的開源小工具實在是多且方便),那麼用 Mac OS 是相當方便的,可以說 Mac OS 是基於 Unix 的,對用戶最友好的系統。
至於開發環境,自己什麼用的習慣就用什麼了。有一個標準就是:
當你覺得你羨慕別人的開發環境的時候,你就可以考慮換一個了。Vim 作為老牌的編輯器,其實是非常非常強大且好用的,純鍵盤操作(偶爾觸摸版輔助)熟練了以後比鍵盤+滑鼠快很多的。很顯然,這不是盲從
因為作為程序猿,能夠駕馭不同的操作系統,駕馭不同的開發環境,這是你能力的展示
你靠這個吃飯的誒,你好意思說你不會嘛?
如果你會,假設這個前提成立,那你只要審美正常一點,自然就會覺得macosx好看啊
會覺得idea好看啊,如果你也覺得好看,在你有選擇的前提下,你為啥要委屈自己呢?
而開發效率高不高跟你搞不搞得定這些有很大關係
我們有理由認為,連macidea都搞不定的程序猿,談不上什麼開發效率
這麼簡單的東西,連這個都搞不定,還指望說搞定高級一點的輪子?
呵呵,不太可能的,估計這小子還在用什麼sts之類的慢得要死的開發工具
同樣道理,linux和vim也是一樣,雖然我也不喜歡vim和linux那種黑屏
但是伺服器你搞好看的gui有什麼意義?木意義嘛,所以用vim搞搞就是了
gui怎麼說也是吃資源的東西,就不要浪費錢在這上面了
所以你看到沒有,這一切都是針對性的優化
用mac因為我們想讓gui好看一點,在開發時候讓自己舒服一點,用idea也是同理
用vim是因為不想浪費錢在gui上,生產跑的伺服器要gui幹嘛?沒人看的
而你不會用這些東西的時候,你自然只能幹瞪眼
大多數人的編程能力之低 根本輪不到拼開發環境
我給小夥伴們推薦Idea,他們沒有想用回伊克力破斯的,jvm平台指定ide
一個工具low不low那要看從哪個角度去看。 程序猿是一個追求辦事高效率的「弱勢群體」,原本需要挨個去改的文字現在只需用一個正則、一個域替換就能搞定;或者原本需要挨個字母去敲現在一個智能提示就可補全一段代碼。這自然會幫程序猿省了不少事,久而久之就會覺得這個工具高大上,我要做的一些事它都替我做了。而且越能有效提高效率的工具就越覺得它高大上。可能有人會說有的工具,比如說vim的學習曲線很陡峭啊,但是別忘了,程序猿還有一個特性,那就是愛折騰,並且只要你折騰出個所以然來同行就會覺得你牛。 當然在其他人看來只要聽說你是程序猿就覺得你很low,你用再高大上的工具也枉然。
被逼的學vim。在公司伺服器上改代碼。你說不用vim還用什麼。
不管什麼選擇,都跟技術水平有關,,,,遠了就不說了,你能想像在一個沒有編譯器的機器上寫個程序並運行么?我就知道有這樣的人,,情急之下直接敲 0/1。你覺得你要是行的話,用什麼都不算個事兒。
作為一個長期使用*inx系統的人,我絕對不會覺得一件工具能幹好多事情是個多麼酷的事
1.OS X對於普通Linuxer來說是一款非常華麗的系統 2.OS X的開發者為該系統開發了許多優秀的軟體 a).高效工具: Alfred b).集成了許多優秀的編程工具:clang、 vim、emacs3.偉大的手勢操作 非常適用於筆記本用戶 【完全可以用鍵盤和觸控板完成一切工作 提升效率】4.Vim一款強大的編輯器 在處理大量文本時候體現 你只需要幾條script就搞定 用鍵盤的方式定位 遠遠比滑鼠點來點去要效率 【缺點 Vim適合對shell及vim script有一定了解的人使用】5.Idea 速度上比Eclipse快 【單純這一點 就可以讓Eclipse滾粗 BTW:Eclipse有的 Idea都有 為啥不用快點的呢?】6.Vim+Idea 【完美的填充了Vim的學習成本、Idea有IdeaVim插件模擬了Vim KeyMap 對於一個鍾愛鍵盤的用戶來說 使用Vim的HJKL 來移動游標是再好不過的事 配合Idea友好的快捷鍵同樣可以高效率的工作】
推薦閱讀:
※擁有一台 MacBook Air 是什麼樣的體驗?
※Mac下有二進位查看/編輯器嗎?
※如何解決OS X在低解析度下字體發虛的問題?
※如何評價 7/29 中國 Windows 10 發布會上 DJ 使用的是 MacBook Pro?
※OS X 10.8 和 iOS 6 自帶的中文輸入法有哪些應當修正的問題?
TAG:macOS | MicrosoftWindows | Java | Eclipse | IntelliJIDEA |