因昨天李骏介绍Clojure,重贴一遍自己以前写的blog《有关语言设计的一些联想》

43 views
Skip to first unread message

庄表伟

unread,
Jan 7, 2011, 2:23:15 AM1/7/11
to is...@googlegroups.com
http://www.zhuangbiaowei.com/blog/?p=173

引发我这些思考的,是最近一篇InfoQ的文章:《语言约束和责任感,我们应该信赖谁?》,还有就是前两天我浅尝即止的scala语言。还有一些长久以来的思考片段。

1、以前我说过一句话:“语言是强框架,而框架是弱语言”。当时我提出这个思路的时候,其实还存在这一个误区,也就是认为很多框架级的设计,是可以引入语言层面的。这也就是我在设计DJ这个语言的时候,将许多TDD、DBC、AOP的思想引入语言层面的原因。当时我还举了java的exception的例子,证明将原本的开发中的常见问题,变成一种强制的语法限制,是一种明显的进步。

2、但是,现在的我,不再这么极端的赞同语言约束了,原因是我变成了越来越坚定的ruby程序员。在开发的过程中,我有时候不得不使用java的类库,但是,我完全不喜欢用java来调用它们,而是宁可使用jruby来做开发,很重要的一个原因,就是因为ruby不会强制要求我catch exception。

3、引申一下,当年我说的话,还是对的,但是要进一步深化:词法的限制、语法的限制、类库的限制、框架的限制、编码约定、编程习惯。是多个不同层次的约束。一层比一层更加弱化。而解决各种不同的问题,需要在不同的层次,来设计约束。如果强行提高约束的“强度”,就会设计出很傲慢的语言或者框架来。

4、打个比方,代码缩进是一个很好的编程习惯,但是像python那样,将缩进要求变成语法强制规定,就是过了。

5、再打个比方,处理exception是一个良好的编程习惯,但是并非所有的exception都需要处理,java规定, 不处理异常,就不能通过编译,就是过了。

6、再说说语法设施的问题,像lisp那样的语言,属于极简主义,几乎全部的语法设施,就是左右圆括号和逗号。而像我们现在习惯的方括号、花括号、冒号、=>、->、::等等则一概没有。这样就会造成lisp的程序阅读非常吃力,满屏的圆括号,让人迅速的就晕掉了。另一方面,我最近在看的scala,则定义了太多的语法设施。在看起来的时候,也很容易眼晕。在这方面,我觉得ruby做到了很好的折中。

7、今天看到云风的一篇blog《捣糨糊》,谈的是一个过度设计的问题,C++的程序员,很容易将那些先进的东西,用到简单的事情上,当然,java程序员也是一样。而在我看来,有很多种需求的情况,有些情况非常适合用过程式思维来解决,有些非常适合以OO的方式来思考,有些非常适合以函数式的方式来思考,还有些问题,只要精通正则表达式,就是几行代码的事情。而一个好的语言,就是妥善的,不别扭的支持各种不同的编程思维模式。当然,ruby在这方面,我觉得的确做得很棒。

8、前两天gigix发了一篇blog《对象健身操:拒绝else》,还有在InfoQ的几篇文章,似乎还要向if、for宣战。我的看法是:反对if行动:http://tr.im/syd1 反对for行动: http://tr.im/syd7 拒绝else:http://tr.im/sydk //面向对象之“三反五反”?关键字都是基础设置,如何用在程序员自己!好的语言,要支持各种编程思维模式,而好的程序员,则要会善用各种不同的编程思维模式来解决不同领域的问题,面对任何问题,都只会挥舞一把榔头,毕竟是欠缺火候的。

9、每一种语言,都有其特殊与特长,好的程序员,耍刀像刀,耍剑像剑。当然,不是说所有的语言都是一样好的,我毕竟还是更喜欢ruby一些。可以拿来像刀一样耍,也可以像剑一样耍,这个感觉很棒。

LI Daobing

unread,
Jan 7, 2011, 2:28:39 AM1/7/11
to is...@googlegroups.com
其实 Java 的类库也在从 checked exception 向 unchecked exception 转换, 比如 Spring
就改了很多, 特别是在数据访问这一层。

