讨论讨论g9的好文:《JavaScript这浓眉大眼的也背叛革命了》

35 views
Skip to first unread message

pongba

unread,
Dec 13, 2007, 4:13:35 AM12/13/07
to TopLanguage
来源:http://blog.csdn.net/g9yuayon/archive/2007/12/13/1933030.aspx
严重推荐:-)不过估计这个讨论组里面不订阅g9 blog人也不多吧,如果看过了,请忽视我...

讨论之一:
昨天还听SpitFire说,用Ruby时,发现设计模式里面那些瓶瓶罐罐都用不着了;这不,就出现了一个绝好的例子,新版Javascript中native支持的multi-method。我想大吼一声的是,设计模式那不叫优雅,真正的原生支持才叫优雅!

讨论之二:
Javascript不沿用Ruby的duck-typing,居然把Java的侵入式interface搞过来了?这不是退步嘛。

讨论之三:
居然加入了内建的int和char!int不会是有限精度的吧?char是干嘛?有了string还要char?还好没有long...无语。
我觉得应该把所有的数值类型(int/long/short/double/float)规成一个类型numerics(就像haskell里面的numerics concept)一样,这才是动态语言的best short;

讨论之四:
参数化类型!?这个玩笑开大了吧?要静态检查也不是这么要的吧。看来马克思要笑了——事务的发展的确是曲折上升的。这老大是不是受"主流"语言刺激太大了... JS这种语言,duck-typing + concept(或haskell的type class),既保留灵活性,又保留静态检查,不是很好么?

暂时想到这么多。后面讨论时再补充...

Javascript这把成了大杂烩了。。。也难怪要被开涮。。。

--
刘未鹏(pongba)|C++的罗浮宫
http://blog.csdn.net/pongba
TopLanguage
http://groups.google.com/group/pongba

katkat lim

unread,
Dec 13, 2007, 4:19:32 AM12/13/07
to pon...@googlegroups.com

老实说,看不懂。
并且,除了网页之外,就再也没看到javascript出没了。

Googol Lee

unread,
Dec 13, 2007, 4:24:46 AM12/13/07
to pon...@googlegroups.com
这篇blog的结尾搞的我更忍不住要看beautiful code了,啥时出阿……

在 07-12-13,pongba<pon...@gmail.com> 写道:


--
新的理论从少数人的主张到一统天下,并不是因为这个理论说服了别人抛弃旧观点,而是因为一代人的逝去。

My blog: http://googollee.blog.163.com

SpitFire

unread,
Dec 13, 2007, 4:30:48 AM12/13/07
to pon...@googlegroups.com
刚也看到了,也是觉得ES4有点怪。。

我想应该是定位问题吧,估计有人觉得javascript不错,用到了一些其它领域,需求增加,语言复杂

在07-12-13,Googol Lee <goog...@gmail.com > 写道:

Wang Xin

unread,
Dec 13, 2007, 4:49:56 AM12/13/07
to pon...@googlegroups.com


在07-12-13,Googol Lee <goog...@gmail.com> 写道:
这篇blog的结尾搞的我更忍不住要看beautiful code了,啥时出阿……
这个你得召唤一下出版社的编辑,但不是刘江兄
--
Everything is possible and available if we trust ourselves!

pi1ot

unread,
Dec 13, 2007, 5:53:25 AM12/13/07
to TopLanguage
就是鸡腿萝卜雪糕一筐装,反正看起来是热闹了。

On 12月13日, 下午5时13分, pongba <pon...@gmail.com> wrote:
> 来源:http://blog.csdn.net/g9yuayon/archive/2007/12/13/1933030.aspx
> 严重推荐:-)不过估计这个讨论组里面不订阅g9 blog人也不多吧,如果看过了,请忽视我...
>
> 讨论之一:
> 昨天还听SpitFire说,用Ruby时,发现设计模式里面那些瓶瓶罐罐都用不着了;这不,就出现了一个绝好的例子,新版Javascript中native-支持的multi-method。我想大吼一声的是,设计模式那不叫优雅,真正的原生支持才叫优雅!
>
> 讨论之二:
> Javascript不沿用Ruby的duck-typing,居然把Java的侵入式interface搞过来了?这不是退步嘛。
>
> 讨论之三:
> 居然加入了内建的int和char!int不会是有限精度的吧?char是干嘛?有了string还要char?还好没有long...无语。
> 我觉得应该把所有的数值类型(int/long/short/double/float)规成一个类型numerics(就像haskell里面的numeri-cs
> concept)一样,这才是动态语言的best short;
>
> 讨论之四:
> 参数化类型!?这个玩笑开大了吧?要静态检查也不是这么要的吧。看来马克思要笑了----事务的发展的确是曲折上升的。这老大是不是受"主流"语言刺激太大了...

