Hello World
Spiga

趣味编程:在JavaScript中实现简单的yield功能(2 - 循环支持及解释执行)

2010-06-11 20:41 by 老赵, 2280 visits
摘要:在上一篇文章里,我们构造了$yield和$yieldSeq两个基础编程组件,于是我们可以“在一定程度上”使用C#中的yield功能来构造一个迭代器。从表面上看来似乎不错,不过它的实际价值还是有值得推敲的。例如,我们目前还必须使用递归来代替循环,那么我们有办法改变这种变成方式吗?此外,在评论中有朋友谈到,这样写代码其实不是一个格式化就混乱了吗?至少,您是否觉得这种编程方法的function和括号实在多了些呢?这次我们就来探索这些问题的解决办法。 阅读全文

趣味编程:在JavaScript中实现简单的yield功能(1 - yield与yieldSeq)

2010-06-10 09:36 by 老赵, 1811 visits
摘要:上文我谈到了迭代器及其生成器,即C#或Python中的yield功能,它们极大地简化了创建一个迭代器的工作,让代码的语义和可读性有了很大提高。虽然在JavaScript 1.7中已经有了相同的功能,可惜目前我们还无法用到这种强大的能力。那么,我们能不能为JavaScript提供如C#中一样的功能?在文章的评论里许多朋友也给出了他们的解决方案,也让我获得了许多启发。因此,我也打算在以后的文章中总结一下各位的做法。不过在这篇文章里,我先来阐述一下我个人的想法。 阅读全文

趣味编程:在JavaScript中实现简单的yield功能(问题)

2010-06-08 15:33 by 老赵, 8016 visits
摘要:说起迭代器(Iterator)大家一定都不陌生,无论是是Java,C#或是Python等语言都有内置标准的迭代器结构,它们也都提供了内置的for或foreach关键字简化迭代器的“使用”。不过对于迭代器的“生成”,不同语言之间的就会有很大差距。例如,在C#和Python中都提供了yield来简化迭代器的“创建”,此时生成一个迭代器便再简单不过了。但对于Java程序员来说,即使到了Java 7还必须为在迭代器内部手动维护状态,非常痛苦。而更重要的一点是,利用yield我们可以轻松地创建一个“延迟”的,“无限”的序列。那么,我们能否在JavaScript中享受到这样的yield生成器呢? 阅读全文

浅谈Java 7的闭包与Lambda表达式之优劣

2010-06-06 15:31 by 老赵, 16767 visits
摘要:前几天Oracle推出了Java 7官方的闭包与Lambda表达式的第一个实现,这基本上也是最终在正式版中的样式了。看了这个实现之后,我的第一感觉便是“丑”,当然不排除这是因为看惯了其他语言中实现的缘故。后来再仔细看了看又想了想,发现Java 7的实现也并非毫无可取之处,但似乎又感到某些做法上有一些问题。总之整个过程颇为有趣,决定将我的想法记录下来,希望可以吸引人来一起讨论一下。 阅读全文

编程语言的发展趋势及未来方向(7):总结

2010-06-05 15:53 by 老赵, 11702 visits
摘要:这是Anders Hejlsberg在比利时TechDays 2010所做的开场演讲。由于最近我在博客上关于语言的讨论比较多,出于应景,也打算将Anders的演讲完整地听写出来。在上一部分中,Anders谈论了“并发”,这也是他眼中编程语言发展的三种趋势之一,并演示了.NET 4.0中并行库的神奇效果。现在则是此次演讲的最后一部分,Anders对整场演讲内容进行了总结和回顾。 阅读全文

跨平台到底是不是谎言?

2010-06-02 11:05 by 老赵, 8706 visits
摘要:前几天是个神奇的日子,博客园里咣咣咣地出现了三篇文章,都包含了“跨平台”和“谎言”这两个关键字。从Java开始谈到.NET,最后哐地一下,“跨平台”本身也变成一种谎言了。从文章内容上看,我个人觉得基本不靠谱,主要论述方式是用“气势”或是“自信”来压倒对方……呃,是“说服别人”。我不打算谈那两篇文章的内容了,许多意见我和其他人也在文章后面回复过了。我现在只想在这里简单谈谈我对“跨平台”这个问题的看法。 阅读全文

编程语言的发展趋势及未来方向(6):并发

2010-05-30 22:53 by 老赵, 9961 visits
摘要:这是Anders Hejlsberg在比利时TechDays 2010所做的开场演讲。由于最近我在博客上关于语言的讨论比较多,出于应景,也打算将Anders的演讲完整地听写出来。在上一部分中,Anders谈论了“元编程”及他正在努力的“编译器即服务”功能。在这一部分中,Anders则谈论了“并发”,这也是他眼中编程语言发展的三种趋势之一,并演示了.NET 4.0中并行库的神奇效果。 阅读全文

编程语言的发展趋势及未来方向(5):元编程

2010-05-30 17:42 by 老赵, 10490 visits
摘要:这是Anders Hejlsberg在比利时TechDays 2010所做的开场演讲。由于最近我在博客上关于语言的讨论比较多,出于应景,也打算将Anders的演讲完整地听写出来。在上一部分中,Anders谈及了他眼中编程语言的另一个发展趋势:动态性。在这一部分中,Anders则讨论了动态语言所擅长的“元编程”,并简单介绍了他为静态类型语言所设计的一种改进方案:编译器即服务。 阅读全文

使用OpenOffice.org将各类文档转为PDF

2010-05-27 12:37 by 老赵, 30159 visits
摘要:最近在项目上遇到一个需求,是要将各类文档转换为PDF。这应该是个很常见的工作,而且我也只需要支持MS Word,Excel,PowerPoint等常见的文档格式就行了。于是有朋友就建议了,可以使用MS Office转嘛。当然也可以使用其他方法,例如装一些PDF打印机,把文档打印成pdf文件。不过这些做法在“授权”方面似乎都有些问题。当然,我也找了一些商业解决方案(如Aspose)保底,咋看之下它的授权方式也并不算贵。不过现在看来,OpenOffice.org已经能够满足我的需求了。如果您有更好的做法也请告诉我。 阅读全文

随便说说邮件列表那点事儿

2010-05-26 00:26 by 老赵, 1384 visits
摘要:这两天推特上在讨论RT方式与时间线干扰的问题,主要是有人抱怨官方的RT,或是民间的RT,还是所谓RT式回复的方式会污染追随者的时间线。对此有朋友应对到,如果感到“信息过载”,应该寻找合适的工具来进行管理。我没有参与这个问题的讨论,因为我本身其实还没有搞清各种RT方式分别是指什么,而且我也没有混乱的感觉──要知道我才fo了不到300人,如笑来老师fo了超过一万五千人还处理的井井有条,和他相比我算什么嘛。不过霍炬刚才举了一个例子提到了邮件列表相关的事情,我也就顺便谈一下吧。 阅读全文

编程语言的发展趋势及未来方向(4):动态语言

2010-05-23 22:16 by 老赵, 12732 visits
摘要:这是Anders Hejlsberg在比利时TechDays 2010所做的开场演讲。由于最近我在博客上关于语言的讨论比较多,出于应景,也打算将Anders的演讲完整地听写出来。在上一部分中,Anders谈及了声明式编程的另一个重要组成部分:函数式编程,并使用.NET平台上的函数式编程语言F#进行了演示。在这一部分中,Anders讨论了动态语言及JavaScript的相关内容,“动态性”也是Anders眼中编程语言的发展趋势之一。 阅读全文

2010年5月《程序员》杂志“架构师接龙”栏目中的问答

2010-05-21 09:48 by 老赵, 4293 visits
摘要:上个月《程序员》杂志向我约稿,希望我可以参加5月份的“架构师接龙”栏目,我略为犹豫了一下便答应了。“架构师接龙”是一个问答形式的栏目,每期由一个人提问,并由另一个人回答。回答的一方便是下期的提问者。这次提问的架构师是新浪微博的技术经理杨卫华。他提出的问题包括语言选择与架构设计、NoSQL存储方案的取舍、微博类系统的架构等多个方面。杨卫华是国内技术社区一等一的高手,这使得我在回答问题时更有小心翼翼地班门弄斧之感。如果您对某些问题感兴趣,也不妨来一起讨论一下。 阅读全文

永远的G点:中医和科学

2010-05-18 23:17 by 老赵, 2714 visits
摘要:最近由于@tinyfool同学要对博客的缓存插件进行压力测试,于是又引发了一场关于中医和科学的讨论、嗯或者说是争论……讨论……好吧我也不知道算是什么。这的确是个G点,一碰就能让许多人兴奋。兄弟我学识浅薄,既不懂科学,也不懂中医,本来不该参与这个话题讨论的,但最近看着其他人围着G点打转,脑子里也产生了不少想法,如果不记下来着实有些浪费脑细胞了。 阅读全文

Why Java Sucks and C# Rocks(4):泛型

2010-05-18 00:23 by 老赵, 10508 visits
摘要:Java 5.0和C# 2.0发布于同一年,各自添加了一个重要的特性:泛型。泛型可以让程序员针对泛化的数据类型编写相同的算法,这大大增强了两种语言的类型系统及抽象能力。不过即便是这看似相近的功能,Java和C#两者在语言实现和功能上也有很明显的区别,这甚至会形成编程方式上的不同。在这里可能需要事先打声招呼,因为在这个特定的话题上,语言和运行时的确是密不可分的,因此在这篇文章中我会涉及到相对较多的“运行平台”上的比较,而这点在整个系列中是我尽量避免的。不过您请放心,只此一次,欢迎监督。 阅读全文

盛大创新院赞助首届.NET技术交流会开始报名了!

2010-05-13 14:30 by 老赵, 3750 visits
摘要:自从上次在博客中提到盛大创新院赞助.NET技术会议已经过去了一个半月,如今这件事情终于落实了。我为此准备了数千字的申请书,但老大看也不看便表示支持。他的说法是,只要办得热烈,有影响力,那么这样的活动绝对支持。为此,各场次演讲内容及会场等诸多事宜之后,现在“首届.NET技术交流会”正式进入报名阶段了。人数不设上限,多多益善,怕只怕会场会显得空旷。除了.NET社区的群众以外,也欢迎其他技术社区的朋友前来参与交流。事实上,我组织技术交流会的目的之一便是希望能够促进.NET社区与其他技术社区的交流及相互学习。 阅读全文

使用.NET 4.0中的表达式树生成动态方法

2010-05-13 01:03 by 老赵, 7982 visits
摘要:为了在模型为dynamic类型的视图中使用一个匿名对象,我们在上一篇文章里为匿名对象创建了对应的动态类型。于是在使用时,我们会创建动态类型的对象,然后将匿名对象的属性赋值给动态对象的公开字段上。在赋值时我们使用了反射,再加上这个方法使用比较频繁,因此使用更好的方法来优化性能便是个很自然的选择。在.NET 1.0中,我们需要Emit;在.NET 2.0中则增加了DynamicMethod,相对简化了单个动态方法的创建过程;在.NET 3.5中则增加了可编译表达式树,可谓前进了一大步——那么在.NET 4.0中呢? 阅读全文

当类型为dynamic的视图模型遭遇匿名对象

2010-05-11 10:16 by 老赵, 9460 visits
摘要:当年在ASP.NET MVC 1.0时代我提到,在开发时最好将视图的Model定制为强类型的,这样可以充分利用静态检查功能进行排错。不过有人指出,这么做虽然易于静态检查,但是定义强类型的Model类型实在是太麻烦了,因此也出现了基于SmartBag等折衷方案。强类型是一种极端方案,而在C# 4.0中我们又可以使用另一个极端,那就是让Model成为dynamic类型,这样在视图中便可以完全自由地获取数据了。不过,在使用匿名对象的情况下视图会抛出奇怪的“无法找到成员”异常,我们必须解决这个问题。 阅读全文

您精通XXX吗?那么就来谈谈它的缺点吧

2010-05-06 15:31 by 老赵, 4494 visits
摘要:“精通”这个词已经被用滥了,当年招人时收到过无数简历,继而发现,似乎简历上面不写几个“精通”还真对不起咱这张脸。那么到底啥叫精通呢?应该是对某样东西无比了解,不能再了解的程度吧——不过地球人都知道,简历上的“精通”已经算不得数了。那么,如果我们真要考察一个人(比如自己)对某件事情是否“精通”,又有什么合适方法呢?我觉得有个方式比较靠谱,那就是谈谈这东西的缺点。 阅读全文

编程语言的发展趋势及未来方向(3):函数式编程

2010-05-04 19:09 by 老赵, 20907 visits
摘要:这是Anders Hejlsberg在比利时TechDays 2010所做的开场演讲。由于最近我在博客上关于语言的讨论比较多,出于应景,也打算将Anders的演讲完整地听写出来。在上一部分中,Anders阐述了他眼中声明式编程的理念及DSL,并演示C#中一种内部DSL的形式:LINQ。在这一部分中,Anders谈及了声明式编程的另一个重要组成部分:函数式编程,并使用.NET平台上的函数式编程语言F#进行了演示。 阅读全文

关于“程序员圈子”说几句废话

2010-04-28 23:51 by 老赵, 7019 visits
摘要:最近有人在TopLanguage上发了一条,怎么说,我个人感觉写的还不错的帖子。帖子的标题叫做“程序员的虚伪”,里面主要谈的是说如今在程序员社区里有这么一种不好的现象:话说一群人抱成团,有福同享有难同当,一荣俱容一损俱损,你方开张我来捧场,谁遇问题同仇敌忾。这样的风气造就了一些南郭先生,本事不大却感觉良好。这样的事情简直就是一出台湾偶像剧大陆白领剧,俗不可耐矫揉造作──这不就是在说我嘛。 阅读全文
< Prev 1 ... 4 5 6 7 8 9 10 11 12 ... 31 Next >
使用Live Messenger联系我