見周圍的人編程都是用一些IDE工具, 比如visual studio或者Eclipse等, 但是我覺得用vim或者emacs完全可以啊。
想問下大家IDE相對於傳統經典的編輯器vim(emacs)有哪些優點。 我不想讓大家在這裏為IDE和vim(emacs)發生口水戰, 因此隻想讓喜歡IDE的人說說IDE相對於vim(emacs)的強大之處即可。
如果你認為IDE和vim(emacs)在不同的場合發揮作用不一樣, 我也歡迎您回答。
ringa_lee
IDE可以為你把你經常做的繁瑣事情提供捷徑。並且針對具體的語言或框架有自己的最佳化。
例如我寫Java Code常用Eclipse和Intellij來完成重構,在某個函數的作用域內修改變數名字,找到實現某個interface的所有類,自動產生JavaDoc的註釋,讓它自動幫我分析可以但是忘記加的annotation例如@Override,甚至修改類別名稱並且同時修改檔名,修改類別所在的套件同時移動檔案等事情。
像我寫Objective-C,我要使用UIBuilder來設計xib或storyboard檔案…
這些事情,不是emacs或vi做不到,只是對某個特定語言的特定功能,肯定還是IDE支援的更好。
Generality和Speciality不可兼得。
當然,寫C++和Python(非Django)程式碼我通常都用vi。我自己的原則是,工具是不挑的,榔頭拿來敲釘子,剪刀拿來剪紙,在有些時候,剪刀也可以敲釘子,但是工欲善其事必先利其器的一點就是,選好用具,然後用的非常熟悉,非常熟悉,非常熟悉。
通俗一點的解釋吧,你這個問題跟「人類為什麼要坐車?」有異曲同工之妙。
人類有一雙腿,穿街越巷,上山爬樓,無往而不利啊,零油耗,啟動快,無死角,為什麼還要坐汽車呢?
為什麼呢?
有高科技提升程式設計生活質量,為什麼不用用?
好了,我知道有人又會想了:不依賴IDE,熟練使用2B鉛筆和VIM/Notepad寫程式不是程式設計師必備的素質嗎?
素質是一回事,工作習慣是另一回事。一天徒步10公里是不是一個每天一擼的正常青年必備的身體素質?顯然是的,可是你看過多少人每天徒步10公里去上班?
Notepad就像你的雙腿,vim/emacs就像一輛摩托車,它有馬達、輕便、排氣量小、油耗低、載個妞上個班都不在話下、百公里加速快、還便宜。 IDE就像一輛家轎,它比摩托車更舒適(有天窗有點煙器)、更安全(有氣囊能裝兒童座椅),遺憾的是,購買和養護成本也更高、更笨重、害怕塞車。
而像Eclipse這樣的IDE儼然一輛東風卡車,本質上是輛貨車;車廂加個頂安個床,它就是房車;裝兩排座位它就是運兵車;拉兩台發電機它就是發電車;拉一台無線電中繼器它就是緊急通訊保障車。
如果轎車跟摩托車一個價位、大家都有一層車庫、城市不塞車、到處都是停車位、沒有轎車進不去的小胡同,誰還用摩托車?正是這些陰晴圓缺的場合存在,才導致了編輯器(vim/eclipse/editplus)和IDE交相輝映。
順便說一下,jetbrains公司出的IDE都是神器,物美價廉,你值得擁有,哈哈
vim(emacs)是從傳統繼承而來,console時代過來的程式設計師感覺比較親切、習慣的一種編碼工具。而IDE是隨著圖形化介面而發展出來的直覺、簡單的編碼工具。 沒有孰優孰劣之分,只有熟悉與否、習慣與否、個人使用高效與否。
相比vim(emacs)更多的透過快捷鍵/命令的方式來快速達到自己的編碼目的,IDE提供一種直觀/可視化命令的方式來完成編碼。單純的就編碼速度,方便與否我覺得二者不相上下。可能有些人認為IDE能提供豐富的擴展,但是vim(emacs)只要你配置好,同樣不遜色多少。 除了這些,我覺得IDE的最大優勢:學習成本低。不要小看學習成本,企業歸根到底是要看到你的工作成果,對於程式設計師,最直接的展示就是你能快速完成程式設計工作。在GUI十分普及的今天,假設要求一個java程式設計師完成某一個編碼工作[前提條件:他對vim(emacs)和eclipse僅限於聽說,都沒有用過],誰先最適應程式設計工具,我想結果應該是Eclipse勝算居多吧! vim(emacs)要配置好不是一件很簡單的事情,但是eclipse一打開,很多人應該就能差不多開始寫程式了。 此外,IDE的另一個很大優勢:專案整合管理。現在的IDE,類似VS,eclipse已經不只是一個程式設計工具了,而是一個包含專案生命週期管理,統括工程創建、編碼、編譯、整合部署、發佈等一系列專案管理的大殺器 。而我竊以為這才是IDE最吸引我的地方。
用編輯器還是IDE和編輯器跟IDE的區別沒有半毛錢關係,唯一有關係的是你想達到什麼樣的境界?
現在隨便考個駕照可是很容易的事情,街上隨便一個賣菜的大媽說不定都有C照,這完全是拜現代汽車上的各種先進"自動化"所賜.以前的司機考個駕照可是很麻煩,保養維修車輛是必須課.在4S店數量基本趕超公廁的今天,有幾個司機能搞得明白離合器是個什麼構造?就更別提維修什麼的了.但是你能說現代誕生的司機比以前的更屌?還是以前的司機不如現代司機?
當然在基礎建設高度發達的今天,你可以說"我幹嘛花好幾年去學修車?我只是想開車而已,那些學修車的時間我可以放到如何更好的駕駛上".但是如此你便不能脫離那些基礎建設圈了,如果所有已知的路你都走過了,你想去未知的地方,沒有4S店的地方,怎麼辦?從頭開始學修車?
你想一輩子開車在別人畫的圈圈裡繞圈圈的話也倒無所謂.不過如果你想當晉身頂級司機的行列- 賽車手,你就不能一直依賴什麼自動擋,什麼ESP,什麼倒車雷達.而且賽車手是不開量產車款的.
IDE就是整合開發環境,而配置好的vim和emacs與IDE無異爾。
Eclipse這種企業級的IDE需要花在配置上的時間少,但是自由度低。 vim和emacs這種輕量級的工具配置起來相對複雜一些但是自由度更高。
對這兩種類型的工具的偏好因人而異。沒有最好的工具,只有最要的程式設計師,對吧?
我最眼紅 IDE 的一件事情,WebStorm 可以支援 JavaScript (最新版已經支援 CoffeeScript ) 的重構,我的 Vim 不行,我的 Emacs 也不行。
你或許會說我寫個插件也能支持,這個我已經做了,但是分析文本和分析語義的重構工具是不一樣的對吧?
IDE可以為你把你經常做的繁瑣事情提供捷徑。並且針對具體的語言或框架有自己的最佳化。
例如我寫Java Code常用Eclipse和Intellij來完成重構,在某個函數的作用域內修改變數名字,找到實現某個interface的所有類,自動產生JavaDoc的註釋,讓它自動幫我分析可以但是忘記加的annotation例如@Override,甚至修改類別名稱並且同時修改檔名,修改類別所在的套件同時移動檔案等事情。
像我寫Objective-C,我要使用UIBuilder來設計xib或storyboard檔案…
這些事情,不是emacs或vi做不到,只是對某個特定語言的特定功能,肯定還是IDE支援的更好。
Generality和Speciality不可兼得。
當然,寫C++和Python(非Django)程式碼我通常都用vi。我自己的原則是,工具是不挑的,榔頭拿來敲釘子,剪刀拿來剪紙,在有些時候,剪刀也可以敲釘子,但是工欲善其事必先利其器的一點就是,選好用具,然後用的非常熟悉,非常熟悉,非常熟悉。
通俗一點的解釋吧,你這個問題跟「人類為什麼要坐車?」有異曲同工之妙。
人類有一雙腿,穿街越巷,上山爬樓,無往而不利啊,零油耗,啟動快,無死角,為什麼還要坐汽車呢?
為什麼呢?
有高科技提升程式設計生活質量,為什麼不用用?
好了,我知道有人又會想了:不依賴IDE,熟練使用2B鉛筆和VIM/Notepad寫程式不是程式設計師必備的素質嗎?
素質是一回事,工作習慣是另一回事。一天徒步10公里是不是一個每天一擼的正常青年必備的身體素質?顯然是的,可是你看過多少人每天徒步10公里去上班?
Notepad就像你的雙腿,vim/emacs就像一輛摩托車,它有馬達、輕便、排氣量小、油耗低、載個妞上個班都不在話下、百公里加速快、還便宜。 IDE就像一輛家轎,它比摩托車更舒適(有天窗有點煙器)、更安全(有氣囊能裝兒童座椅),遺憾的是,購買和養護成本也更高、更笨重、害怕塞車。
而像Eclipse這樣的IDE儼然一輛東風卡車,本質上是輛貨車;車廂加個頂安個床,它就是房車;裝兩排座位它就是運兵車;拉兩台發電機它就是發電車;拉一台無線電中繼器它就是緊急通訊保障車。
如果轎車跟摩托車一個價位、大家都有一層車庫、城市不塞車、到處都是停車位、沒有轎車進不去的小胡同,誰還用摩托車?正是這些陰晴圓缺的場合存在,才導致了編輯器(vim/eclipse/editplus)和IDE交相輝映。
順便說一下,jetbrains公司出的IDE都是神器,物美價廉,你值得擁有,哈哈
vim(emacs)是從傳統繼承而來,console時代過來的程式設計師感覺比較親切、習慣的一種編碼工具。而IDE是隨著圖形化介面而發展出來的直覺、簡單的編碼工具。 沒有孰優孰劣之分,只有熟悉與否、習慣與否、個人使用高效與否。
相比vim(emacs)更多的透過快捷鍵/命令的方式來快速達到自己的編碼目的,IDE提供一種直觀/可視化命令的方式來完成編碼。單純的就編碼速度,方便與否我覺得二者不相上下。可能有些人認為IDE能提供豐富的擴展,但是vim(emacs)只要你配置好,同樣不遜色多少。
除了這些,我覺得IDE的最大優勢:學習成本低。不要小看學習成本,企業歸根到底是要看到你的工作成果,對於程式設計師,最直接的展示就是你能快速完成程式設計工作。在GUI十分普及的今天,假設要求一個java程式設計師完成某一個編碼工作[前提條件:他對vim(emacs)和eclipse僅限於聽說,都沒有用過],誰先最適應程式設計工具,我想結果應該是Eclipse勝算居多吧! vim(emacs)要配置好不是一件很簡單的事情,但是eclipse一打開,很多人應該就能差不多開始寫程式了。
此外,IDE的另一個很大優勢:專案整合管理。現在的IDE,類似VS,eclipse已經不只是一個程式設計工具了,而是一個包含專案生命週期管理,統括工程創建、編碼、編譯、整合部署、發佈等一系列專案管理的大殺器 。而我竊以為這才是IDE最吸引我的地方。
用編輯器還是IDE和編輯器跟IDE的區別沒有半毛錢關係,唯一有關係的是你想達到什麼樣的境界?
現在隨便考個駕照可是很容易的事情,街上隨便一個賣菜的大媽說不定都有C照,這完全是拜現代汽車上的各種先進"自動化"所賜.以前的司機考個駕照可是很麻煩,保養維修車輛是必須課.在4S店數量基本趕超公廁的今天,有幾個司機能搞得明白離合器是個什麼構造?就更別提維修什麼的了.但是你能說現代誕生的司機比以前的更屌?還是以前的司機不如現代司機?
當然在基礎建設高度發達的今天,你可以說"我幹嘛花好幾年去學修車?我只是想開車而已,那些學修車的時間我可以放到如何更好的駕駛上".但是如此你便不能脫離那些基礎建設圈了,如果所有已知的路你都走過了,你想去未知的地方,沒有4S店的地方,怎麼辦?從頭開始學修車?
你想一輩子開車在別人畫的圈圈裡繞圈圈的話也倒無所謂.不過如果你想當晉身頂級司機的行列- 賽車手,你就不能一直依賴什麼自動擋,什麼ESP,什麼倒車雷達.而且賽車手是不開量產車款的.
IDE就是整合開發環境,而配置好的vim和emacs與IDE無異爾。
Eclipse這種企業級的IDE需要花在配置上的時間少,但是自由度低。 vim和emacs這種輕量級的工具配置起來相對複雜一些但是自由度更高。
對這兩種類型的工具的偏好因人而異。沒有最好的工具,只有最要的程式設計師,對吧?
我最眼紅 IDE 的一件事情,WebStorm 可以支援 JavaScript (最新版已經支援 CoffeeScript ) 的重構,我的 Vim 不行,我的 Emacs 也不行。
你或許會說我寫個插件也能支持,這個我已經做了,但是分析文本和分析語義的重構工具是不一樣的對吧?