2011/1/7 庄表伟 <zhuang...@gmail.com>:

--
Best Regards
LI Daobing

Jeffrey Zhao

unread,
Jan 7, 2011, 2:40:36 AM1/7/11
to is...@googlegroups.com
?锟斤拷锟斤拷锟斤拷说锟斤拷锟斤拷锟斤拷锟斤拷壮锟斤拷锟斤拷斐o拷锟紸PI签锟斤拷锟揭伙拷锟斤拷郑锟斤拷潜锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷证锟侥o拷锟斤拷锟斤拷突锟斤拷锟缴硷拷锟斤拷锟斤拷锟斤拷锟解。Java锟斤拷锟皆碉拷确锟诫到锟斤拷锟斤拷悖拷锟斤拷歉锟斤拷锟斤拷锟斤拷锟饺访伙拷氲斤拷锟揭讹拷痛锟斤拷锟斤拷锟斤拷锟斤拷埽锟斤拷锟酵拷嘶锟斤拷锟絉untimeException锟斤拷throws Exception锟斤拷锟斤拷锟絁ava锟斤拷
锟斤拷锟斤拷API锟斤拷锟斤拷使锟斤拷RuntimeException锟斤拷锟解方锟斤拷Java锟斤拷锟斤拷值锟矫帮拷慰一锟铰★拷锟斤拷锟节大部凤拷锟斤拷锟皆诧拷要锟斤拷checked exception锟斤拷锟斤拷锟角猴拷锟斤拷锟斤拷锟届常只锟杰讹拷锟斤拷锟斤拷锟侥碉拷锟斤拷锟剿o拷锟斤拷实锟斤拷约锟斤拷锟斤拷锟斤拷歉锟斤拷锟�
锟斤拷锟斤拷

