所有編程皆為 Web 編程

jopen 10年前發布 | 9K 次閱讀 編程

所有編程皆為 Web 編程

Michael Braude對Web編程大受追捧表達了他的不屑:

大部分人想去做Web編程的原因是,他們不夠聰明,因此也做不了別的事。 他們不懂編譯器、并發性、3D或類繼承。他們根本不明白我為什么要使用接口或者抽象類。他們不理解虛函數、指針、引用、垃圾回收、終結器、傳引用與傳值的 區別、C++的虛擬析構函數、或者C#的結構體與類之間的差別。他們對進程也一無所知。更別提瀑布、螺旋、敏捷了!他們從來沒看過需求文檔,也從來沒寫過 設計文檔;他們從沒畫過一張UML圖,甚至聽都沒聽說過有“順序圖”這種東西。

不過,他們確實有些手段:他們知道怎樣匆匆拼湊一個ASP.NET網頁,向數據庫發一些(寫得很糟糕的)SQL指令,填上一個數據集,然后用網格控件展示出來。他們也就會這些了吧。而且,他們在弄明白這些東西的時候,很可能也沒費多長時間。

因 此,請恕我冒犯——我才不想當Web程序員呢!我有兩個理由。第一,那對我太沒有挑 戰性了。第二,因為絕大多數互聯網公司的工程師都很糟糕,更準確地說,因為你不必去琢磨深奧的東西就能成為一個Web開發者。在我看來,互聯網正讓我們變 得越來越弱智。拼湊出一個網頁真的不需要你有那么聰明。

我真心希望大家都錯了,希望不必所有的東西都“轉向Web”。因為如果真這樣的話,將來的某一天,我要么會不情愿地接受這種無聊的轉變,要么只能換一個職業了。

Web開發沒有挑戰性,所以吸引了不夠格的軟件開發者?讓我們姑且不討論這種荒謬的觀點。即使過去真是這樣,如今的情況也已經不同了。

我其實不想在Michael面前扮演“壞人”,告訴他這個壞消息:對于越來越多的用戶來說,桌面應用軟件已經完蛋了。幾年來,大部分桌面應用軟件都被Web應用代替了。隨著網絡瀏覽器進化得越來越強大和健壯,每天都有更多的桌面應用被取代。

你希望不必所有的東西都“轉向Web”?醒醒吧!這已經發生了!

任何學習計算機歷史的學生都可以告訴你,Web應用成為主流正是“最不強大原則”(The Principle of Least Power)所預示的:

計 算機科學界過去花了40年的時間,致力于讓語言盡可能地強大。時至今日,我們必須感 激那些讓我們選擇不是最強大的解決方案(而選擇最不強大的方案)的原因。計算機語言越不強大,你對用那種語言存儲的數據能做的事情就越多。如果你以一種簡 單的陳述形式來書寫,任何人都可以寫一個程序去分析它。比方說,一個呈現天氣信息的網頁使用RDF(譯者注:資源描述框架,一種用于描述Web資源的標記 語言)來描述數據,用戶可以把它裝進一個表格,也許再做一下平均計算,繪制圖表,然后結合其他信息做出某種推斷。另一種極端的做法是,天氣信息通過巧妙的 Java小程序描繪出來。盡管這種方式可能做出很酷的用戶界面,但它完全不能被分析。找到這個頁面的搜索引擎將無法判斷那是什么數據或者那些數據有什么 用。要想知道一個Java小程序是做什么的,唯一的辦法是親眼目睹它運行起來。

互聯網恰恰是做最簡單(或者說最傻)而靠譜之事的具體表現。如果這嚇到了你(讓你感到不安了),那么我要小聲地告訴你,你沒有理由成為一名程序員。

所有應用都應該成為Web應用嗎?當然不是。總有一些重要的例外,有些種類的軟件跟網絡也毫無關系。但是,這些是少數情況,是一些特殊應用。它們固然是重要的小生態環境,但不管怎么說,就只是“小生態”。

如 果你希望盡可能多的用戶來使用你的軟件,絕沒有比把它做成Web應用更好的方法了。對于現存軟件來說,互聯網是最高效、最普遍、最直接的分發網 絡。任何用戶只要能連上網,有一個瀏覽器,不管他身處世界的任何一個角落,只須點兩下鼠標就能與你寫的軟件開始交互了。哪怕是最蹩腳的Web應用,它的受 眾面和傳播度都是令人震驚的;而且還在每天擴大著……我也曾因此杜撰了“阿特伍德定律”:任何可以用JavaScript來寫的應用,最終都將用JavaScript來寫。

從工程的角度來看,用JavaScript來寫Photoshop、Word或Excel毫無意義。但是,這是不可避免的。這事會發生的。實際上,這事已經在發生了。環顧一下你的四周吧。

作 為一名軟件開發者,最讓我開心的是編寫有人使用的軟件。如果你的軟件委身于一個二進制的EXE文件,它必須被購買、授權、運送、下載、安裝、維護 和升級,你的技藝又有什么意義呢?考慮到程序員與用戶之間的所有這些傳統障礙,軟件行業居然還能生存下來,這真是一個奇跡!然而,在華麗而嶄新的Web應 用世界里,那些制約已經不復存在。邊界沒有了。軟件可以無處不在!

Web編程還遠遠沒有達到完美的境地。其實,還有點亂!沒錯,隨便會寫 點代碼的人就能三下兩下地搞出一個糟糕的Web應用;也確實,99%的Web 應用都似狗屎一堆。但是,這也意味著,相當“聰明”的程序員們正在將他們的成果展現在成百上千(或者成千上萬,甚至幾百萬)的用戶面前,而這在互聯網盛行 之前是絕無可能的。在我看來,讓代碼遭受冷落、讓它們就此孤獨終老,沒什么比這更讓人感到悲哀的了!把軟件按照Web應用的形式重整一下,即使軟件本身并 不怎么樣,這也使得程序員們能夠把他們的軟件展現在某個地方的某人面前。

如果受眾面和技藝方面的觀點不足以說服你,那就從商業的角度來考慮一下吧。Mark Fletcher曾經給出過一份創業規則,其中就有這么一條:

你在做一個Web應用,對吧?這不是20世紀80年代了!縱然你的競爭對手把(桌面)應用軟件做得別致優雅,你那簡陋而寒酸的Web應用也仍然會比它更加成功。

要不了多久,所有編程都將是Web編程。對于普通的在職程序員來說,如果你不認為這是一個值得慶賀的理由,你也許應該轉行了。

原文出處: codinghorror   譯文出處: 陸其明(@豆巴陸其明)

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!