王垠當年提倡「完全用 linux 工作」,然而最近又發文挺 windows 噴 unix,這中間究竟經歷了什麼?
之前:2004 完全用Linux工作_cnBeta 博文精選_cnBeta.COM
之後:2013 談 Linux,Windows 和 Mac建議閱讀:為什麼 Linux 在桌面會失敗?
"當然我不是在這裡打擊 Linux 和 Mac 而鼓吹 Windows。這些系統的紛爭基本上已經不關我什麼事。我只是想告訴新人們,去除頭腦里的宗教,偏激,仇恨和鄙視。每次仇恨一個東西,你就失去了向它學習的機會。"
這句話才是他想要表達的意思吧?我發現很多人只看標題不仔細看內容就隨便下結論……
我不是他的粉絲,但是作為已經過了憤青年紀的人,想告訴一些網友,想要噴王垠,可不可以把他文章裡面所提到的演算法,論文,開源工具使用過,再來談,如果真正做到了,不知道你是否還能不經思考的說出無根據的有關他人人格的評價!
網上近年來有太多類似,linux為什麼佔有率不如windows,為什麼linux在桌面會失敗(說實話,這個論點真的是。。。要是遇到以前的噴子,能浩浩蕩蕩寫出個論文)。
linux和windows作為操作系統(operating system),就不得不考慮用戶的問題,linux最初並不是為了老人孩子都可以拿它生活娛樂的工具,反觀windows的定位呢?僅僅是了解了ubuntu的使用安裝,或者被其他一些發行版的X問題煩惱,沒有自己編譯配置調教過linux就出來噴linux的網民,拜託靜下心來。。。
----------------------------------------------------------------------------------------------------------------甚至不用細讀,就可以大致明白他的「大概中心意思」(或許有很多人看法和他本人想表達的不同)。
2004年的為linux正名的文章,王垠斷斷續續也改了幾次,有人開玩笑說是被人噴的,乾脆出來為win歌功頌德。
那麼仔細看看這兩篇文章,前者,寫的時間04年,XP在2001年末出來,而他文章提到的還是win2000。王垠在文章中提到了大量的開源軟體工具,lftp,ncftp,GnuPG,Vim,Emacs,ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk,LaTeX, ConTeXt,MetaPost其中涵蓋了編輯器,編譯器,窗口管理器,播放器,終端模擬器,計算器,繪圖工具,程序開發工具。。。
而這些工具在CLI下有太多好處:
舉個例子,你要是想要將一張圖片轉換格式,你在win下如何去做?打開一個圖形軟體,去菜單裡面尋找轉換格式?但是在linux下convert 2.jpg 2.png就可以完成,同時ImageMagick支持的參數可以批量裁剪、淡化、抖動、炭化、加邊框、圓角,旋轉,描述,水印,毛玻璃,截圖。。如果需要批量操作的話,你在win下怎麼去做?手動???????還有大量的編輯器,power-shell可供你選擇,調教。tab跳轉補全,論效率比X下快多了。
扁平化的美化圖標而這些自由,任你配置調教的工具的優秀之處,也是他想表達的,同時,還有一點,就是不教條的遵循別人所稱頌的規則,這在《清華夢的粉碎》by王垠_wfirene_新浪博客一文中也有所體現。(說句實話,無論是學術界,還是商界,我對王垠的這種思想的確有些認同)。再看看他對於unix的罵,我覺得應該看看這個王垠:Unix的缺陷_Linux社區,這篇文章對unix的評論可以說的上有理有據的吧,同樣,如果仔細看看這篇文章,你發現了和前者有矛盾的地方嗎?
無論任何工具,從一開始的相見恨晚到逐漸的愛之深責之切,其中過程就是你對它了解逐漸加深的過程,而unix作為科技上應用頗多的工具,一旦出現bug或者問題,影響的也許不只是個人。先談談他說的「Unix 命令行用戶界面的一系列罪狀」if ((options == (__WCLONE|__WALL)) (current-&>uid = 0))
retval = -EINVAL;
還有後面所說的文本流的思想,控制數據結構的字符集和表示內容的字符集屬於同一字符集。這使得重構數據時不得不面對語法分析問題,同時就添加了編寫語法分析器的任務。使程序在編寫上增加了難度。
其實王垠很多問題都是在向「完美」衝刺,優化更優化,然而現實的方案卻是利益均衡的產物,所以有的人對王垠的有些看法持有不屑態度。綜合兩篇文章,可以說,多年以後,王垠的銳氣終有收斂,能夠以一個相對客觀的角度分析問題,04年的文章則顯得鋒芒畢露,有些激進。
linux和win究竟孰優孰劣,神的編輯器和編輯器之神誰才是王者?諸如此類問題,你還在糾結嗎?那麼不妨放下你手中的東西,去深入的了解他,你也許就會發現他們都有著怎樣的優勢和不足,有哪些人性化的設計和反人類的思想,你就會知道哪一個才是適合你的,只有適合你的,才是(你心裡)最好的。
原文中的一句話:每次仇恨一個東西,你就失去了向它學習的機會。這跟青春叛逆之後趨向成熟一樣的。對事物的認識總有個螺旋上升的過程
贊同 @徐夢陽 的回答。客觀地說,人人都有中二病,都比較刻意去維護自己習慣的某套工具的地位,因為通過對這個工具地位的維護能體現自己在能力上超越了他人,達到了別人達不到的境界,這一點在程序員中尤甚。看來王垠似乎已經跳出來了,一些人還沒呢。
要學unix, 第一本要讀的就是&
- 即使是很多unix的東東也可以在windows上玩, 不信試試SUA, cygwin, mingw.
- 即使沒有原生的unix 工具(比如gnu screen或者tmux), 難道不能ssh -X 去開一個unix的程序嗎? (吐槽一下linux的gui, 如果你試過ssh -X開過一個叫blender的東東)
- 別說windows沒有alfred/spotlight , 試試launchy, everything
- 別說windows沒有手勢操作, 是你沒有觸控板而已
- 別說windows快捷鍵不合理, 去試試autohotkey.
windows主要是桌面系統, 所以和unix不衝突, 其真正意義上的對手是Mac OS X. 而且從win8看來, 大微軟已經有自己的方向了, 一個把Anders Hejlsberg, Leslie Lamport , David Blythe等牛人招致麾下的公司是值得尊敬的.
windows 8, 僅僅是M$的新起點而已.
作為桌面用戶, 其實不用糾結用什麼系統, windows下有個叫mobaxterm的免費遠程桌面神器. 不知道的可以看下面問題.exceed的替代軟體有哪些?
我的技術成長曆程 ——
- 微軟/蓋茨腦殘粉:電腦菜鳥、GUI 嗑藥者、CLI 恐懼者,裝過所有微軟官網可免費下載的個人/企業用軟體
- 微軟黑/開源傳教士:電腦高級用戶、維修技術員、系統潔癖/性能強迫症,善於 Windows 系統優化、封裝,從 Windows 命令行腳本開始喜愛編程,閱讀各種 UNIX/Linux 哲學、技術書籍/博客,折騰各種 Linux 發行版
- 開源軟體愛好者/ Web 開發者:前端工程師、Linux Deepin 桌面用戶,在 Linux、Windows 上優先使用開源軟體生活、學習、工作,自己寫的 Web 基礎庫全部開源,能正確看待開源/閉源、Linux/Windows 各自的優劣,綜合它們的優點,學以致用
自1998年開始學電腦、上網,DOS、Windows 95/98/2000/XP/7、共創/Fedora/CentOS/Puppy/Ubuntu/LinuxMint/LinuxDeepin/MIUI 等操作系統都用過,微軟官方 Office 97/XP/2003、WPS、Open、永中等各種 Office 辦公套件也都用過,Netscape 4、IE 4-11、Firefox、Chrome、傲遊1-3、360、楓樹、搜狗、UC、獵豹 等主流、馬甲瀏覽器基本都用過…… 個人感覺,在面向廣大非技術/專業用戶的產品這個角度,微軟還是一個很努力、很創新的公司的,的確值得大家尊敬~
比如 Windows + IBM 兼容機 —— 用操作簡單的圖形界面讓個人電腦真正在大眾中普及,昂貴、固執的蘋果機可不行;
再比如 M$ Office 2007 開始用的大按鈕工具欄 Ribbon 界面就看著舒服、用著科學,Qt 也有個高仿 Ribbon 的庫;Win8 開創的 Metro UI 更是富有創造性、藝術性、易用性,大家討厭它主要是對開始菜單的習慣改變太厲害……還有 Windows 註冊表,這種集中、統一的配置管理機制也被 GNOME 所借鑒,它的就有一個類似註冊表編輯器的 GUI 程序讓用戶可以統一管理 GNOME 桌面環境的配置~
而且,IE 最先在瀏覽器中應用 CSS,也發明了 & HTML 標籤(HTML 4/5 標準),它的 CSS 濾鏡還成為 CSS 3 國際標準重要組成部分的藍本;
JScript-WSH 算是 JavaScript 第一種本地程序開發的環境,WSC/HTC 也算是第一種讓 JavaScript 可以模塊化開發的技術方案吧?
HTA 算是第一種 JavaScript 本地客戶端應用開發的技術,比 GTK+ 的 Glade、Qt 的 QML、Node-Webkit 都早很多年~ ASP 其實只是個類似瀏覽器的腳本運行時,有封裝了強大功能的伺服器對象(類似瀏覽器的 Window 對象),各種支持 COM 介面標準的腳本語言(VBScript、JScript、Perl、Python 等)都能用它開發網站系統。所以,JavaScript 早就可以做生產環境的伺服器端開發了,而 Node.JS 的創新主要在於其創始人這個C語言高手用C寫的非阻塞I/O底層~ 上述 WSC、HTC、HTA、ASP 都可以多語言混編,這得益於 COM 組件技術,是很先驅的通用組件技術的商用實踐。這些實踐經驗又傳承到了 .Net Frameworks 中。.Net 應該是最早實踐讓多種語言運行在同一個虛擬機上的平台,Java 社區中湧現出的很多基於 Java 語言/虛擬機的新型動態語言(包括 Python、Ruby 等傳統動態語言的 Java 重實現)也就是最近幾年的事情,而且是很多不同的技術社區各自完成的。而 .Net 上支持的 VC++、VB、C#、JScript、F#、J# 等等都是微軟自己做成的,它們都能調用統一的系統對象(.Net 把 Windows 各種龐雜的 API 封裝得很簡單),被 .Net 的編譯器編譯成統一的中間位元組碼,用統一的 CLR 對象的介面來描述、運行、調試,讓多語言聯合開發、調試變得簡單。這也許就是為什麼開源界有些人執著於開發 .Net 的開源實現 —— Mono。
而關於 Windows 最為人詬病的安全性,我想早期的確是代碼寫得爛,千禧年之後則主要是 Windows 軟體開發生態很大、不專業而導致的進化慢 ——
DOS 內核時代的 Windows 沒有真正的多用戶體系,也就沒有真正的許可權體系,程序猿的開發完全沒為許可權而設計過,用戶程序和惡意程序都能完全修改系統的任何地方; Windows 2000 專業版開始,Windows NT 內核開始全面應用於個人系統,有了真正的多用戶許可權體系,但為了因為用戶習慣控制一切、兼容舊軟體,直到現在的 Win7/8,大家還是天天開著計算機管理員級別的賬號用電腦,強大的許可權體系依然對惡意程序無能為力,還得靠和病毒比誰更能控制系統的殺毒軟體來保障系統安全,永遠治標不治本……(UAC 也只是一個不用輸密碼的 sudo 授權補丁罷了,雞肋……)(我曾經在封裝 Windows XP 時試驗過,低許可權賬戶 360、QQ 等很多常用軟體都不能正常運行……) 這其實和 越獄後的 iPhone、Root 後不安裝管理軟體的 Android 是完全一樣的,病毒、木馬的天堂~而 UNIX/Linux 一開始就是 網路伺服器/電腦專家用的操作系統,許可權體系與生俱來,開發者都有清晰的許可權意識、知識,用戶提權運行工具 sudo 也很易用,就給人以天生免疫的錯覺。其實國內一些黑客大牛平時只用 Windows (Power) User 級的賬戶「裸奔」(不裝殺毒軟體),中毒了病毒也沒啥許可權搞破壞,只要官方補丁勤打,只需重啟後在安全模式中用 Administrator 刪掉中毒賬戶再新建一個同樣低許可權的繼續用就行了~
【注】http://JScript.Net 開發參見 —— 【原創】用 JavaScript 開發 微軟 .Net 程序(入門教程)我咋就沒看出來這兩篇文章有衝突的地方?
經歷了從小時候壞腦子,到現在腦子壞了的過程。古人早就說過君子不役於物,結果還是有這麼多人因為這些物而爭,真太不應該了。你看看從linux到windows之爭、VIM到emacs之爭、PHP到python之爭、ios到android之爭。能用就好。
恭喜王垠同學中二病畢業
不過,對用了十年 Linux,還覺得 Windows 開發工具好的品味,不發表任何意見,呵呵內心不強大的人容易走極端,特別是受到現實殘酷打擊後容易從一個極端走到另外一個極端。嗯,我猜的,不針對具體case。
的確很極端,看來之前他的老師,那個川大的老師對他的評價還是挺中肯的——他受不了挫折!的確,從他的字裡行間可以看出來,他算是很有天分的人,但是天分可能也是他的枷鎖!不過很欣賞他的一些觀點(雖然不一定全都贊同)和勇氣,比如對於教育的批判,比如對於linux比windows優勢的肯定,以及後來對windows的欣賞!等等等等!其實這就是個工具的問題嘛,無非就是用勺子還是用筷子的問題。你吃面肯定用筷子(老外除外,他們喜歡用叉子,不理解),喝湯肯定用勺子(除非你的湯夠濃)。上什麼山,砍什麼柴!把linux和windows放在一起PK,完全就是無稽之談!根本就不是一種東西,怎麼能用來比較?你說是筷子好還是勺子好?這不是廢話么,看你吃什麼了!可能有人說,那linux和windows都是操作系統啊,怎麼不是一種東西啊?那勺子和筷子還都是餐具呢!如果做後台伺服器,那肯定是linux比較好,畢竟穩定性是其主要作用的。如果是客戶端的話,還是windows好一些,畢竟是人用電腦,而不是電腦用人,這個時候易用性其主要作用!其實我就特別希望能在ext或者ext2這種不需要整理硬碟隨便的格式上運行win7/win2008(dream)。不過想想現在的win8,我又對M$有點沒信心了!做的就是一坨屎!
這個人比較喜歡胡扯別當真
因為他的時間開始值錢了而已,不想再在小事上浪費太多時間。和用iphone一個道理,明明自己一分鐘說不定就能賺幾千,有折騰軟體的功夫,都賺回來幾個iphone了。
簡單地說,現在沒人能完全使用Linux及其生態下的軟體完成工作,除非他是Linux系統管理員/開發人員——這幾乎排除了99%的人。
人都是在不斷前進的,一個人的想法也會隨著經歷改變,很正常的事情。
但這麼多年過去了,無論是過去挺linux的時候,還是現在挺windows的時候,文章字字句句都發自真心。這個社會上有幾個人活得如此真誠?以前覺得Linux用起來帥,現在覺得也就那樣。
我覺得,這廝終於能認識到,當年噴他的人是多麼的正確。當然,以他的自尊心,他肯定不會承認這個事實。
都是工具而已,稱手就行啊.為什麼要以極端的態度去評價誒,我也喜歡unix,開發上一直是mac,但打遊戲,看電影這些日常生活還是在windows上面.又不是世界上所有人都是程序員,產品定位不同,用戶定位不同,非要去掙個你高我低,就像去掙哪種鞋子穿起更舒服樣......無聊...
既然unix的設計很爛,為什麼伺服器用的都是unix或者linux?參考:Usage share of operating systems
在我看來,王垠最近的文章不過是承認當初的一些認知偏差而已,並沒有所謂「挺Windows噴Unix」,請題主平心靜氣看博文弄清「是什麼」再來問「為什麼」。一來覺得這種爭論無意義,二來不該不問事實來提問,三者知乎上關於系統優缺已有很多討論,怎麼也應先調查後提問,故,已舉報。
推薦閱讀:
※windows10內置的ubuntu怎麼樣?
※如何將Windows的C:user像Linux的/home一樣單獨掛載一塊硬碟?
※微軟為什麼用帶 BOM 的 UTF-8,造成和多數系統的不兼容?
※關於 llvm/clang 在 Ubuntu 下的安裝?
TAG:MicrosoftWindows | Linux | 王垠人物 | 工作 |