莫华枫

unread,
Dec 13, 2007, 7:01:00 PM12/13/07
to pon...@googlegroups.com
On Dec 13, 2007 5:13 PM, pongba <pon...@gmail.com> wrote:
来源:http://blog.csdn.net/g9yuayon/archive/2007/12/13/1933030.aspx
严重推荐:-)不过估计这个讨论组里面不订阅g9 blog人也不多吧,如果看过了,请忽视我...

讨论之一:
昨天还听SpitFire说,用Ruby时,发现设计模式里面那些瓶瓶罐罐都用不着了;这不,就出现了一个绝好的例子,新版Javascript中native支持的multi-method。我想大吼一声的是,设计模式那不叫优雅,真正的原生支持才叫优雅!
谁让他姓java呢!:P


讨论之二:
Javascript不沿用Ruby的duck-typing,居然把Java的侵入式interface搞过来了?这不是退步嘛。
谁让他姓java呢!:P


讨论之三:
居然加入了内建的int和char!int不会是有限精度的吧?char是干嘛?有了string还要char?还好没有long...无语。
我觉得应该把所有的数值类型(int/long/short/double/float)规成一个类型numerics(就像haskell里面的numerics concept)一样,这才是动态语言的best short;
谁让他姓java呢!:P


讨论之四:
参数化类型!?这个玩笑开大了吧?要静态检查也不是这么要的吧。看来马克思要笑了——事务的发展的确是曲折上升的。这老大是不是受"主流"语言刺激太大了... JS这种语言,duck-typing + concept(或haskell的type class),既保留灵活性,又保留静态检查,不是很好么?
他爷爷谁来着?C++吧。:P


暂时想到这么多。后面讨论时再补充...

Javascript这把成了大杂烩了。。。也难怪要被开涮。。。

--
刘未鹏(pongba)|C++的罗浮宫
http://blog.csdn.net/pongba
TopLanguage
http://groups.google.com/group/pongba





--
反者道之动,弱者道之用
m...@seaskysh.com
longsh...@gmail.com
http://blog.csdn.net/longshanks/

katkat lim

unread,
Dec 13, 2007, 8:10:34 PM12/13/07
to pon...@googlegroups.com
to 莫华枫:
我觉得他爷爷应该是C+Lisp,不是有一篇文章叫做:《Javascript-批着C外衣的Lisp》吗?
:P

莫华枫

unread,
Dec 13, 2007, 8:44:56 PM12/13/07
to pon...@googlegroups.com
可能你说的对。
我的思路是:Java算是C++生的吧(不过基因变异的厉害),javascript姓java,自然是Java的孩子。不过,javascript或许是领养的?

red...@gmail.com

unread,
Dec 13, 2007, 10:54:59 PM12/13/07
to pon...@googlegroups.com
莫华枫 写道:
> 可能你说的对。
> 我的思路是:Java算是C++生的吧(不过基因变异的厉害),javascript姓
> java,自然是Java的孩子。不过,javascript或许是领养的?
当初 netscape 看到 java 火, 将自己的孩子说成是 java 的孩子, 这叫什么呢 ?
大陆女子携子香港寻夫, DNA 检验之后发现不对 ?

张沈鹏(电子科大08年本科应届)

unread,
Dec 13, 2007, 10:58:29 PM12/13/07
to pon...@googlegroups.com
javascript真正的标准只在于浏览器的实现:)

--
个人网站:http://zsp007.com.cn/
双学位:生物医学工程+计算机科学与技术
技能:C++(STL,BOOST) Python(Django) HTML+CSS AJAX
-- 张沈鹏

Yong Yuan

