iPad Apps 推薦-南都Daily

  我經常閱讀中國的新聞,中國是個大國,新聞值得我們關注,加上中國社會千奇百怪,有許多的「今古奇觀」,從中可以瞭解社會動態和趨勢。

  南方週末都市報是我認為還算不錯的一份中國報紙,最近發覺它的iPad App也做得很不錯。

  你可以在iTunes裡查找「南都Daily」或「NDDaily」,下載安裝即可,它是個免費的應用軟體。不論程式、內容、照片都很好,只是因為圖片不少所以每日的新聞要40至50MB,用3G下載的用戶要特別下心。

  關注中國政治、社會的朋友,這對你會是個不錯的App,還有許多的專欄,來自侯文咏、張大春、溫瑞安。

  以下是從南都Daily的iPad Apps裡抓取的截圖:

Continue Reading

為甚麼要升級?

  有個客戶,他想要在原有的系統增加新的功能,與我談了起來。其實他想要的,只是新增一些功能,不過在現實中,可能不只是升級,而是全盤重寫。

  然後他忽然問我一個問題:「為甚麼系統要升級?」我知道他不熟悉電腦和系統,想了一想要如何說明清楚。(你也可以想想看你會如何解釋)

  我說,就像你開一輛老爺車,叫Datsun,現在玩Facebook的很多年輕人都沒聽過這名字了。然後你的Datsun出了問題,你要找零件很困難,能找到的話可能也很貴。再來工程師可能也不太能搞定老古董,能找到有經驗的老師傅,可能費用也不低。

  在成本相對起來很高的情況下,可能買一台新車就更有經濟效益。那麼,大家就這樣子的不停升級。 Continue Reading

關於電話簿(通訊錄)

  雖然是從事電腦軟體研發工作,但是我個人一直覺得很多系統並沒有「幫忙」使用者解決問題,許多我見過的系統只是「代替」已經過時的工作方式而已。

  許多的商業系統,尤其是客制化(customized)的系統,左看右看一點也不好用,更加不會方便,或讓事情更輕鬆。其功能純屬把原本用手記錄的資料,換個方式記錄在電腦裡而已。所以有時我想,好的系統應該抱著一個想法:「讓員工提早下班」,至於老闆允不允許當然是另一回事了。

  電腦或電話裡的「電話簿」或「通訊錄」,就很實用了,但它一般都附屬在電子郵件系統或手機裡,因為如果單獨的「存在」就有點莫名其妙,人們總不會為了打個電話而去開電腦查詢,要電腦開機很多時候是漫長的等待,有時它也不一定「開」得成。

  雖然手機都可以記錄電話號碼,不過我們還是有機會見到老一輩的科技盲,科技讓他們難以捉摸,更何況不同手機介面各異。所以他們憑著超強的腦力來記憶電話號碼,或是一邊翻著555口袋型記事本,一邊按著號碼(我們經常接到的“Sorry! wrong number“大多數來自他們的貢獻)。

  在沒有電子通訊錄的年代,我父親就有本「電話簿」,然後以A到Z的標籤分組,然後他就把親朋戚友的電話都分組記錄在裡頭。可是總有人搬家換電話,或生意上不再來往,又或是我的不幸,生在電話號碼從六個碼換七個,七個碼換八個碼的年代。電話號碼總要塗塗改改,又增又刪。

  偏偏又碰上我父有追求完美的個性,又碰巧每年都會有人送他新的通訊錄,或是他不知從何處得來。這個把電話簿「同步」(電子上的說法就叫synchronize + defragment)到新的電話簿的任務就落到我手上。人名刪掉的就不抄了,號碼改過的就要更新,新加入的人名就要排序,排序當然全憑眼力。

  就這樣,幾乎每年我都有這樣的一個任務,讓我認識幾乎所有親朋戚友的名字、輩份和關係。每次任務一來,我是無奈不已。後來,我也不懂從甚麼時候開始,就再沒不必抄功課了。所以這個「東西」,對我來說是大恩賜,是少數讓我覺得「有用」的電腦功能。

馬來西亞人需要雅虎輸入法嗎?


  三天前雅虎推出了輸入法,內建的輸入法包括了

  1. 好打注音
  2. 傳統注音
  3. 倉頡(三代)
  4. 簡倉

  最近幾年,幾個搜尋引擎公司,像谷歌、中國的搜狐,紛紛推出了各自的輸入法。(谷歌拼音,搜狗拼音)

谷歌拼音輸入法

  馬來西亞華人使用注音輸入法的人太少太少,目前用的都是以拼音輸入法佔大多數,用筆劃輸入法的就包括了大易、倉頡、五筆、無蝦咪之類也有。

  所以雅虎推出的這個輸入法,目前階段看來主要是針對台灣的使用者。大馬的中文輸入法使用者,因為手頭上有了Windows倉頡輸入法,不管是哪個産品都算是相當成熟,所以沒有使用雅虎的必要。除非要用到他的繁簡互換的功能,或是大陸與台灣不同詞語的轉換功能(例:光碟機<–>光驅)。