锟斤拷然锟斤拷实锟皆硷拷锟斤拷锟斤拷没锟叫帮拷锟斤拷锟斤拷锟斤拷锟斤拷锟绞碉拷锟斤拷泻芏啵拷锟教拷锟斤拷缘摹锟斤拷锟教拷浴锟斤拷锟斤拷锟斤拷锟角诧拷锟斤拷锟节硷拷锟斤拷锟皆的o拷锟斤拷锟斤拷锟斤拷锟斤拷锟剿伙拷迎锟斤拷锟斤拷锟皆o拷锟截硷拷锟斤拷要锟矫碉拷爽锟斤拷锟斤拷锟斤拷要锟斤拷锟襟…★拷

Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: http://twitter.com/jeffz_cn
-----原始锟绞硷拷-----
From: LI Daobing
Sent: Friday, January 07, 2011 3:28 PM
To: is...@googlegroups.com
Subject: Re: 锟斤拷锟斤拷锟斤拷锟筋骏锟斤拷锟斤拷Clojure锟斤拷锟斤拷锟斤拷一锟斤拷锟皆硷拷锟斤拷前写锟斤拷blog锟斤拷锟叫癸拷锟斤拷锟斤拷锟斤拷频锟揭恍╋拷锟斤拷搿�
锟斤拷实 Java 锟斤拷锟斤拷锟揭诧拷诖锟�checked exception 锟斤拷 unchecked exception 转锟斤拷, 锟斤拷锟斤拷
Spring
锟酵革拷锟剿很讹拷, 锟截憋拷锟斤拷锟斤拷锟斤拷莘锟斤拷锟斤拷锟揭伙拷恪�
2011/1/7 庄锟斤拷伟 <zhuang...@gmail.com>:
> http://www.zhuangbiaowei.com/blog/?p=173
>
> 锟斤拷锟斤拷锟斤拷些思锟斤拷锟侥o拷锟斤拷锟斤拷锟揭黄狪nfoQ锟斤拷锟斤拷锟铰o拷锟斤拷锟斤拷锟斤拷约锟斤拷锟斤拷锟斤拷胃校锟斤拷锟斤拷锟接︼拷锟斤拷锟斤拷锟剿拷锟斤拷锟斤拷锟斤拷锟斤拷芯锟斤拷锟角帮拷锟斤拷锟斤拷锟角筹拷锟斤拷锟街癸拷锟絪cala锟斤拷锟皆★拷锟斤拷锟斤拷一些锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷思锟斤拷片锟轿★拷
>
> 1锟斤拷锟斤拷前锟斤拷说锟斤拷一锟戒话锟斤拷"锟斤拷锟斤拷锟斤拷强锟斤拷埽锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟�锟斤拷锟斤拷时锟斤拷锟斤拷锟斤拷锟斤拷思路锟斤拷时锟斤拷锟斤拷实锟斤拷锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷也锟斤拷锟斤拷锟斤拷为锟杰讹拷锟杰硷拷锟斤拷锟斤拷疲锟斤拷强锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷圆锟斤拷锟侥★拷锟斤拷也锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟紻J锟斤拷锟斤拷锟斤拷缘锟绞憋拷颍锟斤拷锟斤拷TDD锟斤拷DBC锟斤拷AOP锟斤拷思锟斤拷锟斤拷锟斤拷锟斤拷锟皆诧拷锟斤拷锟皆拷颉5锟绞憋拷一锟斤拷锟斤拷锟絡ava锟斤拷exception锟斤拷锟斤拷锟接o拷证锟斤拷锟斤拷原锟斤拷锟侥匡拷锟斤拷锟叫的筹拷锟斤拷锟斤拷锟解,锟斤拷锟揭伙拷锟角匡拷频锟斤拷锓拷锟斤拷疲锟斤拷锟揭伙拷锟斤拷锟斤拷缘慕锟�>
> 2锟斤拷锟斤拷锟角o拷锟斤拷锟节碉拷锟揭o拷锟斤拷锟斤拷锟斤拷么锟斤拷锟剿碉拷锟斤拷同锟斤拷锟斤拷约锟斤拷锟剿o拷原锟斤拷锟斤拷锟揭憋拷锟斤拷锟皆斤拷锟皆斤拷岫拷锟絩uby锟斤拷锟斤拷员锟斤拷锟节匡拷锟斤拷锟侥癸拷锟斤拷校锟斤拷锟斤拷锟绞憋拷虿坏貌锟绞癸拷锟絡ava锟斤拷锟斤拷猓拷锟斤拷牵锟斤拷锟斤拷锟饺拷锟较诧拷锟斤拷锟絡ava锟斤拷锟斤拷锟斤拷锟斤拷锟角o拷锟斤拷锟斤拷锟斤拷锟斤拷使锟斤拷jruby锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷要锟斤拷一锟斤拷原锟津,撅拷锟斤拷锟斤拷为ruby锟斤拷锟斤拷强锟斤拷要锟斤拷锟斤拷catch
> exception锟斤拷
>
> 3锟斤拷锟斤拷锟斤拷一锟铰o拷锟斤拷锟斤拷锟斤拷说锟侥伙拷锟斤拷锟斤拷锟角对的o拷锟斤拷锟斤拷要锟斤拷一锟斤拷锟筋化锟斤拷锟绞凤拷锟斤拷锟斤拷锟狡★拷锟斤法锟斤拷锟斤拷锟狡★拷锟斤拷锟斤拷锟斤拷锟狡★拷锟斤拷艿锟斤拷锟斤拷啤锟斤拷锟斤拷锟皆硷拷锟斤拷锟斤拷锟斤拷习锟竭★拷锟角讹拷锟斤拷锟酵拷锟轿碉拷约锟斤拷一锟斤拷锟揭伙拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷植锟酵拷锟斤拷锟斤拷猓拷锟揭拷诓锟酵拷牟锟轿o拷锟斤拷锟斤拷锟皆硷拷锟斤拷锟斤拷强锟斤拷锟斤拷锟皆硷拷锟斤拷"强锟斤拷"锟斤拷锟酵伙拷锟斤拷瞥锟斤拷馨锟斤拷锟斤拷锟斤拷锟皆伙拷锟竭匡拷锟斤拷锟斤拷锟�>
> 4锟斤拷锟斤拷锟斤拷确锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟揭伙拷锟斤拷芎玫谋锟斤拷习锟竭o拷锟斤拷锟斤拷锟斤拷python锟斤拷锟斤拷锟斤拷锟斤拷要锟斤拷锟斤拷锟斤法强锟狡规定锟斤拷锟斤拷锟角癸拷锟剿★拷
>
> 5锟斤拷锟劫达拷锟斤拷确锟斤拷锟斤拷锟斤拷锟絜xception锟斤拷一锟斤拷锟斤拷锟矫的憋拷锟较帮拷撸锟斤拷锟斤拷遣锟斤拷锟斤拷锟斤拷械锟絜xception锟斤拷锟斤拷要锟斤拷锟�java锟芥定锟斤拷
> 锟斤拷锟斤拷锟斤拷锟届常锟斤拷锟酵诧拷锟斤拷通锟斤拷锟斤拷耄拷锟斤拷枪锟斤拷恕锟�>
> 6锟斤拷锟斤拷说说锟斤法锟斤拷施锟斤拷锟斤拷锟解,锟斤拷lisp锟斤拷锟斤拷锟斤拷锟斤拷裕锟斤拷锟斤拷诩锟斤拷锟斤拷锟斤拷澹拷锟斤拷锟饺拷锟斤拷锟斤拷锓拷锟绞╋拷锟斤拷锟斤拷锟斤拷锟斤拷锟皆诧拷锟斤拷藕投锟斤拷拧锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟较帮拷叩姆锟斤拷锟斤拷拧锟斤拷锟斤拷锟斤拷拧锟矫帮拷拧锟�>锟斤拷->锟斤拷::锟饺碉拷锟斤拷一锟斤拷没锟叫★拷锟斤拷锟斤拷突锟斤拷锟斤拷lisp锟侥筹拷锟斤拷锟侥讹拷锟角筹拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷圆锟斤拷锟脚o拷锟斤拷锟斤拷迅锟劫的撅拷锟轿碉拷锟剿★拷锟斤拷一锟斤拷锟芥,锟斤拷锟斤拷锟斤拷诳锟斤拷锟絪cala锟斤拷锟斤拷锟斤拷锟斤拷太锟斤拷锟斤拷锓拷锟绞╋拷锟斤拷诳锟斤拷锟斤拷锟斤拷锟绞憋拷锟揭诧拷锟斤拷锟斤拷锟斤拷锟斤拷巍锟斤拷锟斤拷夥斤拷妫拷揖锟斤拷锟絩uby锟斤拷锟斤拷锟剿很好碉拷锟斤拷锟叫★拷
>
> 7锟斤拷锟斤拷锟届看锟斤拷锟狡凤拷锟揭黄猙log锟斤拷锟斤拷锟捷猴拷谈锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟狡碉拷锟斤拷锟解,C++锟侥筹拷锟斤拷员锟斤拷锟斤拷锟斤拷锟阶斤拷锟斤拷些锟饺斤拷亩锟斤拷锟斤拷锟斤拷玫锟斤拷虻サ锟斤拷锟斤拷锟斤拷希锟斤拷锟饺伙拷锟絡ava锟斤拷锟斤拷员也锟斤拷一锟斤拷锟斤拷锟斤拷铱锟斤拷锟斤拷锟斤拷泻芏锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟叫╋拷锟斤拷锟角筹拷锟绞猴拷锟矫癸拷锟绞剿嘉拷锟斤拷锟斤拷锟斤拷锟斤拷些锟角筹拷锟绞猴拷锟斤拷OO锟侥凤拷式锟斤拷思锟斤拷锟斤拷锟斤拷些锟角筹拷锟绞猴拷锟皆猴拷锟斤拷式锟侥凤拷式锟斤拷思锟斤拷锟斤拷锟斤拷锟斤拷些锟斤拷锟解,只要锟斤拷通锟斤拷锟斤拷锟斤拷式锟斤拷锟斤拷锟角硷拷锟叫达拷锟斤拷锟斤拷锟斤拷椤o拷锟揭伙拷锟斤拷玫锟斤拷锟斤拷裕锟斤拷锟斤拷锟斤拷锟斤拷频模锟斤拷锟斤拷锟脚わ拷锟街э拷指锟斤拷植锟酵拷谋锟斤拷思维模式锟斤拷锟斤拷然锟斤拷ruby锟斤拷锟解方锟芥,锟揭撅拷锟矫碉拷确锟斤拷锟矫很帮拷锟斤拷
>
> 8锟斤拷前锟斤拷锟斤拷gigix锟斤拷锟斤拷一篇blog锟斤拷锟斤拷锟斤拷锟斤拷伲锟斤拷芫锟絜lse锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷InfoQ锟侥硷拷篇锟斤拷锟铰o拷锟狡猴拷锟斤拷要锟斤拷if锟斤拷for锟斤拷战锟斤拷锟揭的匡拷锟斤拷锟角o拷锟斤拷锟斤拷if锟叫讹拷锟斤拷http://tr.im/syd1 锟斤拷锟斤拷for锟叫讹拷锟斤拷 http://tr.im/syd7 锟杰撅拷else锟斤拷
> http://tr.im/sydk //锟斤拷锟斤拷锟斤拷锟街�锟斤拷锟藉反"锟斤拷锟截硷拷锟街讹拷锟角伙拷锟斤拷锟矫o拷锟斤拷锟斤拷锟斤拷诔锟斤拷锟皆憋拷约锟斤拷锟斤拷玫锟斤拷锟斤拷裕锟揭э拷指锟斤拷直锟斤拷思维模式锟斤拷锟斤拷玫某锟斤拷锟皆憋拷锟斤拷锟揭拷锟斤拷锟斤拷酶锟斤拷植锟酵拷谋锟斤拷思维模式锟斤拷锟斤拷锟斤拷锟酵拷锟斤拷锟斤拷锟斤拷锟解,锟斤拷锟斤拷魏锟斤拷锟斤拷猓拷锟街伙拷锟斤拷锟斤拷一锟斤拷锟斤拷头锟斤拷锟较撅拷锟斤拷欠缺锟斤拷锟侥★拷
>
> 9锟斤拷每一锟斤拷锟斤拷锟皆o拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟截筹拷锟斤拷锟矫的筹拷锟斤拷员锟斤拷耍锟斤拷锟今刀o拷耍锟斤拷锟今剑★拷锟斤拷然锟斤拷锟斤拷锟斤拷说锟斤拷锟叫碉拷锟斤拷锟皆讹拷锟斤拷一锟斤拷玫模锟斤拷冶暇锟斤拷锟斤拷歉锟较诧拷锟絩uby一些锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷一锟斤拷耍锟斤拷也锟斤拷锟斤拷锟斤拷一锟斤拷耍锟斤拷锟斤拷锟斤拷芯锟斤拷馨锟斤拷锟�

