linux真的比windows更適合web開發者作為開發環境嗎?

本人Java的後端程序員,兼做一些前端的工作。我嘗試用使用Ubuntu作為開發環境。雖然克服了中文輸入,QQ,office等問題。但是還是發現linux對我而言不算太友好。

我發現真正使我困擾的是linux平台下一些開發工具的缺失,例如Mysql客戶端GUI工具,windows下有heidisql這種免費又好用的,而linux下呢,只能使用官方的Mysql Client GUI,不僅難用,還巨卡。另外,最不能忍的是linux下沒有像Fiddler這樣免費易用強大(例如方便的替換第三方的JS文件為本地文件,linux下的mitmproxy雖然也很強大,不過還是不能方便的文件替換,只能通過python腳本擴展實現,對於非python程序員學習成本還是過高了)的HTTP代理工具。

我細想,無論哪個平台,其實生態環境是最重要的,雖然目前linux平台在伺服器市場所向披靡,但是其實就開發環境而言,目前從數據上來說以win作為開發平台的用戶顯然多於linux和mac。所以就開發生態系統而言,win目前應該還是領先的,win下各種開發工具應有盡有例如問題中提到的Mysql資料庫GUI客戶端,http中間工具,還有FTP工具等。無論收費的還是免費的,ubuntu下都質量和數量都比不上windows下的。

誠然,linux環境下開發使得與生產環境高度一致,不過這一點好像對java這種跨平台語言來說沒什麼區別吧?想到的優勢貌似只有shell?不過其實通過cygwin也能很方便執行bash腳本。還有可能對於ruby這種linux友好的開發語言來說可能linux才比較適合?那麼是否可以說win還是比lin更好的web開發環境?(Mac最好?)

以上是本人使用linux作為開發環境以來的一些思考,不知各位看法如何?求討論!

補充一下,其實要比較二者的,主要是就是為了找到最有效率的平台嘛。無論GUI工具還是命令行都不是問題,哪個效率更高,哪個更合適自然用哪個。大家放著windows更漂亮的GUI不用去用linux就是為了提高效率,所以我覺得才有必要糾結是否Linux比windows更適合web開發,不能白白折騰嘛。目前我遇到的一些問題就是發現linux下由於一些開發工具質量問題無法提高效率,比如Mysql客戶端,感覺表那麼多,而且經常需要先查詢,後修改,不用GUI工具總不現實吧。目前我就沒發現linux下有好用的免費的Mysql客戶端,只能通過wine使用HeidiSql。


題主你看在Windows的Ubuntu子系統出來之前,這幫人都用mac的,你就應該明白個大概了。

再說了,裝個虛擬機、弄個共享硬碟來測試你的程序其實也是很方便的,並不需要真的本地跑起來,也可以正常的調試。


使用Linux關鍵是真正理解自由軟體的精神,達到那個境界就無往而不利了。

會Vim或Emacs或者兩者都掌握可以算是第一步(你也可以從其他強大的軟體開始,比如git, bash)

給你心儀的開源軟體積極報bug和提交補丁必要的修鍊過程。

大多數人的問題是跳過了上述的修鍊過程.想走捷徑,結果反而走了最長的彎路.

多花時間在深度上而不是廣度上.自由軟體的精神都是一致的.一旦你精通一個軟體,其他軟體自然都掌握了.

這裡是個例子,順便也說明了Linux高手是怎麼用命令行的:

https://www.quora.com/What-are-some-time-saving-tips-that-every-Linux-user-should-know


linux被吹捧第一個是開源,第二個是命令行,第三個是免費伺服器


說實話,我也折騰了一段時間了,最終還是覺得windows其實更適合開發,因為可用的工具多。Linux更適合做伺服器


直截了當地回答:如果你不是nix廚的話,不適合開發,只適合託管。你把工作在你熟悉的平台上弄完之後上傳調試就行了。