yahoo 輸入法

  好消息是雅虎的輸入法也同時推出了蘋果Mac OS版本,使得國內使用倉頡輸入法的蘋果用戶,多了一個選擇。

  谷歌拼音、搜狗拼音都沒有蘋果的版本(後來查一查搜狗好像有蘋果版?!),所以蘋果的中文輸入法沒有Windows世界那麼百花齊放,相對來說還有很多改善空間。目前蘋果的世界,中文輸入法都靠著開源的OpenVanilla來支撑大局。雖然它支持各種輸入法,不過在倉頡的支持有點混亂(倉頡常用的有第三代,和第五代)。加上我一直搞不懂全形的空格要怎麼才打得出來(也不想花時間去找)。

  所以我在家裡的蘋果下載了雅虎試用倉頡,同樣是第三代倉頡(可能用戶人數較多),不過可以輸入全形的空格,所以看來馬來西亞少數的蘋果使用者裡頭,少數的倉頡使用者可以下載試用。

  其實馬來西亞用蘋果的人數,我估計還少過3%(可能更低至1%不到),然後這當中使用倉頡的人數更加少了。

  不過看它的程式設計可允許外加輸入法,所以內建拼音的版本看來很快就會推出。(不然自己手動加入應該是可以的,只是「又要看readme文件了!」)

  其實目前市場有個很niche market的機會,但沒人去做,就是以拼音輸入法來輸出正體中文字。因為目前的拼音都輸出簡體,注音都輸出正體,但是需要以拼音同步輸出正體字的用戶應該不少。

 

  後記:

  裝了雅虎輸入法後,看看網友比較雅虎和OpenVanilla的功能,我自己再去設置原來的OpenVanilla(中文名被稱作香草輸入法),經過一番仔細閱讀readme文件,才裝上了倉頡第五代,同時也找到了輸入全形的方法。 (當初沒有去摸索,因為以為是它的先天性功能不足,所以沒花時間去網上查找)

香草輸入法

  然後,就把雅虎從我的蘋果裡完全卸裝了。

 

  相關閱讀:

系統就是要無間升級

  之前想要放棄「關於電腦」部落格,因為停了一陣子沒寫,來登錄時提示我要升級,升級是讓我想放棄的原因之一,還是用google blogspot好。連寫文章都缺時間了,還要不停的升級。

  剛升級成了2.6,才寫沒幾篇,又出來了一個2.7版。

  電腦的系統,就是無止盡的「升級」,一直升到你升天為止。

  在wikipedia裡的「無間地獄」。

佛教說法

阿鼻地獄是「八大地獄」之一,也有人說是十八層地獄的最底一層;阿鼻地獄是佛教宇宙觀中地獄中最苦、最黑暗的一種,大部份永世不能超生,一日有億次死生,往往刑期皆在百億年之久(地球的年齡也不過幾十億年)。

買個機器人回家吧!

販賣機器人

你認為會不會有這麼一天,買機器人就像買車子一樣?還是說科技強國用機器人來當軍人,控制其它國家呢?

目前公認最優秀的機器人是Honda的ASIMO,它可以做許多的工作,但總的來說,它距離人類還有很遠的距離。

ASIMO

前陣子常下雨,某日同事說起他晒著的衣服前一天淋濕了,隔日再晒,誰知當天也下好大的雨,他在上班沒能回去收衣服。我就提起如果衣架除了有輪子,還有感光和雨水的感應器,下雨時會自動躲起來,那該多好。

因為現在已經有自動的智能吸塵機,除了不會爬樓梯之外,已經能在屋內各個角落吸塵,電池快耗盡了,還會自動歸位儲電。如果晒衣架也有這個功能,那該多好。

irobot

從這裡,我們談起了機器人。有了機器人,下雨時能把衣架推好不被雨淋,那不就好了嗎?同事說最好機器人會把髒衣服放入洗衣機,洗好後自己拿去披。這時我說,如果有了機器人,那我就不願花錢買洗衣機了,不如就讓機器人動手洗。同事同意我的說法,然後說最好能機器人能像變形金剛,變成洗衣機。

我的想法是,有了機器人,我就不願再買洗衣機、吸塵機了。就把它當傭人看待,讓他用洗衣板也好,甚麼方法都好,何必再多重浪費呢?如果讓他也能代替汽車,變成汽車也好、抱你或背你去目的地也好,又可以省下一筆錢了。如果從變形金剛的角度看,一個人樣的機器人要變形成洗衣機,又要可以變成車子,應該是非常不容易的,要不然就是那機器人體型很大。

如果一個機器人可以把事情做得那麼好?那麼索性把自己的所有工作都交給他,自己甚麼也不必做了。同事回應說,如果有這等好家伙,所有當老闆第一個買下來,然後把員工都炒魷魚。想一想,機器人果然對人類的影嚮很大,但不知這時代幾時到來。不過,電腦程序員的需求應該還在的。

問題來了,機器人的發展成熟時,機器人的主人(創造者)會拿出來售賣給大家嗎?或是讓它們取代自己的員工?或是成立自己的軍隊?連國家國防部也控制不住了。

如果國家干預了機器人的發展,因為有殺傷力東西的就叫做軍火,軍火當然要國家管制,不是在街邊可以買到的。如果政府限制了機器人不能有武力的功能,那麼我們就可以在Panasonic、Sony、Honda或其它公司買到機器人。但大家別太高興,有件「歷史」必定會重演。

首先,你買了一台機器人,能洗衣(控制洗衣機)、能晒衣收衣折衣、也能吸塵。半年後你的鄰居以相同的價錢買了一台比你的機器人更強的,還能熟飯炒菜。你當然不爽,就問供應商,供應商說可以下載更新軟體(AI Software),不過你的機器人的硬體支援不到。

你只好將就用了兩年,然後再買一隻能澆花還能洗車的「版本」,隔不久你又看到鄰居新買的竟然還能搥背按摩和看小孩。然後你又上網看有沒有新的「升級版」。唉!原來你的機器人是不「兼容」(Compatible)新版軟體的。結果幾年之間家裡突然多了一堆人,都是機器人,有機器人95、機器人98、機器人Me、機器人XP、機器人Vista。(還好他們只間不會聊天打發時間,不然就吵死了!)

說到來,機器人的腦,就是人工智能(Artificial Intelligence),人工智能就是程序員寫出來的程式。夠不夠聰明就要看各公司程序員的能力了,當然也要看你花多少錢買它。

就這樣,你和鄰居兩人就大家做升級的競賽。但是你們要小心,因為你們的老闆也在升級他的機器人,他要的功能沒有那麼複雜,不必會炒菜看子孩,只要能取代你們的工作就可以了。你們若失去了工作,價值連機器人還不如,更沒錢升級自己的機器人了。不過不要緊,失去了飯碗,你還有幾個機器人,安排他們去種菜種稻,還是餓不死的。(不過先檢先一下他們有沒有這個功能)

