漫談15年以來網頁開發的心路歷程
2012-10-24
雖然工作不是專職網頁, 而是其他的程式類型。但我應該可以說是持續最多年放注意力和網編的一群人之一。
要說這15年的大事記, 就由15年前說起吧。這裡的15年只是大約, 實際上可能不只。
每每我要寫這種記事, 應該是發現了歷史的循環, 那麼, 的確不是一件好事。
就由我安裝Office 97 開始說起, office 97是我從慈雲山一間頗具人氣的老翻店舖買來的。安裝在Windows95 上的確是有一種超前的未來感。Windows95 那種超前的按鈕風格直到今天2012年還在Windows7 以選項方式使用, 實在可以用巂永來形容了。
Office 97重視網頁的程度令到還沒能連接上網的我在那個圖書館也找不到瀏覽器的時代也留意到網頁這東西了。可是frontpage97 的用心程度卻是在很多很多年之後, 在xhtml 都普及了的今天才能發現。
在同一個時期, 因為Windows95 osr2 的關係 IE3.0 十分的普及 (前版是IE2), 但IE4的釋出卻是G 點滿佈。要說網址列甚麼時候開始被人習慣放在資料夾的下面呢? 不是廣為人用的Windows98, 實際上是IE4。這個軟件甚至把機內資源和網頁資源都抽象化了。然後自定化資料夾也是這個時候開始的。電腦的易用性和上一頁和下一頁這兩個按鈕的反應速度和重要程度在這個時期達到巔峰。說是直接指引了一條業界的光明大道也不為過。資源抽象化可說是Microsoft 的一大特色, 在windows 97 中 Word 中嵌入excel 表格時, 也可見一斑。
(延讀:http://realblog.zkiz.com/abbychau/26633)
但由於功能上的擴充, IE5 IE5.5 IE6 一步步的強化, (以致後期美國法院宣判不可把瀏覽器強行整合, 其實在這個時候, 瀏覽器實體化已經是十分明顯, 這是果大於因, 如果不是人群需要, 哪會出現這場官司?)情況又開始慢慢轉變, 瀏覽器又獨立出來了。
同一時期, 不得不說Frontpage 和Frontpage Express 這兩套十分重要的平民工廠。FP是隨著office 而來的, 而FPE 則是隨著IE 而來的免費軟件。Frontpage 的功能強大不用多說, 但微軟因為其重心在於收費服務器的關係, asp 的動態功能幾乎完全被封(所以其實一直以來非法版本伺服器的中國大陸, asp 比php 還要盛行10倍以上, 到近年才有改變)。但同一時間FPE 卻被(我)稱為古代神器。FPE 生產的代碼不但簡單, 準確, 互相兼容, 復原能力強, 而且程式一如Wordpad 套件般高效快速, 實在放到今天也是一個好工具。MS 為"做大塊餅" 確實不違餘力。
但"做大塊餅"的同時, 為自己公司爭取市場地位也無可厚非。可是, 微軟和一眾基金會的關係卻太差了。為了滿足使用者的要求, 一眾亂七八糟不合規格的網頁套件在標準化之前都在IE 登場了。unsigned embed, bgsound, marquee, 以致令今天不少開發人員吐血而亡的"IE 456 風格" 等等等等, 都為firefox 出場之後IE 重拾正軌加了一大塊絆腳石。但是, 不計javascript 的引擎, IE 456 的渲染效能和記憶體效率的確是很好的。
在這個時期, 人們的網頁的要求簡單直接。更重要的時, 使用者願意也具備高度的集中力去留意內容, 算是一個良好的時期。
之後就是百花齊放的免費撥號到ADSL 民用初期, 這個時期互聯網發展真可說是一日千里, Angelfire, geocities, kimo 等等的空間十分流行, 二級商業模式也開始有了。在這個時候, 除了FP 和FPE 之外, 也有很多使用者直接使用Word 等直接輸出網頁, 甚至把powerpoint 的網頁匯出當成網頁(ppt 有自己的網頁運行庫, 和今時今日的html5+js 效果比起來一點不弱, 十分的有趣)。這令互聯網的格式變後非常不可用, 以yahoo 為首的搜尋器公司都是用人力密集或递交審核的方法把資料收集。直到google 的算法型搜尋器的出現。從這裡看來, google 的出現是必然的; 無需要甚麼過人的眼光, 這幾乎是自然而然的產物。
除了免空, UGC 的站點也在一小群有智慧的人們中開始了。在1.0的初期就應用了2.0的模式, 除了智慧, 我也想不到另一個詞了。那時除了Frontpage extension server 之外, 也有不少用perl cgi 寫成的動態網站, 維護問題不大, 但scalability 卻是個問題, 以前用文本資料庫的及時轉到web2.0 的的確沒幾間。但在這個時候寫程式的都是大牛, Leoboard 的花無缺和糊就是當中的頭牌了。還有比較像玩具的各種guestbook, 日記, 畫板等等...(這個時期日本的java applet 畫板進展驚人啊!)
再後一點的時期, 不得不說Macromedia 這家大怪物。Macromedia 除了格調稍低, 在實力方面是Adobe 級數的一級開發商, 在互聯網發佈方面, 如不是MM, MS 可能還主導著市場。今天Adobe 中的發怖器, 幾乎都是從Macromedia 中得來的, 如Dreamweaver, Freehand, Firework, Flash 等等, 中間也有些停止了, 如authorware。
Dreamweaver 發怖的一瞬間, 市場都瘋狂了... 大家一直以來等待的FP 代替品出來了。到DW3 , 我認為已經是超越了FP的地位, DW的效能可能不高, 但是它卻生產更為實用而可攜的代碼, 以及和各方的動態語言組合, DW3/4 是最大的一個轉捩點, 完全實用而可攜的動態網站在彈指之間就可以完成了, 而且生產出來的語句還有一定程度的可修改性。雖然在以前Microsoft FP 已經有這樣的, 甚至更好的生產效率, 但是基於人們與生俱來對標準、安全感以及永恒性的追求, 轉到DW 的人開始多了, 不久, 取代了FP, 真到07年, MS 也不得不放棄FP, 在Office 中正式拿走。誰把門檻拿走, 誰就得到市場。
其他用具如Flash 的地位到今天還是不倒, Flash 在制造動畫的方面確實是簡單到一個地步了, action script 也不失為一個優雅的語言, 但Adobe 的最低階工程師好像不夠, AVM 的效能還是很差。
Authorware 是有段時間在網上流行過, 但在Flash 的狹縫中的確沒多大的生存空間, 在那個年期的javascript 也把authorware 秒掉了。
(說到Javascript, JS 這個名字是netscape 取的, 雖然是C 結構, 但和java 沒有半點關係。JS 這個名字無疑script 是個最大的問題, 作為一個語法比很多聲稱是語言的語言完整的語言, 竟被灌上script 這個詞! 想想java 和c++ 也是在上個版本才實作lambda 啊!!
不得不說今天的JS 水平高得令人乍舌。隨著V8 和 SpiderMonkey 的出現, Javascript 的應用真的愈來愈廣泛了。)
UGC 時期的出現一方面是上面說的賢人們的眼光, 另一方面也是市民開始輕易上網, 兩者結合而出現的。以前內容的發展是一日千里, 但千里還終究是千里, 是線性增長, UGC 時期則是平方數了。在UGC 的初期, 的確是一片茵茵向榮的現象, 曾經我在中學的電腦室叫過所有人都上一個自己做的論壇, 每篇主題都是個人手打過百字, 以前的人真的較好嗎? 非也, 是現在的人濫用方便的渠道而已, 很多時候, 門檻都沒有被裝上, 只是做訪客的責任心早已不復存在。
具標誌性的產品先是perl 語言為主的cgi, 再是asp, 但fcgi 型式的cgi 也開始出現, fcgi 的軟體藕合度更低, 在伺服器上的內存管理有優異的效率。到現在, 因為fastcgi 的建設方法在php 取後大成功, 已經成為眾多新伺服端的首選方法。
前端方面沒有出現很大的問題, 但各種的IE hack 開始出現, table 結構的網頁還是主流, 因為以table 作為主框架, 網頁是不會嚴重走位的, 即使看起來有差別, 對整體體驗影響不大, 對理解是更完全沒有影響。如果網頁繼續以這個方向發展, 我想也是不錯的, 但是人們網是喜歡看到新的東西, 推使人們去使用DIV + CSS 建築方法的, 無非也是一堆又一堆的eye candies。看著幾個漂亮的menu, 想炫的人又會做出更漂亮的。但華麗的外觀就往往意味著層級繁多而複雜, 也意味著"會出錯"。如果大家都用IE 的話問題可能不太大。直到一天, Mozilla 基金會的狂人們有人天突然想mozilla 重新走到大家的眼前。
Mozilla firefox 的出現之前也不是完全沒有預兆, 早在IE 開始個體化的時期, MyIE, avant 到greenbrowser 到maxthon 等等以頁簽為標榜的第三方瀏覽器因為網頁瀏覽的重度用家變多, 不滿足於視窗切換以及內存問題而大受歡迎。Windows 中巨大的進程記憶支出, 令到mozilla 找到出口, 一方面為用家省下記憶體, 另一方面利用插件補足用戶體驗, MS 一下反應不及就放棄了超過30%的市場份額。長時間後IE7 傖促加上頁簽也是返魂乏術。人們早就在spidermonkey 優異的JS 效能中寵壞了。而市場亦因此做出比以往複雜10倍以上的客戶端JS, 無疑是給予MSIE 一個重擊。
在這個時間, 史上最大的SNS 網絡橫空出世, Facebook 和twitter 走到大家眼前。在以前SNS 其實並非沒有實視, 只是要消費用家不少的精力。各個論壇的訂閱功能只要善加利用的話其實也有這個效果。但實現方法太過曲折, 曲折到甚至沒有人會覺得這可以和朋友保持聯繫, Facebook 把這不少人會做但很麻煩的東西實現了。說些個人感想, 雖然SNS 為互聯網帶來巨額用戶, 也為生態推前不少, 但我認為SNS 無異於一種幻術, 令人們開始分不清甚麼才是閱讀了。片段化及個人化的資訊無疑令人的快感推到頂峰, 但當人們習慣了, 也就回不去那種可能是最有效的閱讀方式。超連結不是用來作資訊的拓展, 而是純粹的功能性按鈕, 雖然我不應介懷這種利用, 但我確實是覺得這令人有很大的空虛感。
Wikipedia 是把超連結和版本號用到巔峰的網頁範式, 但伺服器開銷的確是一個很大的問題。
這些世界級程式的複雜度, 令開發人員返樸歸真。手工代碼又重新被重視起來。因為工作量大了, 眾多IT 公司的分工也明確起來, 設計的只用設計工具, 程式的只用編碼工具; 當然CSS + xHtml 或其他template language那種輕鬆學的markup 大家都知道。用Chrome 按F12 就可以輕鬆知道具體設計, 即時觀看了。
說到Chrome, Chrome 這個瀏覽器固然是十分優秀, 但卻沒有甚麼標誌性可言。在1.0推出的那個市場環境, 純粹是出於"分一杯羹"意願, 時間點也剛好是Firefox 開荒完成, 市份分額增長得最快的時間, 惡鬼般的出現。以V8 當時的完成度來看, google 是對 chrome 的出現時間是故意為之的。當然V8 的開源也為市場帶來很多優秀的實驗品, 如node.js等, 也算是功德一件。