介绍
首先...
这个工程的目标是制作一个基于BASIC语言的图形开发环境,所以有点像 Linux™ 下的 Visual Basic™ 。
由数量惊人的错误和自相矛盾构成的
Visual Basic ,促使我很高兴被说服启动这个项目。;-)
看起来微软很明白它的语言质量低劣,例如
VB.Net 就不再向后兼容
Visual Basic 的老版本。我认为解释器的源代码已经被抛弃,而且
VB.Net 仅仅是一个语法看起来像老
Visual Basic 的
.Net 运行时的编译器。
我想尽快澄清任何误解。Gambas 没有试图兼容
Visual Basic ,而且永远不会。我深信它的语法和内部结构远远优于它的那个私有的表亲。;-)
我接受从
Visual Basic 中发现的有用的东西:
Basic 语言、开发环境、以及轻松的快速生成带用户界面的程序,再没别的了。我可以选取几乎任何其他语言的语法,但是从孩童时代我接受的就是
Basic 教育,所以...
我讨厌普通
Visual Basic 程序员的臭水平,经常是由于这个语言的错误和莫名其妙所强迫形成的坏习惯。所以,我将尽力使 Gambas一致、合乎逻辑和尽可能可靠,而且我希望Gambas程序员们付出的努力会得到回报!:-)
我希望其他人能加入进来,和我一起来完善这个语言。这里有太多的工作需要做!
特性
我将尝试描述Gambas的主要特征和那些来自其他语言的特性集合。
首先,Gambas 是一个带对象扩展的
Basic 语言。一个用 Gambas 编写的程序是一组文件的集合。在面向对象编程的条件下,每个文件描述一个类。类文件被编译,然后被解释器执行。从这点来看,它的很多灵感来自于
Java™ 。
Gambas 由下列程序构成:
-
一个编译器。
-
一个解释器。
-
一个归档管理器。
-
一个图形用户界面组件。
-
一个开发环境。
开发环境是用Gambas自己编写的,所以可以看到这个语言的强大。而且它对于调试非常有用!
什么是Gambas特性集合里源自其他语言的特性?
-
一个 Gambas 工程被存储在一个目录下面。归档管理器转换工程的目录结构为一个独立的可执行文件。
-
编译一个工程时仅需要编译被修改的类。一个类的每一个外部引用在执行时才被动态的付给。
-
Gambas 有一个允许扩展语言的组件体系结构。任何人可以编写组件来作为向解释器动态添加新本地类的共享库。用 Gambas 也能编写组件。在维基百科全书中有组件体系结构的讲解。
-
作为缺省,Gambas 解释器是一个命令行程序。组件体系结构被来编写语言的图形用户界面部分。
-
作为以组件方式实现的图形用户界面, Gambas 将能够独立于任何工具包!你可以先写程序,再选用工具包:目前为GTK+或Qt。它们各自的组件具有相同的API。
-
同样的概念也应用于数据库组件。无论连接到哪个数据库,都可以使用相同的API。
-
Gambas 的工程很容易翻译成任何语言。
-
它的对象模型简单但功能强大。
预期
在非常遥远的将来(你听到的是星际旅行的话题?),在计划中会有很多改进,可用时间是决定的规则。
任务
|
细节
|
增强网页
|
生成HTML网页的新控件和容器,具有一些JavaScript魔力
|
数据组件增强
|
新的数据控件,例如绑定的TreeView。
|
图形组件
|
在Gambas中生成图形。
|
对象持久化系统
|
使Gambas对象透明持久化:您可以摆脱数据库管理系统。
|
一种新的语法
|
允许Gambas编译器理解另一种语法。
|
关于我
欢迎你,有好奇心的人!你马上就会知道关于我的几乎一切...
我名叫贝努瓦·米尼西尼(Benoît Minisini)。是一个出生于1972年的法国人,居住在巴黎。从我12岁开始,编程就是我的兴趣之一,并且是我目前从事多年的工作。这个兴趣开始于一台CPC Amstrad 464上的Basic语言,以及后来的一台Atari 520 STE。当然,现在我使用许多其他语言,但我从未忘记学习并使用Basic做了许多事情。
我总是喜欢编写语言、编译器、汇编程序,还有解释器。我在Amstrad上编写了一个Z80汇编程序和一个耗尽了所有内存的解释语言。
后来在 E.P.I.T.A.(法国高等计算机信息工程师学院)学习期间,我在Windows3.1下编写了Lisp语言解释器。在6个月里,我研究Windows,其愚蠢的内存模型、Microsoft C编译器,以及它大量的漏洞。
今天,我继续痴迷于Gambas语言,将自己的经验贡献给自由软件世界。
感谢上帝,我有一份兼职工作,所以在过去的几年里我一直在积极地研究Gambas。
但是我也有其他兴趣,花费了大量时间。有音乐——我演奏长笛很长一段时间了——还有戏剧...
所以,Gambas的开发不像它能够的那样快。
我希望你的好奇感得到了满足... :-)
鸣谢
Gambas建立在许多自由软件之上,而且不可以脱离它们而存在。
所以我要感谢参与了以下项目的每个人:
Gambas的一些代码片段是基于第三方软件:
最后,但是并非最不重要,我要感谢所有帮助我的人,提供程序、补丁、示例程序、查找错误、撰写帮助、经济支持、明智的评论、等等...