再說回頭,如果有這麼強大功能的機器人,按摩椅也不必買了,吸塵機也省下了,那麼你認為他的價錢會是多少啊?幾萬塊馬幣?不可能比一張按摩椅(幾千塊馬幣)還便宜,對吧?畢竟是高科技産品,現在一台好的筆記型電腦也要整萬塊錢。所以機器人賣個五萬塊也不過份,但你想一想,在馬來西亞聘請一個印尼女傭每月才五佰塊不到,這筆帳你要自已去算了。

機器人到底會不會消滅人類

好多年前,也就是我小學時候,電視播出卡通版的「變形金剛」(The Transformers),它就我們這一輩年輕人所共知的,雖然我們也都已經長大。今天,它從卡通版電視劇變身成為真人版電影,更立體的呈現在你我的眼前。

變形金剛 The Transformers

坦白說,小學時我的英文不好,當然也就聽不懂它們的對白,但基本上還是分得清好人壞人(雖然它們都是機器人)。寫這篇文章時,勿然想起電影裡一個莫名奇妙的「起源」,如果變形金剛原本就活在某個星球,為甚麼它竟然會變成汽車?難道那個不知名的星球,也有「人類」(走路腳會酸的生物)發明過汽車,或平時需要駕駛汽車?要不然一個機器人平白無故變成汽車飛機來幹甚麼?

說起機器人,真的就有太多的話題值得討論了。而機器人的腦,就是電腦了。

我們這一代人,發明了電腦和接觸了電腦後,會有古人所無法理解的疑惑。像李白和蘇軾,甚至是秦始皇和康熙,他們不會去擔心人類將來會否被控制的,所以秦始皇才會想到要有秦二世、三世到無限世。但我們現在人經常討論的課題,就是將來電腦超越了我們人腦,進而控制人類。那麼師父敗在徒弟手上,豈不可笑。人種滅亡,事關重大。

那麼人類是不是真的有一天,就像電影The Matrix(1999)一樣,敗在機器人手裡,然後虛擬的活著,而這只是機器人留下人的生命以貢獻能量給機器人?說實在的,如果先不談機器人打敗人類這件事,先看看現在的網絡遊戲(如World of Warcraft或Second Life之類),難道這世界上不是有許許多多的人都已經活在了虛擬世界嗎?

The Matrix

如果說機器人會打敗人類,這要從幾個方面來看。大家之所以會相信,是基於「人工智能」的進步。也就是人類可以寫出一套程式,這程式有很強大的資料庫以供它自己參考,同時它有學習的功能,會學習才會聰明嘛!然後機器人聰明到瞧不起人類,最終要把人類幹掉。

嚴格上說,這是以地球人之心度機子之腹。歷史證明人類一強大,就想征服別人/別族(要佔用別人的資源),因為非我族類,其心必異嘛!所以人們也就這樣子看待機器人。

電腦的特色是精確、快速,這是人類鐵定比不上了的。但說到人工智能,雖然發展日新月異,但要機器變成人,其實還是不容易的。它可以學習人類說話,可以找出從A到B的最短路線圖,甚至可以知道那條路塞車,可以避開。你可以把人類的需求都讓它知道,讓它去吸塵,讓它替你搥背或洗腳。加上人類的手工生産方式,當然也比不上機器的生産能力。玩象棋又比不上它。只能說,兒子很多時候還是會比老爸強的啊!

但是人類真的就不如機器人嗎?你看人和老虎在一起,人會被吃掉,但是人類還是在地球上活得很好啊!這裡要說的是,天底下凡事物都有它的特性。就像犀牛是森林裡的消防員,遇火就會去踩,螃蟹一定要横行,喙木鳥就要喙木。而機器人要向人類學習,甚至要征服人類,其實很困難。難就難在機器人「不是人」,這就是它的特性。

它可以向人類學習(其實是程序員寫出很好的程式),但它「不是人」注定他不會消滅人類。為甚麼呢?因為人有生老病死,傳宗接代,會痛會癢,會餓會累,會大小便。但是機器人沒有生命,不怕死,不怕餓。這跟人類完全沒有衝突,它不會佔領人類的屋子來住,因為它不會累,不必睡,站著腳也不會酸。他不知道甚麼是死亡,機器人的手腳故障它也不會痛。它更不需要佔領人類的金礦來換取金錢去看鐵打。

一個即不怕痛,也不怕死,不怕餓,更不怕冷的機器人,它當然不會像陳勝吳廣起兵反秦,也不會像蒙古人征服歐亞非三大陸。那麼絕對不會為了石油去攻打伊拉克。除非受人指使,但受人指使還是受制於人,不是機器人主動的權力慾望。

或者,程序員為了做出更加像人的機器人,寫出逼真人類的機器人。但是對事物的認知是不容易學習的,人腳酸了,就會找地方坐,有椅子先坐椅子,沒椅子可坐其它地方甚至坐在地上。但是機器人要靠資料庫來區別,說實在的,他怎會腳酸呢?如果它不會腳酸,它就很難分辨甚麼地方可以坐。其實人還可以坐在樓梯的梯級、床上、大石頭上等等,這要看坐不坐得舒服和腳酸的程度。機器人沒有人的屁股,連哪個地方可以坐都會有問題(人的屁股會有坐得舒不舒服的問題,機器人不會),它怎會知道原來人類某些情況也會坐在桌子上呢!

就說目前有很多所謂設計師的創作,讓人都看不出那是張椅子,何況機器人。如果它連椅子都沒法子分辨,那麼客人來了,難道帶他去坐桌子(可能它看小孩子坐過)?如果連哪些是桌子,哪些是椅子都要再教育,那麼大家也別擔心它會征服人類。

