Skip to content

Instantly share code, notes, and snippets.

@caasi
Created November 3, 2012 19:17
Show Gist options
  • Save caasi/4008335 to your computer and use it in GitHub Desktop.
Save caasi/4008335 to your computer and use it in GitHub Desktop.
閒聊之後

唉呀,有了 gist我還需要 Evernote嗎?

閒聊之後

看了下 EtherCalc.tw那篇,原來之所以換用 Node.js做 server,是為了讓 client和 server能共用處理試算表指令的 code。這是目前最吸引人的地方之一XD

尷尬了,《開源應用程式架構》還沒開始讀。XD

然後就想到The Future of Web Gaming

Google的 Colt McAnlis想看到的未來是,靠著 LLVM的力量,讓我們能在 client端用任何語言。這樣也許哪天可以看到在 client跟 server共用的 Ruby code XDD

可是在支持「JavaScript is Assembly Language for the Web」的人眼中,需要的是emscripten,日前正夯的 BananaBread就靠它XD

之前 Brendan Eich的新演講之所以演變成 JavaScript與 NaCl大戰,現在看來,主要應該是在爭哪邊比較適合當 ASM for the Web吧。 :p

看看BE靠杯 NaCl與 pNaCl

--

筆記一下我該看看的東西:

有趣的是文中提到之所以用 LiveScript為的是解決 callback死亡金字塔。 LiveScript真的那麼神奇嗎?不用 JavaScript沒有的 fiber來搞 cps變換也能解決這個問題?那真該好好看一下它怎麼做的。

--

JavaScript是可以在呼叫不存在的 method時 catch到 TypeError,但對搞 Proxy並沒幫助。雖然之後也許會有個 NoSuchMethod,但現在它還不是標準。

--

今天看了看Broken Promises of HTML5, and What's Next?,然後發現CreateJS,剛好呼應聊到的 display list。

Microsoft用它搞了個Atari ArcadeXD

然後你的回應

The Future of Web Gaming, 還在看,我本來沒想要看的, 但是愈看愈爽,所以決定看完了 XD

當初看也覺得該影片意外有趣XD 而且看得視角比較遠,不再專注在 JavaScript本身的問題了。

自動透過 emscripten 把我們的程式 compile 成那種沒人看得懂得的 javascript. 或許 emscripten 還可以 emit v8 optimized code, 或是 spider monkey optimized code...

這樣看來是條光明大道,也解決兩者不見得相容的問題。

但總覺得 Brendan Eich 並不是想看到這條路

同感,身為父親應該更愛自己的孩子?:p

我猜 livescript 的 backcall 大概就是用這種方式做轉換的 我想應該是沒什麼問題吧,雖然我沒去看裡面的實作,如果你看出來了 請務必告訴我 XDD

瞭解,作業越來越多了XD

裡面的程式會是 synchronous 的

曾在 IRC看人說 fiber是「fake it」,這邊我知道的不多,也該做點作業。0rz

另外 cascade 我還真有點看傻眼了 XDDD

在 jQuery的世界常見的說法是,可以省著不用把變數存起來,我不知道方便以外還有沒有別的優點就是。

可以抓到 TypeError 那為什麼不能做 proxy?

如果得要靠自己定義的 set、 get methods來搞 proxy的話不覺得很煩嗎?XD 看了看 Backbone.js應該就是用自己的 set, get。

另外 TypeError標準下只給了 Human-readable description of the error,變成要自己切需要的資訊出來。
如果無法用語言本來的 .來操作 proxy,那是語言本身的問題,靠 set、 get來攔截訊息,用什麼語言都做得到。

看來時間可以解決這問題,慢慢等 Proxy普及?

display list 是說像是 flash 的 DisplayObject 嗎?

是吧, Adobe用那個來把 Flash弄成 HTML5了XD

@godfat
Copy link

godfat commented Nov 5, 2012

The Future of Web Gaming, 還在看,我本來沒想要看的,
但是愈看愈爽,所以決定看完了 XD

@godfat
Copy link

godfat commented Nov 5, 2012

說到在 client 跑 ruby, 之前正好看到
https://github.com/opal/opal
看起來就是直接把 ruby compile 成 javascript, 也有自己的 runtime
不過我沒試過就是了,說不定值得一試(應該是因為沒啥信心所以沒試)
emscripten 我猜是比較有希望,可惜我不確定有什麼 ruby llvm front-end
rubinius 是有用 llvm, 但不確定我能不能把裡面的東西抽出來
理論上一定可以,只是可能不直接支援

