介绍

首先...

这个工程的目标是制作一个基于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特性集合里源自其他语言的特性?

  1. 一个 Gambas 工程被存储在一个目录下面。归档管理器转换工程的目录结构为一个独立的可执行文件。

  2. 编译一个工程时仅需要编译被修改的类。一个类的每一个外部引用在执行时才被动态的付给。

  3. Gambas 有一个允许扩展语言的组件体系结构。任何人可以编写组件来作为向解释器动态添加新本地类的共享库。用 Gambas 也能编写组件。在维基百科全书中有组件体系结构的讲解。

  4. 作为缺省,Gambas 解释器是一个命令行程序。组件体系结构被来编写语言的图形用户界面部分。

  5. 作为以组件方式实现的图形用户界面, Gambas 将能够独立于任何工具包!你可以先写程序,再选用工具包:目前为GTK+或Qt。它们各自的组件具有相同的API。

  6. 同样的概念也应用于数据库组件。无论连接到哪个数据库,都可以使用相同的API。

  7. Gambas 的工程很容易翻译成任何语言。

  8. 它的对象模型简单但功能强大。

预期

在非常遥远的将来(你听到的是星际旅行的话题?),在计划中会有很多改进,可用时间是决定的规则。

任务 细节
增强网页 生成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建立在许多自由软件之上,而且不可以脱离它们而存在。

所以我要感谢参与了以下项目的每个人:
  • Linux操作系统

  • KDE

  • GCC 和所有的 GNU 工具,当然包括它们。

  • Qt 工具包。

  • GNU图像处理程序 GIMP 和它的 GTK+ 工具包。

  • Libre Office

  • MySQLPostgreSQLSQLite 数据库管理系统。

  • 以及任何其他Gambas使用的库。

Gambas的一些代码片段是基于第三方软件: 最后,但是并非最不重要,我要感谢所有帮助我的人,提供程序、补丁、示例程序、查找错误、撰写帮助、经济支持、明智的评论、等等...