What have you found for these years?

2007-07-11

Rails short comment

幾日來連續對 rails 與 web development 的研究,讓我沒太多時間想其他事,
於是這幾日哀號的聲音就變少了。當然這不是重點,重點只是我覺得確實是有很多
好講的。例如,web development 真的是個大戰場,五花八門,大亂鬥,什麼鬼
東西都有,而且同樣的還會有好幾份。而他們的技術門檻,也真的通常都不高。
所以各家人馬都來參一腳,每個人都來插上一句話,讓我覺得,雖然我很喜歡 web,
但是卻對 web 感到很倦怠。其實就某方面而言,對遊戲也是這個樣子。不懂裝懂的
人實在太多了,辯解到最後,只覺得你們還是就這樣繼續誤解下去好了,又何必多說
什麼?好像離題遠了﹍不知不覺就想抱怨一下。

總而言之,雖然喜歡 web, 卻仍然感到徬徨。再仔細想想自己唸過哪些東西,
就會覺得天啊,怎麼這麼雜啊?以致於每次別人問我研究什麼時,總是支支吾吾講
不太出來,只能含糊地說 programming. 再仔細問下去,我就真的不知道要怎麼
講了。web 當然不熟,os 沒唸過,windows/linux/mac programming 一概
不會(我只碰 cross-platform 的東西),gui 雜七雜八碰了好幾個,卻沒真的
研究過,程式語言,其實也只是當作興趣隨便玩玩而已,理論都不會。embedded
system, 我根本不碰硬體,所以也不用提 firmware, driver 等等東西。
資料結構,演算法,根本都跟沒念沒兩樣。這樣講下來,我好像什麼都不會 XD

怪不得別人會覺得我是新手。

好像離題太遠了﹍。總之我最熟的還是 C++ 和 Ruby, ActionScript 好久沒碰了,
3.0 不知道改了哪些,有沒有把如 dynamic scope vs static binding 的
蠢問題解決了?Haskell 碰了這樣的一點,很明確大部份的東西都還不知道,恐怕還是
不要隨便拿出來講比較好。monad 看到一半就這樣沒看了,也覺得滿可惜的,有些東西
覺得才剛要看懂,就這樣斷了。又扯遠了,我看 rails 下次再講算了 XD

呃呃呃,還是來看 rails 吧。簡單地說,我覺得 rails 是個像是 Blizzard 的
遊戲的 framework, 就是我常說的「外行湊熱鬧,內行看門道」。rails 有很多簡單
方便的規定,只要你遵守,做什麼事都很容易。但你也知道,不可能可以找到一個到哪裡
都通用的法則。所以如果你只遵守 rails 預先規範好的動作,寫起程式反而會彆手彆腳。
因此,rails 除了提供簡便的規則外,也提供無數讓你改變規則的作法,就像 Ruby!
沒錯,網路上常常流傳著一個疑問,rails 可以沒有 ruby 嗎?可以用其他程式語言
做出 rails 嗎?現在我有個簡單的結論,就是「很難」!

rails 善用了 ruby 的特色,也延用了許許多多 ruby 的思維。簡單地說,rails
相當 rubyish, 這在其他語言是很難實現的,除非那個語言本身就很像 ruby,
否則很容易做出讓人覺得彆手彆腳的東西。例如我之前寫 PHP, 那 OO 真讓人害怕!
我有種回到 C 語言的詭異感覺!

同時這也代表著,要完一件事,在 rails 確實是有各種方法的。也就是說,我覺得
寫 rails 程式其實是有很高的鑑別度。不見得能分辨高下,但是風格顯見一斑,
同時也是:「外行湊熱鬧,內行看門道」。我喜歡這種感覺。想照著預設規則走,
就照著預設規則走,沒什麼太大的不好。想自己重新塑造一個規則,沒問題。想
follow 別人塑造的規則,fine. 想四處用著不同的規則﹍盡量不要 XD
但趕時間時就會覺得也能亂搞其實是件讓人又開心又羞愧的事 XD

Blizzard, Guild Wars, Ruby, Rails, 我覺得這些東西都是這樣,
大家都能在上面找到自己的一席之地,這樣很好。再扯些別的的話:
Magic: the Gathering, 快攻,控制,必殺,搞笑,主題,什麼都好。
unicode, cross-platform, open source,...越扯越遠了 XD

不過我真的很不能理解喜歡 win32 programming, .doc, .ppt, big5...
真的曾經有人跟我建議不要用 utf8 用 big5!!我真不懂這些人到底在想什麼。
當然 big5 是另一回事了,但捧微軟的人還真的是多到令人覺得可怕,甚至作噁。
這件事我一直很介意,居然有人自以為身居長輩,惇惇告誡別人才不管我是資O系,
一定要會 word, blah blah blah... vista 多好多棒,還不允許我反駁 XD
他大概是我唯一一個聽到對 vista 有正面評價的人吧 :o 真不敢相信他居然以
技術自居,嘴泡(口沫橫飛)的技術吧?有種標準愚蠢台灣人的感覺。

下次講 title.

6 retries:

Anonymous said...

ActionScript 3.0 我建議暫時不要用
馬的,搞到快和 Java 一樣煩人,class diagram 大到嚇人,然後去他的 NO-DOWNWARD-COMPATIBILITY!

一堆原有的問題沒解決,只想把語言體系變得更強大(對大多數來講只是變得更複雜並沒有更強大),然後 ....算了

總之這兩天對它的感想是敬而遠之。
東西那麼大好歹也等穩定一點再用,誰知道他啥時想不開又出了個 AS 3.5 還是 4.0
終極警探都 4.0 了對吧

shxt

Plumm said...

ActionScript 原有的問題是什咩呀??

Lin Jen-Shin (godfat) said...

忘記回了﹍。

XD 看來怨念很深,不愧是 Adobe,
似乎舉凡大公司都愛搞大架構,如
Microsoft, Sun, Borland, Adobe, blah blah?

原有的問題就是 dynamic scoping 卻用 static name checking

Anonymous said...

太有趣了,用Blizzard來形容Ruby, Rails的情況,真的很貼切,尤其是下面的快攻ㄧ連串的形容,讓我想到在大學狂熱AOK的時代,一直研究戰術的結果,然後不斷的PK團戰,敵人和自己都逐漸變強了。

Plumm said...

AOK 呀? 其實後來的 AOE3 代也蠻熱門的, 平衡性據說不錯, 卡片也加入了不少變化, 目前要出第二個資料片中 ^^

Flash 的那個問題我還是不太瞭解就是了, 不知道有沒有實例咩??

Lin Jen-Shin (godfat) said...

居然到現在才有空回! orz

> kuni said...
感謝捧場 XD

> Plumm said...
我還是不太喜歡那一系列的感覺,Age of Mythology 稍微好些,不過我也沒玩多久。

> Flash 的那個問題我還是不太瞭解就是了, 不知道有沒有實例咩??
sure.

function do_something(){
this.body = function(){
trace(a);
}
}

假設 this.body 是 MovieClip, which is a dynamic class instance, 跑上面這段的 a 是 static name checking 的,所以如果你的 this 看不到 a, it would raise name error, 就算你的 this.body.a 是存在的也一樣。但事實上,真正執行到此時,a 是 bind 到 this.body.a 的。

Post a Comment

All texts are licensed under CC Attribution 3.0