生產環境下不用委屈自己學習可選的新平台。有空或者自己想提高了再慢慢琢磨。

PS 我的常規工作環境是arch, 寫C#的時候不還是得滾去Windows.


能支持通過腳本擴展功能的開發工具才是最高效率的。


vagrant 不是挺好用的么


因為你應當用debian


以前花了很多時間來調教 Window 開發環境:

  • 資源管理器:Clover,Listary,everything
  • 終端:cmder
  • 瀏覽器:chrome
  • 編輯器:sublime
  • HTTP 代理工具:Fildder
  • IDE:Eclipse,Webstorm
  • 。。。還有很多其他開發工具,沒辦法,太喜歡折騰了

後來因為要用 node 的關係,而這貨在 window 不可避免的會碰到各種各樣奇怪的問題。而且,那時候 npm 還會經常遇到長目錄的問題,於是乎轉 Linux 作為自己的開發環境。 經過一番折騰,發現 Window 上的大部分開發工具在 Linux 都還是找得到的。

  • 資源管理器:自帶多標籤功能,雖然沒有 listary 這樣的神器,但是我最常用的功能就是在當前目錄下直接查找文件,這個在 linux 資源管理器上也是自帶的。還有啟動程序也會用 lisray 來啟動,而 linux 的開始菜單完全可以自己定製,也可以非常方便的找到工具開起來。

  • 多工作區:非常喜歡 linux 自帶的這個功能,當然 window 下也有第三方實現就是了

  • 終端:再也不用忍受 cmder 的卡頓了
  • 模擬器/虛擬機:總感覺 linux 下的模擬器/虛擬機跑的更快,可能是因為 Genymation 啟動速度比 window 下快很多的錯覺吧

  • HTTP 代理工具:要替換文件可以用 NProxy,另外,Fiddler 應該也是支持 wine 安裝的,效果怎樣就不知了

  • 編輯器:Linux 的 sublime 不支持中文輸入法,雖然有一些解決辦法,但都不完美。後來發現了 Atom,也很用

  • IDE:window 有的 linux 也基本都有
  • 資料庫客戶端:一般用 MySQL WorkBench,可以勝任了。

總之,我覺得呢,Web 開發者在 linux 完全可以工作的。至於效率高低,還是要看自己對系統的熟練程度,以及自己對工作環境的配置。


其實說穿了,你會用Linux,或者熱愛Linux。自然覺得比起Windows好用,以及更加適合。

你不會用Linux,或者仇視Linux,或者仍然包含有對Linux過時的印象。

哪怕把cygwin mingw ubuntu子系統或者上虛擬機等一系列麻煩的間接手段都折騰一遍,也就是不會承認Linux更適合之類的言論。


Linux可以算得上的優勢在於他又是開發環境,又是生產環境,兩者一致,省得你踩到環境差別帶來的坑。

其他方面沒啥真正的優勢。LAMP換成WAMP還不是照樣用,還有一鍵安裝包呢。

