共计 35 篇文章

Qomo之快速上手

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

QoBean的元语言系统(二)

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

QoBean的元语言系统(一)

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

QoBean技术文档(1):QoBean的基础技术

一、QoBean的发起 我对Qomo的不满由来以久,最根深蒂固的便是它的命名空间的实现方式:隐式地维护路径与命名空间系统。所以有一段时间,我几乎不敢看Qomo的Framework/Names/下的代码。 我对Qomo不满之处很多,但归结起来只有一条:太大太复杂。但它比那些“看起来不怎么复杂”的项目有太多特性要实现,因此复杂是必然的。我只是一直以来无法跳开一个圈子:为什么复杂的,一定不能简洁? QoBean的触动来自于一篇文档(忘掉了出处),说在JavaScript中实现类继承只需要几行代码而已。我当时想:是啊,只需要几行代码就行了,为什么Qomo的Object. ...

启动一个最小化Qomo项目-QoBean!

什么是QoBean ? QoBean是Qomo V2项目中的一个子项目,所以毋庸置疑的,它也是一个开源项目,它的最新版本可以从如下地址获取: https://github.com/aimingoo/qobean https://qomo.svn.sourceforge.net/svnroot/qomo/qobean QoBean是Qomo V2的一个分支,它的目标是最小化Qomo。首先,它没有打算象Qomo一样通过一个$import和与$import相关的一个兼容层去支持兼容平台。 ...

关于Qomo 2.0 beta1的发布

注意:此前对Qomo V2 beta1做过一次发布,但因为该版本文件已经丢失,且未在sourceforge中发布, 因此此次发布仍然使用beta1的名称。并将更新sourceforge中的文件。 一、Qomolangma 2.0 Beta1 参见如下发布说明: Qomo 2.0 beta1 发布说明及新功能 此外,今次发布的更新列表包括: 添加工具函数toEtor()和类Dict() Class()支持将匿名函数注册为匿名类 在内核方面的一些优化代码 ...

Qomo 2.0 beta1 发布说明及新功能

注:有关本次发布的一些重要信息请参见:关于Qomo 2.0 beta1的发布 一、Qomolangma 2.0 Beta1 Qomo的上次发布是在5个月前,此次的beta1主要包含对框架、兼容层和Builder系统的更新。有关界面组件库、图形库的发布,大约要到beta2或beta3才会提供。 Beta1主要的更新包括: 修改了大量代码和builder工具,实现对IE5.0的完整兼容,兼容safari v2,部分兼容opera 对兼容层代码做了大量修改, 并调整了兼容层在system. ...

Qomolangma.V1.0的发布说明

一、Qomolangma 1.0 Final 一年以来,Qomo团队都在一种迷茫的、看起来没有方向的状态中工作。因为Qomo看起来缺乏必要的设计,以向每一个关心它的人解释以下的问题: Qomo到底是什么 Qomo有什么用 此前我已经说过,Qomo项目源出于另一个名为WEUI的商业项目。WEUI有着自己完整的架构和方向,由于需求决定设计,因此事实上WEUI的原始设计也是面向它原本的方向与需求的。我当然知道这样的需求目标和方向,但也同样知道:WEUI与Qomo有相似但不相同的方向。 所以,我无法把WEUI的架构搬到Qomo中去,也无法用WEUI的方式来解说Qomo的架构。我必须Qomo的前期工作中解决一个问题:如何让WEUI变成Qomo。 既然不能让一个旧架构为新目标服务, ...

Qomo项目中代码的一般性约定

一、变量声明的一般性方法 Qomo约定在全局空间进行变量声明时,应用var关键字来声明,而不应当省略(尽管语法上讲能这样做)。声明时的代码格式尽可能使用如下形式: var v1 = 1234; v2 = 'abcd'; 或为每行声明都保留var关键字,例如: var v1 = 1234; var v2 = 'abcd'; Qomo约定在函数内部声明局部变量进,使用var关键字时可以用如下省写形式: var v1 = 1234, // < ...

