Qomo之快速上手

我发现,无论是哪种成功的语言,总是有一个快速入门的读物,而无论它们本身是如何的复杂、艰涩或难于理解。反过来,不成功的语言,总是带有一堆技术性十足、充满了想象和预期的文档。后者的这些文档,有些甚至比代码还多,但是这同样未能挽救它们的失败。 于是,我同样地看到了Qomo。我发现Qomo发布过的文档中,总是有大量无法让人理解的东西。如果你准备写一门语言,那么可能Qomo的文档和代码会给你许多启发。 而如果你只是打算用它,那么大概会变得很痛苦。然而,如果一个人因为想写一门语言而去了解Qomo,那么他大概不会再使用Qomo,这是因为各自存有不同的目标。 于是,我想Qomo小组应该为“ ...

像大师们一样思考——从“UML何时死掉”谈起

题记: 在与Ivar的访谈之后,我一直想把这一段过程写出来。我尝试拟过许多个题目,最后都写不成文章。几乎在我要放弃的时候,BLOG读者在评论中,对我所解释的“函数式语言”的置疑提醒了我:很多时候不是问题的答案令人置疑,而是问题的思想方法令人置疑。如同我问Ivar的问题,他的答案“令人怀疑的正确”,其实是思想方法的问题。不站在Ivar的历史,以及Ivar的成就的角度上去思考,你会认为Ivar是在应付我的责难。 事实上,那个访谈中,Ivar非常慎重地面对这个问题,并仔细地解释了他所提供的答案。可惜后来CSDN录制时,正好漏掉了这一段。非常遗憾, ...

无废话JavaScript(下)

上一篇在这里,在这里,在这里…… 五、函数式 这个可不是JavaScript的发明,它的发明人已经死了,而他的这个发明还在困扰着我们……如同爱迪生的灯泡还在照耀着我们。 其实函数式语言很简单,它就是一种与命令式语言同样“完备”的语言实现方案。由于它的基础思想与命令式——如果你不想用这个难于理解的名词,那就把它换成C,或者Delphi好了——语言完全不同,所以大多数情况下,它也与这些传统的、通用的、商业化的语言格格不入。 而事实上,你天天都在用它。 下面这行代码,就充满了函数式语言的思想: ...

无废话JavaScript(上)

《程序员》2008.09期有一篇名为《无废话ErLang》的文章,这让我想到了许多的诸如“无废话C”、“无废话书评”这类的文章,也想到了JavaScript可没有一篇“无废话”,所以决定开个篇来写这个。 与这个决定相关的,还因为另一个缘故:许多读者认为我那本**《JavaScript语言精髓与编程实践》**读来辛苦,所以我一直想写个简单的读本。索性,这次就写个最简单的吧。 声明一下:如果只想看复杂的东西,不要读这篇文章了。 一、JavaScript最初其实是过程式的 追溯到1. ...

等度的流明——代码之美·序

没想到华章已经把这篇序在china-pub上放出来了,那我也就公开了罢。不过更没想到的事情是,这本书有38位作者固然是令人称奇,而这本书(中文版)共有八篇序,大概也是出版中少有的了罢。 代码之美Beautiful Code(中文版)(9.22日china-pub全国独家首发) 一 我上一次印象深刻的美的体验,大概已经是在十年之前了,那只是在午后睡醒,面对窗外的一棵大梧桐树时的感觉。不过这并不是说我这十年来都只看到了丑的事物,而是说我已经忘了去观察既已存在的美。 直到我拿到这本《代码之美》,我忽然地回到了那种仰望着星星烁耀的夜空,或低头沉思于一两句大家文字的日子里。那时刻我既不是在思考,也不是在分析, ...

胜不为争。不为争胜。

古人竞技,可能最先是源出于狩猎。这是生存的必须,尽管是想当然,但也说得过去。但狩猎这种物质需求被满足之后,出于精神需要的竞技又源出于什么呢? 现代竞技,如现在的奥运。说更高、更快、更强,强调的仍然是体魄与技能,这在本质上还是早期竞技的那种模式。我们在物质丰富的年代,来看更高更快更强,其实只是一个个数字上的刺激,说欣赏也可,说娱乐也可,虽无褒贬的成分在里头,但总之离思想的层面是很远的。 然而儒家理念里面,“争”却源出于礼。出于礼之争,是君子之争; ...

内训资料公开:设计师的实战过程(3)

