2013年5月25日 星期六

關於語言干擾問題

最近幾天在寫 PHP 架站機程式時, 常出現 undefined token 的錯誤, 再三檢查都覺得 OK 呀, 語法沒錯ㄚ, 再仔細一看發現, 呵呵, 這是前端 Javascript 的世界, 我怎麼用點號來連接字串呢? 再來第二個常見錯誤, 就是在 jQuery 中使用了 $ 開頭的變數名稱, 因為我把它當作 PHP 來寫, 難怪會相衝. 這就是機器語言世界裡的 "語言干擾現象".
以前在研究所念語言學的時候, 有探討過語言干擾現象, 當時正好是小狐狸們牙牙學語期, 剛開始我觀察到她們在母語與國語之間似乎可以自由切換, 跟阿公阿嬤講客家話; 到幼稚園跟同學講國語, 所以我認為, 多語系社會裡, 語言干擾的憂慮是多餘的, 就像書上說瑞士小孩從小接觸義, 德, 法三國語言, 不會有干擾問題, 該說哪一種語言就說哪一種. 不過現在因為母語講得少了, 有時菁菁打電話給鄉下阿嬤時, 忘記客語怎麼說時就用國語, 甚至用英文哩, 但我覺得是因為母語退化所呈現的替代關係, 不是語言干擾現象. 如果你擅長這兩種語言, 事實上是可以切換自如的.
但是電腦語言似乎就有點不同了, 它不像自然語言那樣有說話的對象, 大腦會潛意識自動切換, 從編輯器看到的都是長得很像的程式碼, 除非有特別注意, 要不然很容易就發生干擾現象, 常常寫完後端 PHP 回到前端寫 Javascript 或 jQuery, 會走不出來, 還是用點號來連接字串, 用 $ 做變數開頭.
這就是以前剛學 ASP 時, 我選擇 Javascript 而不是大家常用的 VBscript 來寫後端程式的理由, 因為這樣我只要學一種語言就可以前後通吃, 一招走江湖啦. 可惜 ASP 後來變成 ASP.NET, 對於擁抱 Java 陣營的我而言, 實在不願意再學一種新語言, 到現在在公司還是繼續用 ASP 技術. 直到遇到 cURL, 才下定決心, 再學一種後端語言 PHP. 所幸 PHP 基本語法跟 Javascript 大同小異, 很容易學, 就是變數都要以 $ 開頭, 有點小困擾就是了.
唉, 幹嘛弄出這麼多語言呢? 難怪學資工的永遠學不完. 昨天在圖書館看到一本 JVM 的書, 裡面回顧了 Java 各版本蛻變的歷史, 陸續加入了泛型什麼的, 卡好, 考 SCJP 時讀過呀, 現在沒用到早已經忘光光. 學了也從來沒用到這些東東. 或許搞大型專案的, 搞軟體工程的會用到吧. 我只要程式能用就行, 達成目的最重要, 不要學那麼多語言, 兩三樣就好. 至於實做技巧, 嗯, 樸實直觀, 以後自己看得懂就行. 人生要做的事還很多, 沒那麼多時間花在鑽研這些高級技術上.

沒有留言:

張貼留言