但另個問題又來了,大家也別以為人類就此逃過一刧。許多人都有電腦中病毒的經驗,設計出電腦病毒的人,即損人又不利己,但世界上是總會有這些人,他們衹是想證明一下自己的手段是高明的。如果將來會有機器人,我想應該也會是有牌子的,像Panasonic, Honda之類,不太可能是你自己DIY的,就像沒人會自己去「製造」一台吸塵機出來一樣。那麼雖然這世界有很多破壞王,但要修改別人生産的「腦」(人工智能)還是不會太容易的,而且人家也編譯(compiled)包裝了。但還是不得不提防這些破壞王,因為破壞王也不需要有很好的編程技術,或對人工智能有很深的瞭解。簡單說,他只要讓他自己設計的機器人,見到「真人」就殺無赦,那就可以讓機器人征服人類了。(程式有時不必寫得很複雜的,有時連Database都不需要,直接hard code就好)

這裡說的機器人,是物理的機器人,物理機器人還是不跟與人類有太直接的衝突的。除非有一天,我們也能創造出類似人類的「生物機器人」,會生老病死,怕痛怕癢,會餓會渴,那麼可能就跟人類有直接衝突了。到時就可能是人類大團結,槍口一致對外的時候了!

历久不衰的Javascript

  得知微软明年要发布Visual Studio 2007 和 后,突然感慨万千,感慨光阴荏苒,对于微软迅雷不及掩耳的推陈出新,我暂且不做评论。我自Visual Studio 2002起就接触微软的.net,到现在还没能写出一套让我飞黄腾达的软件,实在无颜面对父母,只能怪自己无能。程序语言的不断的演化,不断的进步和自我淘汰的过程中,也淘汰了一些程序员,这是无可否认的事实。微软的.net系列虽然在语言上至今仍没多大的变化,可是他把整个作业环境(IDE)改头换面,由于程序员要重新掌握新的介面,掌握了以后,生产力会提高多少还不得而知,可是在掌握的过程中生产力跌到谷底也肯定是事实。

  刚踏入软件业的年轻程序员总希望先掌握好一种语言以保持自己在这行业里的竞争力,就算没什么竞争力也不要被时代在两三年里就把你淘汰。至少我曾经是这么想过,所以我不停的留意市场上流行的程序语言。工作几年后,我归纳出两个语言是比较经得起时间考验的,那就是/。C/C++是把好剑(虽然我知道C和C++有很多不同之处,请让我把他们混在一起),它的威力很多编程员都领教过,本文不谈。我想谈谈javascript这个相当随意又不严谨的程序语言,因为它能够历久不衰,也算是个传奇。

  网络服务器端程序(server side script)这十多年来,沧海桑田,回顾一下已经有流行过不少语言了。起初时大家以C,Perl等来编写,后来有了,到近期又有了另一番景象,ASP蜕变成,市场上又出现这两个程序员的新宠。可是这些都是服务器端的程序语言,是运行在网络服务器(web server)上的,这些语言各有所长,所以都有各自的粉丝,可是这些程序员很少不用javascript这个用户端的语言,它是运行在浏览器上的(这是笼统的说法)。至于不懂得什么是javascript的网络程序员更被视为稀有动物。所以javascript就是这么一个多年来得到各路英雄推崇一个语言,我认为它的成就也算是电脑科技史上的一个奇迹。

  Javascript于1995年诞生,和火狐一样,始作俑者也是Netscape Communication Corporation (网景)这间公司。虽然网景已死(现在的网景已不是当年的网景了),可是它的javascript仍然发光发热,连微软也撼它不倒,网景也算死而无憾。

  话说当年网景推出Javascript时,是为了让他们的Netscape Navigator更好用。因为javascript能够直接在浏览器上运行,不需要等待服务器的指令,就可以独自行事。虽然网景隔了一年后又推出了服务器端的javascript(server side javascript),可是它对时局的影响力大大不如client side javascript,因此本文所指的javascript都是指client side javascript。

  让我举个实际的例子,我在三年前用javascript编写了个日期点选器,当用户选择不同月份和年份时,该月份的日历会自动生成,它不需要等待主机的命令就知道要几月几号会落在一星期的哪一天,效果自然不错。换言之,如果当用户换一个月份或年份时要等待主机的指令才知道如何产生日历,那么效果肯定大打折扣,原因是网速限制了它的反应。所以在编写网络应用时,什么程序该由javascript处理,什么程序该由服务器端处理要分配得当。至于怎么分配,那需要另一篇文章来解释了。

  Javascript的出现,几乎让网页活了起来。可是在一个网络应用上,它并不能完完全全的独当一面,它必须配合其他服务器端语言才能成事。所以在程序语言的竞争上,javascript与各服务器语言都风马牛不相及,所以javascript成为了大伙儿的朋友。

  Javascript历久不衰原因又是什么呢?其中一个原因是它占了先机。Javascript这个语言对科技公司来说,算是个简单的语言。期间,网景开发了javascript,当时它并不是为了要推广网络应用(web application),而是纯粹为了提高Netscape Navigator的竞争优势,因此Javascript在浏览器上的实现并没有对外界开放。当时网景的Navigator在浏览器市场遥遥领先,微软集中火力,奋起直追,在Javascript推出的一年后也就是1996年,微软推出了微软版的Javascript,叫Jscript。这个Jscript完全由微软自己摸索出来,对于当时如日中天的微软,人才济济,其实并不太难。这个JScript虽然不是100%和javascript一模一样,但也相差无几。这样一来,当人们在制作网页时只要根据Javascript的规格去做,要在微软的Internet Explorer上运行基本上是没问题的。被微软如此一搞,javascript在网景不开放的情况下竟然成为了业界的标准。既然如此,网景于1996年终将javascript呈给ECMA International以制定成国际标准-ECMA-262。1997年八月,ECMAScript 1正式诞生,Javascript变成ECMAScript后更加势不可挡,这十年来它的地位依旧。虽然一般人还是改不了口把它称作Javascript,可是不管你用Javascript,Jscript,Actionscript,Jscript.net都有个相应版本的

  Javascript虽然占了先机,可是如果我们看其他程序语言的发展都是长江后浪推前浪,新的语言往往因为更好用而吞噬旧语言的市场。Javascript这样一个微软只用了几个月的时间就复制出来的语言,它到底有什么优势是他人取代不了的呢?从技术的角度来看,Javascript根本没什么优势,它唯一的优势就是已经有成千上万的网页用着它了,不能说换就换。而且用Javascript的网页每天在增加中。要是哪个浏览器不支援javascript,一大部分的网页无法正常显示,因此根本还没有资格让人使用。

  微软干掉了网景之后,曾经效法网景当初的做法,让Internet Explorer支援VBScript,希望有朝一日可以让VBscript这个功能类似Javascript的语言可以取代Javascript,可是无功而返。虽然VBscript还有其他的用途,可是微软如果不是想报网景当年不开放Javascript的一箭之仇,干嘛要让Internet Explorer支援VBscript呢?VBScript失败的原因十分明显,那就是它只能在Internet Explorer上运行。因为其他浏览器由始至终都不曾支援过VBScript,如果用户以VBScript编写,你的网站只能吸引IE的用户,让网景的支持者反感。再说,既然VBScript的功能与Javascript相近,而且Internet Explorer又支援Javascript,微软没笨到让Internet Explorer不支援Javascript,因为那行同自杀。那么制作网页者更没理由去使用微软自家的语言了。所以此一时,彼一时。网景当年的自家语言飞上枝头变凤凰,微软的自家语言却无人问津。

  这么说来,浏览器因为太多网页上有javascript而不得不支援它。程序员因为所有浏览器都支援它而不断的编写下去,因为程序员只能控制服务器的环境而不能够限制用户的作业环境。如果有一天,人们觉得Javascript已经发展到了极限,必须转换语言,那么这个新的语言不能由任何一家公司独占,就算不是开源也要是ECMA标准,最大的因素是,所有浏览器,其实不过那几家大的浏览器如Internet Explorer,火狐和Opera都必须同时支援这个新语言,其他小浏览器只有跟着走。以现今的局势来看,这种可能性还相当低,原因是各大浏览器之间很难达到共识,其实ECMAScript如今已经有了第四版,而大多浏览器都只是支援ECMAScript 3,仍然停滞不前。

  所以程序员要掌握一种比较能够经得起时间考验的语言,Javascript肯定是个不错的选择,因为左右它命运的不是技术因素,而是商业和人文因素。这些不是纯搞技术之人可以解决的。

