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:

linjack said...

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

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

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

shxt

Plumm said...

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

godfat 真常 said...

忘記回了﹍。

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

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

kuni said...

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

Plumm said...

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

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

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