主题:【原创】新时代新潮流WebOS 【1】 -- 邓侃
我自己用Javascript做过一个小东西,05年在Yahoo Widget平台上写的一个3500行代码的Widget,名字没啥创意,就叫Infobar
因为widget的JS引擎取自mozilla,所以和firefox完全一致
写这个程序都碰上哪些问题了呢?
一、JS没有包装事件委托的Context,而是就地运行。换句话说,某object把自己的一个方法a()提交出去,当a()被第三方callback时,这个方法根本就不知道自己的爹是谁。为了解决这个问题很是费了一通脑筋。因此,我认为没有闭包是JS的一大缺点,而不是优点。Java做的就不错,nested class除了语法麻烦点,语义还是很清楚的。C#的lambda算子我很喜欢,但是语义过于动态了。
二、我对动态改变class定义没有啥深刻的认识。但是在做设计时常会碰到要把两个完全不相关的类型树融合,对于单根继承的C# java, 这种情况痛苦无比。要是换成动态语言,允许直接改动基础类的定义,那就简单的多了。
三、弱类型在小范围使用时非常高效。在大项目中使用就是灾难。这个infobar后来不再维护,起因就是一个窗口的属性会随机乱变,无从跟踪,弄了几周都搞不好,不知道是谁干的。加上vista出来啦,侧边栏这块儿有了替代品,就停止更新了。相比之下我更看好自动类型推导
四、JSON比普通的序列化语义性好,比xml清爽得多。也没有big little endian,16bit/32bit integer等问题,在JS环境下可以简单的eval,自然就流行了。
五、调试的大牛要数firebugs,当年要是有这类东西,我这个infobar绝对不会做到一半就废了,嘿嘿。
- 相关回复 上下关系8
压缩 6 层
🙂Compiling and Linking 1 邓侃 字1059 2009-04-01 09:44:55
🙂Lambda function--这个其实大家经常用,但 6 t1000 字2109 2009-04-05 09:17:53
🙂T兄此篇应该独立成章 邓侃 字712 2009-04-06 02:05:48
🙂大家都认为硬件更新速度的摩尔定律 2 yueyu 字106 2009-03-27 10:33:31
🙂iPhone促进了手机硬件制造 邓侃 字114 2009-03-27 19:50:28