用了幾千年的GUI

  這篇文章,和我最早的一篇文章()同時出現,但當時衹有標題和概念,一直設成草稿。隔了一年多後,今天終於辛苦完成。

前言

  前北大校長蔣夢麟在他的著作《西潮》中提到,在清朝時,如果西方文明不乘著炮彈和基督教進入中國,那麼中國還可以維持幾百年不變。也有歷史學家說中國的老百姓在宋朝以後所過著的生活變化不大。可以推斷,那個時候的幾代人,可能都過著相同的日子。

  過後,西方文化進入了,中國掀起了百年未有之變局(李鴻章的說法),作者在他的自傳式著作中說是五十年巨變。而我們看到的,在鴉片戰爭後的一百五十年,中國發生了驚天動地的變化。看看香港在當時的一個小漁村變成今日的國際大都會,你可以去想像它的變化之大。

  一個人在舊時代裡,要看見時代的變化是很不容易的。但科技變幻無窮的今天,一個人衹要在廿年裡,就可以看到了一代又一代科技産品的演進。像我雖然比電腦遲出生,但幾乎可以看到了電腦的演變,也直接間接的體驗了科技的演進。

  舉電子郵件為例,它對這時代的年輕人來說,幾乎是必備的了,不管是用在私人或是工作上。而在Netscape 3.0的年代(1995-1996),我也沒有想過今天會對電子郵件那麼強的依賴,和它今天的無所不在,以及少了電郵的寸步難行。

  就在這科技快速演變的同時,我看出了一些蛛絲馬蹟,彷彿可以用歷史來做個對照。

中文

語言

  西方科技文明的強大,包括電腦科技的一日千里,讓他們在世界的經濟版圖不停擴充,直到現在人人口中所說的“全球化”。科學技術讓這些科技列強殖民落後國,像美國的軍事科技強大,所以可以在國際事務上為所欲為。除此之後,科技本身還可以出口,像IBM, Microsoft, Intel這些高科技公司,也為美國的富裕做出不小的貢獻。原來科技除了可以恃強凌弱之外,還是個大商機。

  因為電腦科技的發源與發展都在美國,使得幾乎和電腦相關的「東西」都以英文為主。許多的人都知道,至富的其中一個原則是和富人在一起,而這些先進國都以英語為商用語,所以其它民族想要接觸這商機,就必先接觸英文。這些外資商業帝國,技術文獻資料,都一律以英文做標準,連程式語言,學校教科書都以英文為主,使得大家都認為只有英文才有前途,而它在某程度上也真是如此。

  許多中華文化的忠實擁護者,也包括英文不好的一群,會說那些學習英語者不愛本身的優良文化,說他們崇洋媚外,說他們香蕉人。香蕉人是因為香蕉外面黄皮,裡面肉是白的。但有時這也過於偏激了,因為在這個全球化的時代,不會英文在很多事情上也不太方便。而這些中華文化維護者會搬出一大堆的理由來說明中華文化的優秀。優秀歸優秀,但大家還是向著金錢的方向衝,英語好的華人還是佔有很大優勢的。

  那麼英語真的比較值錢嗎?舉個生活上不是特別明顯的例子,我最近對網路廣告關鍵字做一些研究,發現英文的關鍵字比起其它語文,包括簡體和繁體中文,都更有價值,更多人競標。而英語成為全球通用語的趨勢,好像不是華語所能阻擋的。