庄表伟

unread,
Jan 7, 2011, 2:44:35 AM1/7/11
to is...@googlegroups.com
看来可以区分两种语言特性,一种是程序员喜欢的,一种是程序员的老板喜欢的。

2011/1/7 Jeffrey Zhao <je...@live.com>
?理论上说,程序会抛出的异常是API签名的一部分,是必须在类库升级过程中有所保证的,否则就会造成兼容性问题。Java语言的确想到了这点,这是个进步,但的确没想到大家都痛恨这个功能,普通人基本都用RuntimeException或throws Exception,最后Java自 己的API都基本使用RuntimeException。这方面Java还是值得安慰一下。现在大部分语言不要求checked exception,于是乎……异常只能定义在文档里了,其实这对兼容性是个损 害。

当然其实对兼容性没有帮助的特性其实还有很多,动态语言的“动态性”本身就是不利于兼容性的,看起来受人欢迎的语言,关键还是要用的爽,其他要靠后……
-----原始邮件----- From: LI Daobing

Sent: Friday, January 07, 2011 3:28 PM
To: is...@googlegroups.com
Subject: Re: 因昨天李骏介绍Clojure,重贴一遍自己以前写的blog《有关语言设计的一些联想》

高博

unread,
Jan 7, 2011, 2:46:48 AM1/7/11
to is...@googlegroups.com
C++中的异常规格说明几乎在所有的教科书都反复被强调有两种用法:1) 不要用它;2) 还是不要用它。