試了一下 BananaBread, 滑鼠太敏感了,而且也是頓不太容易玩
不過居然這樣我還能幹掉兩個 bot XDDDD

雖然我實在不喜歡 Brendan Eich, 不過關於 NaCl 我的想法倒是跟他差不多
但我也不覺得 javascript 真的是一條對的路,除非 emscripten 真的很成功,
讓我們可以真的不用碰到 javascript, 而能自動透過 emscripten 把我們的程式
compile 成那種沒人看得懂得的 javascript. 或許 emscripten 還可以 emit v8
optimized code, 或是 spider monkey optimized code...

如果真是這樣,反正我也沒喜歡過 assembly, 那 javascript 再爛我也沒啥意見
但總覺得 Brendan Eich 並不是想看到這條路

@godfat
Copy link

godfat commented Nov 5, 2012

你提到 CPS, 我猜 livescript 的 backcall 大概就是用這種方式做轉換的
我想應該是沒什麼問題吧,雖然我沒去看裡面的實作,如果你看出來了
請務必告訴我 XDD

如果說這跟 fiber/coroutine 有什麼不同的話,我推測是你看 backcall 那邊
你需要寫 do 然後一個縮排,那裡面的程式會是 synchronous 的
用 fiber/coroutine 的話,會變成以下整個都是 synchronous 的
我想理論上用 CPS 的話應該會比較有彈性,不過如果以下程式全部都要
synchronous 的話,可能得被迫全部 do 起來?

另外 cascade 我還真有點看傻眼了 XDDD
這功能還真是有夠炫呀... 感覺是專門拿來處理 DOM 的 :P
老實講我想不到太多地方會需要用這種表達法

<hr�/>

可以抓到 TypeError 那為什麼不能做 proxy?
因為沒有標準嗎?

@godfat
Copy link

godfat commented Nov 5, 2012

github 吃掉我下面的留言了:

可以抓到 TypeError 那為什麼不能做 proxy?
因為沒有標準嗎?

@godfat
Copy link

godfat commented Nov 5, 2012

display list 是說像是 flash 的 DisplayObject 嗎?

@caasi
Copy link
Author

caasi commented Nov 6, 2012

但是愈看愈爽,所以決定看完了 XD
當初看也覺得該影片意外有趣XD 而且看得視角比較遠,不在專注在 JavaScript本身的問題了。

而能自動透過 emscripten 把我們的程式
compile 成那種沒人看得懂得的 javascript. 或許 emscripten 還可以 emit v8
optimized code, 或是 spider monkey optimized code...
這樣看來也是條光明大道,也解決兩者不見得相容的問題。

但總覺得 Brendan Eich 並不是想看到這條路
猜他還是愛 JavaScript的XD

@caasi
Copy link
Author

caasi commented Nov 6, 2012

囧,我不懂 github要怎麼回應,等等整個整理回原 gist好了。

@godfat
Copy link

godfat commented Nov 7, 2012

不用當作業啦,想到再說就好了 XDD 會這樣說完全就只是懶得自己看 XDD

我同意 fiber 算是造假的,所以需要一些功夫去包
不過 cps 又何嘗不是這樣?除非原本就寫成 cps 了,
但那種形式我覺得非常不好表達

省變數大概也就只是省下一點力氣想名字和打字罷了..
雖然我承認這件事其實也很重要

TypeError 那個我發現我想錯了 orz 確實單這樣不夠 囧
那個 Proxy 看起來不錯~~

原來 Atari Arcade 是這樣來的 XD
有時候總有種 HTML5 需要重走 Flash 走過一次的路的感覺.....
這些巨大的隔閡到底是怎麼回事?
看那個 The Future of Web Gaming 也有強烈的這種感覺
html5 fan boys 根本就搞不清楚狀況,那篇實在是罵得好,好爽 XD

@caasi
Copy link
Author

caasi commented Nov 7, 2012

對啊,重點不是要做一些漂亮的東西,而是想想該怎麼發展,才能做好有用的東西。

TypeError那段,想了下其實我的堅持也不對,真的沒辦法靠自己的 set跟 get也是得把東西完成。

也有罵得不好的,有前輩大爆氣唸了 JS一頓,主要著眼點我看來是放在實務與合作上。
這我就不懂了,已經有那麼多好的 strong type語言可以用,為何要來大罵一個本來就半殘的語言?
只好猜也許他們的環境不得不用到 JS。

重看了一下,作者刪文了XD 看來是氣到。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment