為什麼前端工程師很少用 Visual Studio (Windows)?

我自己從 Visual Studio 2005 開始就一直把 VS 當做開發主力, 中途嘗試過諸如 Aptana, WebStorm, 最後還是默默地改了回來. 現在是 Sublime + Visual Studio 輕重搭配, 之所以突然想到來問這麼個問題, 是因為剛剛在 Mac 上試玩 WebStorm 9, 然後失望而歸 (一直在尋找 Mac 上 VS 的替代品, 因為手裡只有一台續航夠的 Air, 因為 iOS 開發需要買的, 然後 Mac 上 Win 的觸控基本不能用, 目前主力機型是 TP 430s)...

我眼中 VS 作為前端開發工具最大的亮點莫過於運行時的 JavaScript 自動完成提示 (也就是說 VS 會把你的 JS 代碼在後台默默執行, 然後給出準確的結果, 最早好像是出現在 VS 2008), 還有 JavaScript Intellisense API (最早出現在 VS 2012), 可以自定義提示 (比如刪減自動完成條目, 更改自動完成圖標, 改變定義位置等等). 原來還沒有 TypeScript 的時候我有個叫 VEJIS 的項目, 就充分利用了這個 API, 實現了非常豐富的提示. 參考 VEJIS - Typed JavaScript Programming (項目已經沒有維護了, 所以不算廣告吧, 只是展示下 VS 的智能提示有多強大.)

很多貼心的小細節, 比如 HTML 文件中修改元素 tag 時, 配對的 tag 也會自動修改. 輸入類似 ; } 等符號時, 會自動格式化當前行或者塊. 還有比如全局搜索, NuGet 包管理...

更多其他 IDE 或者編輯器也有的我就不提了.

另外插件方面, 除了與 WebStorm 同廠的 Reshaper 之外, 還有免費開源的 WebEssentials. 腳本壓縮, 合併; CSS sprites, image to base64, CSS 兼容性提示, 類似 Emmet 的功能等等一應俱全. 也就是說, 對於絕大多數前端來說, 不需要花一分錢就能用上 Visual Studio Express + WebEssentials.

但為什麼鮮有看到前端用 VS 的?


VS如果單單寫HTML,JS頁面確實有點太重了,而且VS上對於JS的智能提示也沒有做到多好

JS而言也沒有什麼需要智能提示的吧。

以前寫.NET的時候就是JS就屬於項目的一部分,就直接在VS里寫了,還可以TFS版本控制,不過當時也是C#,JS從頭搞到尾的。沒有前後分離。

現在在linux下搞,有個sublime text,有個vim加上chrome就夠了。


開那麼大個軟體就是為了寫寫JS我感覺對不起微軟


可能是一些前端還不知道VS可以寫前端代碼。

比如我,還以為VS只是用來寫C、C++等等的IDE。


怎麼沒人用brackets?


1.價格vs professional $1199。大概7000rmb。

vs ultimate $13299 大概8萬rmb

notepad++ $0

sublime $70

2.啟動

VS重,啟動慢,別的2秒,它要20秒左右


只因為覺得它佔地兒,要是跟以前一樣得寫win應用,估計就開著它順手寫js什麼的了。

現在幾乎不寫桌面應用,vs 雖說習慣性裝了,但懶得開,太大太慢。

摺疊吧……


If you are writing front end code and need to rely on intellisense for your development, you might be over complicating the project, or are just not good enough with JavaScript yet.


vs2013 typescript 通吃web node app

i7 固態硬碟 打開大項目也就2,3秒。


除非你用Type Script,否則Javascript這樣的動態語言基本沒法做自動提示。Javascript因為語言的問題,在不使用其他注釋的情況下,是無法知道一個函數參數是什麼類型的,所以理論上也無法提示或載入文檔。

寫CSS和HTML的話IDE也幫不了什麼忙(很多編輯器有自動補全功能,但是和其他編程語言的IDE支持比起來,這個補全和自動對齊的必要性沒有那麼大)。

我之前為了遷就伺服器用PHP做了幾個網頁,考慮到VS並沒有很好地支持PHP也就只好用文本編輯器寫了,整個過程感覺並不顯著困難。

當然如果要寫大量的前端代碼,有IDE肯定是好的,只不過可能很多情況下,如果你不是框架的開發者,並不需要寫那麼多的代碼吧。


這跟有沒有錢讓後端跑Windows Server有莫大的關係。其實說什麼前端用MBP這才不是決定性因素。你去了一個公司,後端用Windows Server,前端肯定差不多是http://ASP.NET了。你用MBP沒問題,為了工作肯定要刷成Windows的。我們就有人這樣(逃


最主要是太重了吧


因為前端沒有多少工程師用 Windows 操作系統啦. 看看各種 Web 大會上大家清一色的 Mac 你就明白, 多數前端都是捧著 Mac + exVim: Home 輕鬆愉快地寫 Javascript. 並且超 Happy 地用著 Terminal 跑 Node.


最早期用過Editplus(速度快!),Notepad++(插件多),UltraEditor(可JS擴展)

然後換了Vim,感覺就那麼回事兒,折騰半天實現了IDE自帶的功能。只不過很多公司是SSH到Linux開發機,Vim都已經安好了。所以需要學會用Vim開發。