英語

  英語優勢的來源,大家當然會先說是大英帝國遍佈全球的殖民地所帶動的,這是第一波。而美國的商業強勢當然是第二波了,想跟富人做生意,當然得學好英文。這當中,我們也發現了日本第二經濟強國的地位,在國外許多地方,包括機場和旅遊勝地,除了必備的英文外,也都有日文指示牌,宣傳單和說明書等。這說明了人多未必有用,錢多才有用,錢多了大家才會尊敬你。

  那第三波的英文勢力在哪裡?應該是電腦和網路世界裡了,這是隱形的勢力,如果其它國家沒有認真看待,他們的語言就來必定會被英文蚕食。因為網路英文的內容太多了,是其它語言所不能及。而任何技術或産品一出來,必以英語為先,其它必會慢半怕。所以先機在英語,商機當然也在英語上面。

雖然中國,日本或一些非英語系國家也嘗試在科技上下苦功,像中國在研發中文處理器,中文的程式語言,中文的本土軟體,但成效還不明顯。試想想,若中國人的程式都以英語來寫程式,且不論它的好壞,那就實在沒必要使用中文的電腦書了,何必多費一番功夫呢?

  如果這種程式語言像java, C#等等都以英文為基礎,那其它民族學習英語是必然的。如果大家都有一些英文基礎,那各民族溝通也必以英語最為方便。這也是英文目前在網路上的優勢。所以其他的民族,不斷的想要發展自己的民族語言,可是自己的語言裡有一大堆都是外來語,自己把英語弄成自己的語言,這樣的做法卻是莫可奈何的。

中英的差別

  先不論英語和中文目前在國際上的地位,以我不是專家的看法,他們最大的差別是英文是「嘴巴」的文字,中文是「眼睛」的文字。一個以讀音為優先,另一個則以圖形為優先。當然它們各有優缺點,語音的缺點是各地方的口音變化大,時代久遠或距離的因素就會南腔北調,所以不管是中國大陸用著同一文字的,也有一大堆方言,印度和歐洲大陸也有很多種的語言。

  如果是像英文,以拼音來組成文字,這對歷史資料的流傳是最大的障礙,因為一個詞彙的古今讀音可能差個十萬八千里。而中文以圖形文字出現,即使大家用不同的方言,但還是能看得懂同樣的文字。這也是歷史學家說中國大陸沒有變成歐洲大陸分裂成各民族國的原因,全靠中文字把各民族聯繫起來。

  在沒有錄音、錄影的年代,大家衹能靠著文字,刻著寫著來流傳想法、知識和事件(後來就變成「歷史」)。但若要說到歷史的考古問題,圖形的文字像甲古文,楔形文字等,因為還是有蹟可循,所以還有解讀的可能性。看見一隻小鳥的圖,猜來猜去總不會是狗和猫吧!而拼音文字,除非能夠找到對照的資料,否則時代久遠,語音變化太大,若當世無人會讀,解讀機會比圖形文字更低了。

圖形文字的優勢

  圖形文字的優勢在哪?如果你到過不同國家的機場或酒店,必定會看見許多的指示牌,那些指示牌的圖像簡單易懂,左右箭頭、餐廰廁所、德士巴士等等。在不熟悉該國語言的情況下,一般人大概也不會理解上有困難,即使那些告示牌收藏個一兩百年,再讓後人去解讀,也不會有太大問題。中文的的優點,不必多說。一個中文字,可以有華語、粵語、閩南語等等各種讀音,但意思卻是相同的,傳了幾千年,‘田’字還是田字的意思。

  那麼是甚麼原因讓中文在這個經濟、科技歷史洪流裡,漸漸的失去了優勢,搞得大家都以英文為先,以英語為傲?

Airport Signboard

語音文字的後來居上

  隨著電話、錄音、錄影技術的發展,「語音」文字就可以很好的保留下來。如果怕語言文字隨著時代變遷而變化,那麼可以把事件錄影下來,音影俱在,不再存在著流傳與解讀的問題了,聽不懂錄影畫面中人們之間大呼小叫的對白,但看見動手打架,也應該知道那些對白不會是打招乎問好了。

  語音文字在這些科技的輔助之下,它的弱點反而被掩盖了,優勢得以發揚。語音文字,以英文來說,兩人在通電話,你不會的字,我可以直接教你,c o m p u t e r,就是computer。而中文就慘了,「電腦」,要說「上面是下雨的雨,下面是…」,即使一個淺白的字,像‘狗’字,對於兩個中文都不太好的人,一個要教,一個要聽,就會「左邊這樣那樣,右邊這樣那樣」,搞了老半天,比不上人家英文的d o g三個字母搞定。只要會26個字母,想要在電話上學甚麼英文字都沒問題。而這個時代,有誰不用電話呢?總不會為了一兩個字把它畫成圖案傳真(fax)給你。

  雖然現在的這些科技在將來必定會有,這主要是因為格式版本眾多,但至少在目前它們把英文的缺點遮盖了,把優點強大的發揮。也因為英語的便利與它的價值關係,學習它的人蜂擁而來。而學習中文的外國人呢?聽說有人學了簡體中文,去了台灣看不懂一大堆繁體字;也有人學了繁體中文的,去了中國目瞪口呆。他們不知道原來中文字也有差異,就冒冒然去學習,這對中文的發展,也是一個大障礙。

全球學英文

  這裡不論英文的好與不好,在时代的巨輪下,沒人能阻擋英文領土的繼續擴張,中文沒想要去阻擋的話,那麼誰也擋不了,不可能依賴印度文吧!更何況他們早就已是英語的殖民地了。

  而像中港台,日韓,新馬這些以漢字為主,和常用漢字的族群,都全力在學習英語。或許那些中國古老的智慧,再過多幾年都要翻譯成英文,大家再以英文來閱讀。為何要學英文,因為當中國人要和德國人溝通,當香港人要跟越南人溝通,當台灣人要跟馬來人溝通,大家總不會用華語吧?所以英文成了國際用語,其中一個原因也是中國還不夠富強。因為英語最通用,學了後可以跟德國、越南人、印尼人溝通,不必學德語、越南語、和馬來話,事倍功半。

  華人的適應能力強,全球有目共睹,他們為了生活,不管生活在哪個國家都可以學好當地的語言。為了生意,學習英文更不成問題了。而中華民族也因為俱略這個特質,幾千年下來,雖然經歷比別人更多的苦難,卻活得比別人都好,人數比別的民族都多。那麼要學英文賺大錢,何樂而不為呢?

  就在大家拚命學英文的同時,不知大家是否注意到,若要跟日本人做生意,通常他們都不配合別人,而是別人要學習日語去配合他們。他們憑甚麼啊?但這麼一看,他們反而讓日語更有價值的存在於這個世界。而中國人不執著這個語言問題,為了生意願意學習各種語言的關係,反而讓別人不必學習中文,也使中文的價值減少了。

  賺錢繳稅是愛國,如果賺錢又推廣自己民族的文化與文字,更家愛國(對中國人來說)。

電腦文字方向

  就在大家以英語使用著電腦的同時,我發現電腦的文字也在演進,這讓我覺得必須要向大家說明,別以為圖形文字打輸了這場仗。

  自從中學開始接觸電腦以來,我看見電腦的發現與演進,在學習電腦的過程中,更加瞭解電腦語言的發展。從最早時人們衹能用電腦語言(零和一)到組合語言(Assembly Language),再到程式語言(programming language)。這幾個時期,一般大眾還是沒辦法和電腦談得來,都是一些俱略編程能力(programming skill)的人才能夠指揮電腦。

  到了MS-DOS,PC-DOS,一大堆指令式(command line)DOS的時代,一般人就可以開始對電腦下命令了,雖然有時它還是不聽話,可能是下錯指令或下了指令電腦楞住了。而我們也必需有很好的記憶力才能記住那一大堆的指令,時間長了沒用就會忘記。但這時就有許許多多的人,開始去學習與電腦溝通的語言,主要是看在電腦的工作效益份上。

Command Line Interface

  在約十年之前,進入了微軟的Windows大時代,更多人可以在電腦上工作了,而現在幾乎所有的辦公室都有電腦了(除了大老板的沒有之外)。現在,一般大眾衹要受過簡單的訓練,就能指揮電腦工作,應用自如,而這一切都要歸功於用戶圖形介面(GUI)。

演變

  電腦發展的同時,我們看到了電腦介面的演進,它讓大多數人都可以跟電腦溝通,也讓電腦更加普及。這當中,人類和電腦的介面,從人機介面(HCI, human computer interface)或圖形介面(GUI, Graphical User Interface)可以看出,原來它反而是從機器語言(例:”10101110″)走向了圖形文字(例:「車」),GUI。

Graphic User Interface

  我有這樣的經驗,這幾年一直在Windows平台上工作,對於Linux的指令已快忘光,但還有個顧客的資料庫伺服機(Database Server)運行在Linux之上,前陣子出了問題,我到前線去,真的是舉‘指’維艱,指令都想不起來。這對於熟練的工程師當然不成問題,但對少用者來說,真的望機興嘆。如果它裝有Gnome或KDE的圖型介面就還好,徧徧當初就沒有裝。

  如果是有圖形介面,至少還有可以在目錄選項看到,恢復記憶的可能性。單單應用指令(command),忘了就沒發操作了。所以大家能明白為甚麼Windows, Macintosh能最被廣泛接受的原因了。

  在這裡,我們不是也很明顯的看見,在短短幾十年裡電腦語言的演進嗎?難道它不是從‘拼音’文字走向了「圖像」文字嗎?為甚麼它的發展是往圖形的方向走呢?這值得大家認真的去深思。

  看看Windows裡的圖標(icon),在十多年前Windows 3.1/95時,文件夾(folder)是單純的,到了Windows XP,文件夾(或資料夾)的圖標分得更仔細了,如果你看看音樂文件夾、錄影文件夾、相片文件夾之間的差異,那就會明白古人的聰明。我們的中文不是也有部首嗎?凡是車字傍的大概都和交通工具有關了,如果你不會那個字,但看一個‘車’字傍,也可以去猜測,再讀完整篇文章也已略知一二了。

  也就是這樣的便利,所有的電腦系統,只要給一般用戶的,都往著圖形介面(GUI)去發展,這也說明人們認圖要比認字來得容易,要不然也不會弄一堆圖標(icon)出來,不是嗎?

Folder Icons

古董GUI

  而我們現在用的漢字,幾千年來,千千萬萬人用的,不就是真正的GUI嗎?那是一個用了五千年的GUI。而且這個東西的好處是,我們可以明白古代不管是李斯、司馬遷、李白、蘇東坡或曹雪芹的文字內容。如果,我們能好好的利用中文的優勢,再過千年以後(如果地球安然無恙的話),我們的後代不管說的是甚麼口音的方言,還是可以通過中文字來理解我們所累集的知識、想法、和經驗。

  那為甚麼錄音錄影靠不住呢?其實問題很明顯,技術的日新夜異,就像你老爸的唱盤已沒有唱機可以播出了。這些東西都不可靠的話,那麼就得回歸到最基礎的文字,為甚麼有五千年的GUI不好好珍惜,而拚命的往指令式介面走回頭路呢?

  但有些事,即使我們知道它的真相,也不能阻止歷史的前進,而大洪流更不是一兩個人所能阻擋,就像中國的歷史並沒有因為秦始皇的焚書坑儒、楚霸王的火燒阿房宮而停止前進。我們都知道被坑的,被燒的當中還有許多好東西,但好東西的毁滅是沒辦法被幾個人所阻止。

  真正擁有這個古董的主人,如果不會去發揮,那麼就只能看著別人的玩意漸漸的流行,甚至取代了這個古董。而當你的新玩意行不通時,再要找回那些古董,古董也不知丢到哪去了。musiam