这是“设计师的实战过程”内部培训的第三节,第一、二节的信息在这里和这里。 这一节是这套培训的主体,也是源起。事实上最初的话题正是从“接口、分层设计与系统实现”来的,是在大型系统架构中的一个主要话题。然而这个话题相对来说过于宽泛,所以第一、二讲既是实战,也是对知识的补充。而第三讲,则讲的是大型设计中的思想与方法。 在这一节里,我回顾了工程的一段历史,主要是接口出现的历史。这其实是我个人思考中的一个被长期困扰的话题,我大概为这段历史而追寻了近一年之久,查阅各种资料等等。而追溯这段历史的路途中,我看到了工程中许多鲜为人知的事实。 ...

内训资料公开:设计师的实战过程(2)

这是“设计师的实战过程”内部培训的第二节,第一节的信息在这里。 在这一节里,我回顾了我在初入盛大时所做的一套数据架构。这套架构设计和实施约是在2005.10月,包括了完整的分析、设计,以及组织项目实施、交付的全部过程。这次培训录音以分析、设计为主,并讲述了项目过程中设计师的工作等内容。所以是一次比较完整完善的实战过程。 培训录音末尾还回顾了我在项目中的得失,以及一些感悟。因为事实上这是我进入盛大之后,历经的一次从(原来的)开发和项目管理,向架构与设计角色转化的过程,所以这次项目经验也就形成了我后期的架构风格,与基本的思想方法。对我而言, ...

杂家与集成

杂家与集成 ——读《Windows编程循序渐进》之随感 http://www.china-pub.com/39896 静盛送给我一本书,是《Windows编程循序渐进》,他则是书的作者。这样的事也常有,我也不常为此而写文章,尽管近些日子我写的书评看来是多了,但多是闲了或得有所感的缘故,不唯独出于情面。 静盛的书是讲VC++开发的,我不懂。我不太用C/C++,偶尔出于工作的需要,也看这些代码,也算得上熟, ...

内训资料公开:设计师的实战过程(1)

今天去CSDN做了一档节目(细节保留……呵呵),这勾起了我对在盛大工作的回忆。曾经,我在盛大做过一次内训,是关于设计师的实战的,这次内训大概是在2007年5月间。时间过去了一年多,如今我来看这些内容,仍然有许多可圈点之处。所以这里就把它公开出来,与大家分享,也欢迎批评。 这次内训讲了三讲,但非常遗憾的是,第一讲没有录完——中间的时候,我的手机内存被耗空了。这一讲一共讨论了“事务系统”中的5份文档,但只录了前三份。后两份则没录下来,但大体的思想,大家可以看得到了。 ...

元语言基础技术之:在JS中如何自由地创建函数

在前面讲元语言(QoBean的元语言系统之一、之二)的过程中,有些技术细节就忽略了。其中之一,就是这个创建函数的方法。这里开个小主题来讲讲。 在JS里面,我们可以用任意方法来构建对象,包括直接量和构造器。在使用构造器时,也可以有基于原型和基于属性抄写两种方法(以及这两种方法混用)。下面的例子简要地说明这些对象的构造方法: // 直接量对象声明 obj = {... } // 使用基于原型继承的方法来构造对象 function MyObject() { } MyObject.prototype = { constructor: MyObject, value: ... } obj ...

QoBean的元语言系统(二)

上一篇:<< 第一部分:元语言系统基础,以及程序的基础元素 第二部分:元语言下的编程基本方法 三、代码组织形式 1. 物理代码块(代码文本、代码行) 代码到底应该如何组织?如果我们认为代码是由序列调用的例程构成的,那么我们可以把代码的形式回溯到很“远古”的时代,例如: function func1() { } function func2() { } function main( ...

QoBean的元语言系统(一)

QoBean是从元语言系统开始构建整个语言系统的,从本文开始,我开始讲述QoBean所理解的元语言。不过,不同的人、从不同的侧面所理解的“元语言”是不一样的,不必求同。 “QoBean的元语言系统”包括三篇,分别是: 元语言系统基础,以及程序的基础元素 元语言下的编程基本方法 元语言的应用:虚拟执行环境 QoBean的项目地址: https://qomo.svn.sourceforge.net/svnroot/qomo/qobean ...

啥美,细致之美……

大概是在一年多前,一个朋友在MSN上与我聊天,忽然说道:我发现你做事也太细致了,连MSN聊天的时候,每句话后面都要打句号。我那时惊讶莫名,于是翻过去看历史,的确如此,绝大多数情况下,我的聊天记录都是标点符号正确的。 与此相同的,我后来把与王昊等几个朋友关于佛学的聊天记录摘下来,除了调整一下先后顺序之外,只字不改,便可以作Blog文章发表了。这便是所谓细心。 跟出版社打交道久了,便知道出版中尤其需要细致。一出点错,那就是几千册上万册的损失,印成实体书出来了,作者或许缘于对出版社的体谅,不去细究,但在读者那里却也不是买账的,墨印得不好就是不好, ...