在 2011年1月7日 下午3:40,Jeffrey Zhao <je...@live.com>写道:
?理论上说,程序会抛出的异常是API签名的一部分,是必须在类库升级过程中有所保证的,否则就会造成兼容性问题。Java语言的确想到了这点,这是个进步,但的确没想到大家都痛恨这个功能,普通人基本都用RuntimeException或throws Exception,最后Java自 己的API都基本使用RuntimeException。这方面Java还是值得安慰一下。现在大部分语言不要求checked exception,于是乎……异常只能定义在文档里了,其实这对兼容性是个损 害。

当然其实对兼容性没有帮助的特性其实还有很多,动态语言的“动态性”本身就是不利于兼容性的,看起来受人欢迎的语言,关键还是要用的爽,其他要靠后……
-----原始邮件----- From: LI Daobing

Sent: Friday, January 07, 2011 3:28 PM
To: is...@googlegroups.com
Subject: Re: 因昨天李骏介绍Clojure,重贴一遍自己以前写的blog《有关语言设计的一些联想》

LEE xueyu

unread,
Jan 7, 2011, 3:07:24 AM1/7/11
to is...@googlegroups.com

语言

从使用场景来看:
  • 底层:面向系统(设备)
  • 高层:面向应用
从设计方法来看:
  • 自顶向下
  • 自下而上
从阅读性来看:
  • 只读
  • 只写
如是皆为阴阳两级,没有最好,只有是否适用,以及适当的折中。

2011/1/7 高博 <gaob...@gmail.com>

Xihe YU

unread,
Jan 7, 2011, 3:39:40 AM1/7/11
to is...@googlegroups.com
1) 不要用C++;
2) 千万不要用C++

2011/1/7 高博 <gaob...@gmail.com>



--
Martin X. YU
http://krzycube.net

高博

unread,
Jan 7, 2011, 3:41:34 AM1/7/11
to is...@googlegroups.com
作为一个C++ 15年的用户,我内牛满面。

Neo

unread,
Jan 7, 2011, 3:56:45 AM1/7/11
to is...@googlegroups.com
1. 选语言就是选老婆,主要看个人和团队,没有太多公理可以参考;
2. 当然还是有些基本的因素可以考虑,但是太极端的就适用面窄,适用面广的就不酷;
3. Cocoa 框架的设计者有句话我很认同:「Common things easy, other things possible.」就是说,语言也好、框架也好,能把它面向的问题域里的比较常见的问题解决的很快很漂亮,但是不常见的它也能以可接受的代价搞定。说起来简单,能做到的并不多。

顺便曝光,俺自己最喜欢的三个语言是(排名不分前后左右忠奸):Java、Ruby、Clojure,啥时候有个项目能结合起来折腾个好玩的东西出来,就得偿所愿了。。。

-- 
No, I will not fix your computer.

Neo Lee

庄表伟

unread,
Jan 7, 2011, 4:01:03 AM1/7/11
to is...@googlegroups.com
我也列三个自己最喜欢的语言:Ruby、Delphi、PHP
因为:Ruby够灵活;Delphi够严禁;PHP够朴实。

2011/1/7 Neo <neo...@gmail.com>

Tinyfool

unread,
Jan 7, 2011, 4:02:00 AM1/7/11
to is...@googlegroups.com
「Common things easy, other things
possible.」这个原则感同身受,例如可以看NSString的接口,几乎需要的功能都有。但是没有json解析,于是可以简单的找个json框架,因为支持catelog功能,所以框架加入工程NSString就有了解析json的方法,方便死了。

2011/1/7 Neo <neo...@gmail.com>:

--
Tinyfool的Blog http://tiny4.org/blog/
Tiny4Cocoa http://tiny4.org/cocoa/
myTwitter: http://twitter.com/tinyfool

"郝培强(Tinyfool)"

unread,
Jan 7, 2011, 4:04:13 AM1/7/11
to is...@googlegroups.com
我最喜欢的三个语言,Objective-C/Php/Javascipt,没什么哲学,我用这三个东西正在搭建 iappstation.net ,有了这三样,我横扫web/mac/iOS三个平台,全了。

Yurii

unread,
Jan 7, 2011, 4:08:03 AM1/7/11
to is...@googlegroups.com
我也这么看
不同语言解决问题思路不一样,而且,即便开始不顺眼,写多了也就看顺眼了
卡尔波普曾说,世界是按问题分类的,而不是按学科分类的。我觉得挺对

2011/1/7 Neo <neo...@gmail.com>:

Jeffrey Zhao

unread,
Jan 7, 2011, 4:08:12 AM1/7/11
to is...@googlegroups.com
C#/Scala,F#,JavaScript:C#和Scala通用场景下生产力高,F#的异步无敌了,Scala同C#,JavaScript容易折腾。
 
From: 庄表伟
Sent: Friday, January 07, 2011 5:01 PM
Subject: Re: 因昨天李骏介绍Clojure,重贴一遍自己以前写的blog《有关语言设计的一些联想》
 

高博

unread,
Jan 7, 2011, 4:14:44 AM1/7/11
to is...@googlegroups.com
C++: C的简洁强大+多范型
JavaScript: 只有你想不到的,没有它不能表达的,JS即图灵机
PHP: JavaScript不能做到的它全给做了,粒度细,手感爽,我们一直用它。

Jeffrey Zhao

unread,
Jan 7, 2011, 4:20:05 AM1/7/11
to is...@googlegroups.com
我来吐槽:
 
C++虽然兼容C,但早就没C的简洁强大了吧。
JavaScript的这个特点难道不是任何图灵完备的语言具备的嘛。
PHP的手感问题,让Ruby粉丝表哥哥来拍……

钱宏武

unread,
Jan 7, 2011, 4:37:27 AM1/7/11
to is...@googlegroups.com
我最喜欢的三种语言:C, PHP, JavaScript,其他语言多少都写过一点,但发现还是C最给力

LI Daobing

unread,
Jan 7, 2011, 4:38:10 AM1/7/11
to is...@googlegroups.com
Ruby, Java, C

2011/1/7 钱宏武 <qhw...@gmail.com>:

--
Best Regards
LI Daobing

Jeffrey Zhao

unread,
Jan 7, 2011, 4:48:46 AM1/7/11
to is...@googlegroups.com
咦,我记得你前段时间在哪儿说开始用RoR了嘛……
 
Sent: Friday, January 07, 2011 5:04 PM
Subject: Re: 因昨天李骏介绍Clojure,重贴一遍自己以前写的blog《有关语言设计的一些联想》
 

Neo

unread,
Jan 7, 2011, 4:56:44 AM1/7/11
to is...@googlegroups.com
其实觉得 Objective-C 也很好尤其是和 Cocoa 一起看。。。不过自己用的不扎实,所以没敢提。

-- 
No, I will not fix your computer.

Neo Lee

Tinyfool

unread,
Jan 7, 2011, 4:58:53 AM1/7/11
to is...@googlegroups.com
恩,没学会,我在用Php做,因为我想起来了,我以前做过一个框架其实还是挺好用的

2011/1/7 Jeffrey Zhao <je...@live.com>:

--

Neo

unread,
Jan 7, 2011, 5:01:00 AM1/7/11
to is...@googlegroups.com
喂喂,Windows 都不支持还敢说横扫。。。

-- 
No, I will not fix your computer.

Neo Lee

"郝培强(Tinyfool)"

unread,
Jan 7, 2011, 5:02:25 AM1/7/11
to Neo, is...@googlegroups.com
下n个版本会支持windows的,但是还是用Cocoa开发
Reply all
Reply to author
Forward
0 new messages