回頭路

  千年GUI又如何,大家認為學了英語會更高級,會更有機會,人之常情。就這樣,我們眼看著電腦從10101100走向dir /w,再向走像「開啟」(Open)的圖標(icon),而卻有許許多多的人,放棄了千年的GUI(Icon圖標),走向copy *.* d:\,再走向了10101100。

因為這群人覺得西人能富強,學他們的準沒錯。但他們沒有發覺自己是這世界存在最久遠的民族,而能夠一代一代流傳下來不被時代淘汰的原因,卻沒人想要去知道。

十八般武藝

徵才廣告

  時常在徵聘廣告中看見招聘程序員,列出來的條件,在國內沒人覺得不妥,在國外我就不知道了.通常程式語言都要會VB, JAVA, DELPHI, C#,資料庫就要來個MSSQL, MySQL, Oracle.然後會一點ASP.Net或PHP,報表就要來個Crystal Report.一個程式不可能沒有一點圖標(Icons)或圖形界面設計,所以還要會Adobe Photoshop或Illustrator.最後他們歡迎剛畢業的大學生去應徵,也歡迎有兩年工作經驗者來.最好要有交通工具,然後會華巫英三語,還要像乾電池一樣‘耐操勞’.


人找工

  可是剛畢業大學生我們可以猜出企業能付給的薪水到甚麼程度.但是一個大學生會懂那麼多才怪.還是祇需要會幾樣就夠了?一個沒有經驗的大學生,看了廣告必定找不到工作,因為那麼多工具,至少有兩三個是沒用過沒聽過的,還要做一些美工設計.實力不夠沒信心的畢業生根本不敢去,有實力有信心者就三思了,該不會是去打雜的吧?幸好還有一批實力中等的,來滿足這些企業.

  但若仔細觀察,會發現廣告中的錯誤,有時是Visio Basic,有時Jaya,有時Micromedia Flash, 有時Macrosoft Office.通常這種公司都不會是IT公司,他們要請的是個全能的程序員.所以畢業生若有興趣,可以大膽上去應徵,他們通常不會考你甚麼,因為他們的人事部也不知道老闆要請甚麼人(就是因為老闆甚麼都不會,所以才要請個甚麼都會的).但重要的是你的大學成績不要太爛.如果成績太爛,你說你精通 Microsoft Word也沒人相信(為甚麼呢?因為多做工課者常用Word,Word愈熟就表示功課做愈多,成績自然不會差.抄功課者多熟悉Copy, Cut & Paste功能,其它功能則不熟.由此可證功課好,Word自然不會差;成績差,則Word也不會好到哪!你不會想說你用手來寫工課吧!).

  畢業生在這種公司也有大好處,因為你甚麼都要會.誰教你應徵時說甚麼都會,十八般武藝都裝在腦裡.這時你祇有靠自己了,不會也要逼著自己去學會了.


工找人

  那麼公司看起來好像賺到了.可是運氣不好的話,不是請到身懷十八般武藝的程序員,而是請到身藏七種武器的程序員,因為他的CD盒有七到十八種盜版的工具光碟(Microsoft Windows, Microsoft Office, Visual Studio .Net, Java, Macromedia Flash, Delphi, MSSQL, MySQL, Photoshop, Illustrator, etc).他祇會安裝,然後就…,不會那麼多,天才幾千年才一兩個,怎麼會被你的低薪請到呢!而且天才的目標在Microsoft,絕對不是SimpleSoft或EasySoft.

  看見了市場需求,畢業生也必須符合需求.所以身為經理人的,在招募新人時看見那份履歷,絕對會刮目相看.因為此人會Windows 95/98/Me/NT/2000/XP,會Word, Excel, Powerpoint, Access, Outlook,Netscape,還會HTML, JavaScript,來應聘程序員的更會Java, C#, C++, Delphi, VB, Foxpro,資料庫會MSSQL, Oracle, MySQL,最後他還會Photoshop, Illustrator, 3D Studio Max, Flash,然後還有其它的WinZip, ACDsee等等.

  身為經理人的當然也不會被嚇倒,因為司空見慣了,幾乎每個來應聘的都會相同的武功.祇可惜不能擺個擂台,讓他們來個華山論劍,然後聘請武功天下第一者.若要知道他們是否符合要求,祇需叫他們寫兩個小程式就看出來了.最好的辦法是給個簡單的小測驗,也考考最新資訊,就可以比較客觀的選出的人才或可造之才.

  當然,經理人還是要非常小心,免得失去了無招破有招的令狐沖還有招式全忘了的張無忌.若真的三生有幸聘請到了令狐沖或張無忌怎麼辦?非常簡單,千萬不要讓他們去寫甚麼會員或會計系統,更不要讓他們去升級舊系統.他們是遇強愈強的,所以一定要把他們丟進去地牢裡或山谷底,他們才能真正發揮,當然你的公司也要有地牢或山谷,俗稱研發部R&D Department.總之不要讓他們出去見客戶,他們本來就不想牽涉到江湖事(人與人的問題)要不然早就當教主了,還會輪到你來面試他?


天馬行空

  這時,我想,若有一日我再去面試,我要在履歷表填上「失傳八百年的九陰真經,3 years working experience」(一定要有幾個英文字,看起來比較專業!),不懂經理會不會錄取我?在我還沒嘗試之前,希望你可以去試試.如果他說‘NO,不錄用’,你就一掌把他打到外太空(是哪一本漫畫了?).