然後就改用VS2010了。因為以前做C++的,VS比較熟悉,而且2010後JS的智能提示做的很贊。很多人不喜歡VS這類重型IDE的原因基本是體積太大安裝費勁且(可能)盜版、啟動慢、佔用資源、用IDE看著土鱉。我解決的辦法就是上SSD以加快首次啟動速度(買筆記本前查好是否有mSATA,這樣可以SDD+機械硬碟,快速、容量都兼顧),加內存,不關閉VS,每次休眠(不是睡眠)。

出了SublimeText之後就一直用到現在。選擇它的幾大因素:界面好看、速度快、插件豐富、Python擴展。用來做前端開發各種功能恰好夠用

現在電腦里這幾樣都安了。我用Autohotkey為Editplus設置了全局熱鍵,用來快速預覽文件。打開一個幾十兆的二進位文件看一下文件頭很輕鬆。敲命令行時臨時改個文件,Vim最方便。

Windows下用AutoHotkey設置一些快捷鍵真的大大提高工作效率!

Alt+1 切換到(如果沒有啟動則打開)Sublime

Alt+2 切換到(如果沒有啟動則打開)Chrome

Shift+F1 打開剪貼板歷史

在Sublime窗口按下Win+E打開當前文件所在目錄

在Sublime窗口按下Ctrl+Alt+C,打開命令行並定位到文件所在目錄

在命令行窗口按下Win+E打開當前文件夾

在命令行窗口按下Shift+Backspace,返回上級目錄

Alt+R打開命令行

Alt+T打開任務管理器

Alt+B打開記事本

Ctrl+Alt+E最小化窗口

Cltr+Alt+R窗口最大化和非最大化之間切換

Win+F12打開hosts文件

Win+滑鼠左鍵,切換翻牆代理!

總之,工具是為了提高效率的。

用Vim「移動游標還只會hjkl」並不比「VS用Cltr+箭頭」高級。

FYI:

Practical Vim (豆瓣)

AztackAutoHotkey · GitHub


搞前端很大部分用MAC,其次很多基於node的自動化工具,沒必要搞個這麼重的vs,最後我寧願使用webstorm,真正的業界良心


我用。。。

但是我真不想用。

而且我也不能算正宗前端。

碰到可以不用vs的地方還是趕緊用sublime寫。

因為在我機器打開visual studio大概需要半分鐘。

打開sublime大概需要兩秒。

而且js寫多了, visual studio卡的要死。。 (應該就是「強大的」智能感知弄的)。。。。

此外有個很關鍵的問題:visual studio最好的地方不在於編輯, 而在於調試。

而js么, 用vs寫完了我還是要用Chrome調。。。 。

題外話,express似乎是個人license。商用應該不行吧???


拋磚引玉:

第一,VS太重量級。

第二,大家都是Mac,OSX上跑不起來。

第三,JS有沒有智能感知我無所謂....(被逼的,主要動態語言準確的智能感知不太好做,所以yin神擼了Pysonar/Rubysonar來惠及大家)

最近我寫項目的時候是HBuilder+Sublime,寫.Net MVC的時候再上VS(寫C#誰不用VS誰傻)。


這次就不太同意輪子哥說法了。我們單位寫angular,寫響應式的sass就都是VS 2013外加各種小插件完成。

可能我們前端玩得不深吧,只有兩三個web app。但我也來談談使用VS 2013的理由。我們在build event 裡面添加script去編譯sass,並執行YUI去合併和壓縮。然後,用VS的git插件就直接commit + push了,如果需要merge HEAD, VS 的界面也很好用來查看對比。當Stash接收到新的commit,另一頭有bamboo就開始build 和 publish了,五分鐘之後這就發布回到自己的IIS了。當然,這裡繞了一圈,你也可以自己publish,但是bamboo作用是為了release的時候,接 dev/qa/staging 的。更重要的是,我們買了octopus的服務,這是個類似於docker的東西,自動就在虛擬 「公子今日相救的大德,永不敢忘。但我心早屬他人,盼你言語有禮,以留他日相見的地步。」 哈哈 哈哈 呵呵。 安裝程序,設置IIS等等。。。

我不知道這個這一套要多少錢,有時候我們和系統工程師設置這一切環境也鬧心的。但設置好之後,你就專心寫sass和js就好了。

個人認為,對於環境(如瀏覽器)敏感的前端技術,這樣的發布系統和管理是最穩妥的。


其實大部分一個vim或者emacs絕對足矣


既然你這麼說了。。。

我也一直很奇怪為啥大部分人都是用js寫js,我真的是想到就蛋疼,明明有那麼多選擇


作為一個前端,在參與.net項目時,我都是把VS當作一個編譯工具來用的。

只有開機的時候跑一下,然後就切換到別的編輯器了。那些過於詳細的代碼提示對前端沒意義啊,再說,你能提示JS,還能提示CSS?提示了就一定是對的?


推薦閱讀:

只會切圖(div+css)的人職業稱呼是什麼?或者只會html能叫前端工程師嗎?

TAG:前端開發 | JavaScript | 前端工程師 | MicrosoftVisualStudio |