unread,
Dec 13, 2007, 11:11:35 PM12/13/07
to pon...@googlegroups.com
是滴。原来好像叫LiveScript。被Netscape老奸巨猾的老总毙掉了。据Brendan回忆,当初他想把Scheme加到浏览器里。他的上司说,没有人会用((((((((((。。。。。。滴。于是他就用C的语法,Lisp的语义。经理们也就认可了。充分说明了智慧地"ask for forgiveness, not permission"是多么重要。后来再加上了Self的prototype,ES3就基本齐活儿了。顺便说一句,Dennis Ritche最爱的语言其实是Self。

莫华枫

unread,
Dec 13, 2007, 11:45:50 PM12/13/07
to pon...@googlegroups.com
啊!这么说起来,javascript还是java的叔叔呢!:P
这个...    &^>.%#$&.(*^%

Fisher

unread,
Dec 14, 2007, 1:26:42 AM12/14/07
to pon...@googlegroups.com
当初JavaScript势大,ms一看不爽,搞个VBScript对抗,但JavaScript已成事实标准,只能搞个JScript和JavaScript兼容,都符合ECMAScript规范,如今JScript在.Net上可以编译成.exe可执行文件了。

On 12/14/07, 莫华枫 <longsh...@gmail.com> wrote:

red...@gmail.com

unread,
Dec 14, 2007, 1:32:45 AM12/14/07
to pon...@googlegroups.com
微软多年以来的做法是, 只要和自己有关, 不管有用没有用, 地先大大地圈了再
说, 已经被别人圈了? 那就搅混水, 搅得越乱越好.

这招成功了很多次, 不过到了互联网这个战场, 似乎这招用处不大了, 这个战场,
还是开放一些更容易被接受.

Fisher 写道:

Eli

unread,
Dec 14, 2007, 2:10:10 AM12/14/07
to TopLanguage
JavaScript要是这么搞, 我宁可选择微软的解决方案了. 靠靠靠. 不过它总得兼容老的写法吧?

在我看来这全是商业化的, 想吸引静态语言程序员罢了.

On Dec 13, 5:13 pm, pongba <pon...@gmail.com> wrote:
> 来源:http://blog.csdn.net/g9yuayon/archive/2007/12/13/1933030.aspx
> 严重推荐:-)不过估计这个讨论组里面不订阅g9 blog人也不多吧,如果看过了,请忽视我...
>
> 讨论之一:
> 昨天还听SpitFire说,用Ruby时,发现设计模式里面那些瓶瓶罐罐都用不着了;这不,就出现了一个绝好的例子,新版Javascript中native支持的multi-method。我想大吼一声的是,设计模式那不叫优雅,真正的原生支持才叫优雅!
>
> 讨论之二:
> Javascript不沿用Ruby的duck-typing,居然把Java的侵入式interface搞过来了?这不是退步嘛。
>
> 讨论之三:
> 居然加入了内建的int和char!int不会是有限精度的吧?char是干嘛?有了string还要char?还好没有long...无语。
> 我觉得应该把所有的数值类型(int/long/short/double/float)规成一个类型numerics(就像haskell里面的numerics
> concept)一样,这才是动态语言的best short;
>
> 讨论之四:
> 参数化类型!?这个玩笑开大了吧?要静态检查也不是这么要的吧。看来马克思要笑了----事务的发展的确是曲折上升的。这老大是不是受"主流"语言刺激太大了...

Eli

unread,
Dec 14, 2007, 2:13:08 AM12/14/07
to TopLanguage
JScript.NET基本可以等于不存在. 但据说新的DLR上可能会直接加上真正的JavaScript了...

On Dec 14, 2:26 pm, Fisher <yuff...@gmail.com> wrote:
> 当初JavaScript势大,ms一看不爽,搞个VBScript对抗,但JavaScript已成事实标准,只能搞个JScript和JavaScript兼容,都符合ECMAScript规范,如今JScript在.Net上可以编译成.exe可执行文件了。
>
> On 12/14/07, 莫华枫 <longshank...@gmail.com> wrote:
>
> > 啊!这么说起来,javascript还是java的叔叔呢!:P
> > 这个... &^>.%#$&.(*^%
>
> > On Dec 14, 2007 12:11 PM, Yong Yuan <y...@cs.toronto.edu> wrote:
>
> > 是滴。原来好像叫LiveScript。被Netscape老奸巨猾的老总毙掉了。据Brendan回忆,当初他想把Scheme加到浏览器里。他的上司说,没有人会用((((((((((。。。。。。滴。于是他就用C的语法,Lisp的语义。经理们也就认可了。充分说明了智慧地"ask
> > for forgiveness, not
> > permission"是多么重要。后来再加上了Self的prototype,ES3就基本齐活儿了。顺便说一句,Dennis
> > Ritche最爱的语言其实是Self。
>
> > > On Dec 13, 2007 10:54 PM, <red...@gmail.com> wrote:
>
> > > > 莫华枫 写道:
>
> > > > > 可能你说的对。
> > > > > 我的思路是:Java算是C++生的吧(不过基因变异的厉害),javascript姓
> > > > > java,自然是Java的孩子。不过,javascript或许是领养的?
> > > > 当初 netscape 看到 java 火, 将自己的孩子说成是 java 的孩子, 这叫什么呢 ?
> > > > 大陆女子携子香港寻夫, DNA 检验之后发现不对 ?
>
> > --
> > 反者道之动,弱者道之用
> > m...@seaskysh.com
> > longshank...@gmail.com
> >http://blog.csdn.net/longshanks/

Yong Yuan

unread,
Dec 14, 2007, 2:21:50 AM12/14/07
to pon...@googlegroups.com
兼容啊。类型标注是可选项。

Eli

unread,
Dec 14, 2007, 2:40:57 AM12/14/07
to TopLanguage
很多人包括g9我看都赞成加入这个, 确实从他说的那个角度, 干嘛不加.

我的想法不是, 加不加, 代表鼓励不鼓励. OO之类的东西已经受到太多鼓励了. 你看微软的开源AJAX库的实现, 这都什么思维啊,
DragDropManager, GenericDragDropManager, IEDragDropManager, 有更灵活的方式的情况
下, 犯得着么? 设计模式也是一样, Linus大骂的围绕"漂亮对象"造孽的事情, 这下又要出现在JS里了...; 相反, 让程序员自己
prototype或者Clousure去, 可能反而容易出现更合理的设计. 就是IE的内存泄露使得prototype是更合理的选择, 这样信息
隐藏就不好做了. 不过信息隐藏一定是要规则去实现吗? 我的封装我不告诉别人怎么用, 那些最初阶的程序员, 就敢随便Hack我的东西? 他付出了
代价, 自然就相当于信息隐藏了...

Eli

unread,
Dec 14, 2007, 2:44:22 AM12/14/07
to TopLanguage
我指的不是类型, 而是class..

Atry

unread,
Dec 14, 2007, 11:02:42 PM12/14/07
to pon...@googlegroups.com
那些东西都是从 ActionScript 3 里面来的,ActionScript 3 把好端端的一个动态语言改造成了静态语言了。

在07-12-13,pongba <pon...@gmail.com> 写道:

up duan

unread,
Dec 17, 2007, 3:30:16 AM12/17/07
to pon...@googlegroups.com
其实ES4也是有苦衷的。

如果没有静态的类型标注,很难实现那些所谓的类库之类的东西,而AS3或者更进一步的说AIR提供的那么一大套类库体系,用ES3也忒难搞定了。因为毕竟大家都熟悉class-based
oo嘛。

星染流云

unread,
Dec 21, 2007, 5:52:18 AM12/21/07
to TopLanguage
那是Java.Script,所以它姓Script.

On 12月14日, 上午8时01分, "莫华枫" <longshank...@gmail.com> wrote:
> On Dec 13, 2007 5:13 PM, pongba <pon...@gmail.com> wrote:
>
> > 来源:http://blog.csdn.net/g9yuayon/archive/2007/12/13/1933030.aspx
> > 严重推荐:-)不过估计这个讨论组里面不订阅g9 blog人也不多吧,如果看过了,请忽视我...
>
> > 讨论之一:
> > 昨天还听SpitFire说,用Ruby时,发现设计模式里面那些瓶瓶罐罐都用不着了;这不,就出现了一个绝好的例子,新版Javascript中native-支持的multi-method。我想大吼一声的是,设计模式那不叫优雅,真正的原生支持才叫优雅!
>
> 谁让他姓java呢!:P
>
>
>
> > 讨论之二:
> > Javascript不沿用Ruby的duck-typing,居然把Java的侵入式interface搞过来了?这不是退步嘛。
>
> 谁让他姓java呢!:P
>
>
>
> > 讨论之三:
> > 居然加入了内建的int和char!int不会是有限精度的吧?char是干嘛?有了string还要char?还好没有long...无语。
> > 我觉得应该把所有的数值类型(int/long/short/double/float)规成一个类型numerics(就像haskell里面的numeri-cs
> > concept)一样,这才是动态语言的best short;
>
> 谁让他姓java呢!:P
>
>
>
> > 讨论之四:
> > 参数化类型!?这个玩笑开大了吧?要静态检查也不是这么要的吧。看来马克思要笑了----事务的发展的确是曲折上升的。这老大是不是受"主流"语言刺激太大了...
> > JS这种语言,duck-typing + concept(或haskell的type class),既保留灵活性,又保留静态检查,不是很好么?
>
> 他爷爷谁来着?C++吧。:P
>
>
>
> > 暂时想到这么多。后面讨论时再补充...
>
> > Javascript这把成了大杂烩了。。。也难怪要被开涮。。。
>
> > --
> > 刘未鹏(pongba)|C++的罗浮宫
> >http://blog.csdn.net/pongba
> > TopLanguage
> >http://groups.google.com/group/pongba
>
> --
> 反者道之动,弱者道之用
> m...@seaskysh.com
> longshank...@gmail.comhttp://blog.csdn.net/longshanks/

李扬

unread,
Dec 23, 2007, 9:07:04 PM12/23/07
to pon...@googlegroups.com
看pongba列的第一条。我倒觉得gof很冤枉啊。。
在这再为设计模式喊喊冤。。。
模式并不是什么新东西也不是什么倚天剑。。。它就是对前人经验的总结。。。给个好听的名字。。然后方便我们这些码代码的木匠们交流用的。。。
你可以通过模式去学习这些前人思想的精华。。其实你也可以通过其他途径学习这些东西。
 
有一天,一个同学说。。这个问题我们可以通过像tcp/ip协议那样分层一层一层的解析这个包。。。
哦。。对。。你说的就是单一职责。。我们可以尝试用用职责链来解决这个问题。。。
 
 
 
有一天一个木匠发明了一种雕花的技法。。我们把它称做为A模式。另外一个木匠发明了另外一种模式把它称作B模式。
后来木工们交流的时候就着样说。。
我觉得这把椅子比较时候B花。。恩。。。我觉得还是A花比较实用点。。。。
 
 
 
在在后来。。。A花B花已经成为了一个传奇。。。。只要是木匠都以能够掌握雕A花B花为最大的本钱。。。
 
 
 
再后来传奇成为了神话。。。有一天一个聪明的木匠发明了一个能自动雕A花B花的机器。。。。。于是他宣布传奇都是谎言。。只有它发明的这台机器才是最好的。。。。
 
但是木匠们还是习惯了多年来的称呼。。。他们还是说。。。恩对。。这张桌子还是雕b花来的美观实用。。。A花会使桌子不那么牢靠。不过他们现在不用自己去雕了,因为有机器可以帮他们完成这项工作。。。。。。于是传说还是传说 。。。。机器还是机器。。。。。

 
在07-12-21,星染流云 <spirit...@sina.com> 写道:

安帛伟

unread,
Dec 24, 2007, 12:04:09 PM12/24/07
to pon...@googlegroups.com
设计模式是思想,如果语言有一些“原生支持”,那么建立在这些原生支持上的更优雅的设计模式也会有的。设计模式不光是Gof那23个,原生支持不可能全支持吧,呵呵。

莫华枫

unread,
Dec 24, 2007, 7:12:27 PM12/24/07
to pon...@googlegroups.com
gof是挺冤枉的。我的感觉,他们的设计模式向我们展示了众多应用场景,然后在给出了当时技术条件下的解决方案。但是,我们现在却只关注解决方案,而抛弃了更基本的应用场景。实际上,这些场景可以在不同的技术下运用不同的方案解决,牛魔王Andrei运用gp和tmp实现某些模式,便是一个明证。
我认为,为了更好地学习设计模式,应当把目光从OOP方案转向基础应用场景,寻求更多的技术手段。
Reply all
Reply to author
Forward
0 new messages