不過我因為太喜歡Konsole下的VIM的字體和配色了所以我經常用kubuntu(逃


有些人就是喜歡歧視GUI,認為GUI程序一定就高人一等,naive啊!

就說MySQL吧,InnoDB GUI提示可以改成非Btree索引。請問你是直接改改試試,還是先看手冊?(手冊表示InnoDB不支持非Btree的索引)這樣的坑任何一個在生產環境遇到了都會把人整死的。

一個和官方文檔不一致的GUI實現要它有什麼用?然而你作為普通用戶,根本不知道GUI實現和官方文檔哪些地方有不一致,所以GUI客戶端最適合的用戶永遠是初級用戶,使用GUI客戶並不能促使用戶進一步了解系統。

Windows下做開發?VS全家桶以外真心不行,配個環境就想死了……


何必那麼糾結,同時搞個mac和windows,兩台機器也用不了幾個錢,哪個用的爽用哪個;反正我大學時候買的聯想,裝的Windows 7用的依然很happy,工作後買的mac刷知乎也刷的很happy;平時用hexo更新博客等大多數命令行操作都是在mac下操作,因為mac下終端好看,命令多,cmd那個黑框框真ji8丑,懶得折騰;用idea寫java服務端代碼加各種滑鼠點來點去的操作,我還是喜歡用Windows 7,不讓我用滑鼠加斷點調試我難受;別管那麼多,電腦是給我用的,讓我爽的,想寵哪個寵哪個,難不成讓朕去伺候這些機器?艹


作為毀天滅地的大神,告訴你兩點:

1.多做嘗試。

2.選擇適合你自己的,而不是隨波逐流。

3.任何方案都有優缺點。


如果部署在Linux伺服器上。

是的,Linux更好,因為和伺服器能保持一致。

在開發機和伺服器的環境保持一致能極大的減少各種部署的問題。


當然一台linux然後開ssh連鍋去


不認同。

當然Linux有一些得天獨厚的優勢,比如對Redis等中間件支持的更好,更接近伺服器環境。但是作為開發環境還是認為圖形+終端的搭配才是更適合的。

我也是Java後端碼農,公司的開發環境使用Win10,自己的開發環境使用的Mac OS,兩個系統上都配置了shell。目前的做法是,開發階段只要保證和伺服器使用一致的構建方式(主要是JDK,版本,編碼這些東西),對中間件(DB,queue等)使用主要是在Linux虛擬機上跑Docker。從宿主機上可以方便的使用客戶端工具連接這些中間件,同時這些比較依賴Linux的中間件又在一個比較接近原生的系統中運行。最關鍵的,保證了宿主機環境的乾淨,配置、啟動、關閉基本都是一鍵,省心。


具體還是根據實際情況, 沒有一定的結論. 說說我覺得linux更好的地方:

1. git , windows 下面的 git 沒 linux 上的快.

2. shell, shell, shell. 懂的自然懂, 什麼 ubuntu 子系統 on windows 都是玩票.

3. 由 shell 所帶來的工具鏈完善, 速度快. 和gui比, shell 帶來的優勢是靈活, 高效和自動化.

3. 開發環境和部署環境一致

4. 國產病毒, 垃圾網頁免疫. 系統默認很安全, 你不需要成為日常的系統維護員. ps: 寫完這條, 我估計又有人說什麼根據xx的評測報道, windows更安全之類的, 省省, 被利用這些漏洞攻擊的, 和windows下被垃圾網站/垃圾捆綁/全家桶攻擊比起來, 九牛一毛.

5. linux 和 下面的軟體大多不需要一毛錢.

6. 不管你信不信, 大多數語言對linux的支持更好.

7. 同上條, windows 在某些技術棧上存在很大問題, 比如 ruby on rails.

8. 使用linux工具鏈會把你拉近到開源一側的世界.

9. linux可定製更高. 不管是界面, 工具鏈, 甚至可以根據你的硬體進行調優.

0. 不過我覺得 mac 更高.


mysql的gui版本好像我只看到官方的,但是fiddler這個東西可以用curl來替代。

還是奉勸一下,學linux確實有好處,沒事自己玩一玩,理解一下操作系統,習慣了linux環境的話,確實命令行做操作比win快,但是如果說嚴重影響了你的工作效率大可以只學習部署,不用強迫自己用linux,畢竟學習一樣東西的最終目的是為了做事情,不是為了裝逼。


題主就是非常喜歡heidisql而已


推薦閱讀:

Linux 錄屏軟體有哪些?
微軟有沒有可能為Linux系統開發桌面環境?
Linux 下 halt, poweroff, shutdown 有什麼區別?
Linux 與 OS X 哪個更適合個人使用?為什麼?
如何使php5.4 , php 5.6, php7 環境 在一台伺服器上共存?

TAG:Web開發 | MicrosoftWindows | 編程 | Linux |