如何使用Qomo的Builder系统

1. Qomo的Builder系统 Qomo在Beta2之后,主要解决的一个问题就是Builder系统。在设计上,Qomo对Builder系统提出了非常严格(甚至是苛刻)的要求,其中包括: 使用Qomo自身的框架来实现 使用JavaScript来实现,而不要第三方的应用(例如.exe的压缩程序) 对既有的和将来的Qomo项目透明,无影响 深入到Qomo内核的、分层的、可分解的模块定制 编译的结果代码,与使用中的调试版本无差异 这些要求所主要表现的,就是Qomo的Builder可以定制,而且对使用者来说公开、透明。 由于JavaScript是解释执行的脚本, ...

Qomolangma框架库(三):处理池与处理机

一、框架库:处理池与处理机 严格地说,Pool被译成“池”即可,只是在Qomo的TPool类中,所有放在“池”中的对象都是处理机(Machine),因此这个TPool被称为“处理池”类。 Pool的出现早在WEUI的时代,其目的是处理同步的、缓存的XmlHttp对象。因此,Machine也就在事实上只实现了“THttpGetMachine”。这个HttpGetMachine也能处理POST类型的HTTP请求,所以,严格地说,它应该名为“THttpMachine” ...

Qomo V1.0 final 发布~

终于写完了 V1.0 的全部代码~~也顺道整理了整个框架~终于可以发布final了。 ^.^ 正式版中的重大改进,包括: 新的命名空间和路径算法,终于可以声称支持“命名空间”了 完整的builder系统。支持连接(link)和压缩(compress)代码了 (体验版本的)组件系统及其系统 完整的性能分析和测试框架,载入器($import)的性能提高 在Qomo.js中, ...

Qomolangma框架库(二):时间线与时间处理器

一、框架库:时间线与时间处理器 几乎所有的动画特效都与时间线有关系。在一般的应用软件里,会提供一个固定间隔的时间线,设计人员则在时间线上描述指定的时间里会发生的事件。这些事件被连续起来,就成为了动画;而一组时间线合并起来,就成了动画场景。 Qomo里实现时间线的初衷,只是为了在绘制界面组件的效果时,提供一些用时间控制的效果。例如窗体关闭/隐藏时的卷入效果(以及在打开时的展开);又例如一个Outlook风格的纵向Bar在点击一个按钮时的展开。 在Windows32和vista风格的界面设计中,这些组件都具有一些特殊的动画效果。例如窗体弹出或控件的淡入淡出。这些动态效果其实都是在时间线的基础上来实现的。 但这些仍然只是单一组件,或一类组件的单一特效。这种情况下,只能算是“ ...

Qomolangma框架库(一):概述、工具、异常、调试与分析

一、概述:Qomolangma中的框架库(v0.1) 在UI层方面,Qomo一直没有足够的进展,因此Qomo在beta 1之前公布的代码看起来就象是一个语言实验工程,而不象是一个面向应用的项目。 其实Qomo的前身(WEUI)本身就是围绕UserInterface Library来提出的,因此WEUI的确有自己的UI层。此外,它也有完整的DB和Graphics层(及一个VML的实现)。但是Qomo对UI层提出的目标与WEUI并不一致,因此这直接导致了“Qomo需要一个新的UI库”的结果。 Qomo在beta 2中包含部分UI、DB层的代码,但是并不推荐将它归为Qomo的一个组成部分并应用。 ...

Qomolangma实现篇(九):Qomo中的模板系统

一、模板技术概要 模板技术由来以久。在C++中的模板(Template)是编译时技术,而在.NET CLR中用于取代该技术的范型(Generic)则是一种运行时技术。由于范型理论的出现,使范型编程成为一个新的语言课题。在.NET CLR中,范型编程就是一种用模板来实现代码重用的高效技术(类范型和方法范型)。 然而,模板技术的使用也带来了很多的问题。例如: 模板系统的出现,是为了解决了类型问题呢,还是只是解决代码重用的问题? 通过模板来生成可运行代码框架, ...