Xojo

**Xojo**（读作“啁啾”）是一个跨平台编程语言及多平台开发工具，能为Windows、Mac OS X及Linux這三种操作系統编写具有图形用户界面的桌面（Desktop）程序、没有图形用户界面的控制台或后台服务程序、网络（Web）程序（有嵌入网络服务器功能的可独立运行版本以及支持Apache和IIS的CGI两种方式），并即将支持iOS等移动平台。Xojo通过交叉编译在开发平台上为各种操作系統生成本机代码的原生的应用程序，即程序由CPU可以直接执行的指令组成，几乎所有界面控件也都是相应操作系統的原生界面控件。

Xojo语言是完全面向对象（物件導向）的编程语言，支持继承、重构、多态，像Java和C#一样支持类接口（class interface）和命名空间（名称空间，namespace）。除此之外，还有委托（delegate）、反射/自省（introspection）等现代编程语言所具有的功能。Xojo语言是强类型语言，所有变量需要先定义后使用。

Xojo的集成开发环境（整合開發環境，IDE）提供了工程管理器、界面设计器、菜单设计器、工具栏设计器、报表设计器、代码编辑器、编译器、调试器等全套工具。

Xojo的编译器曾经可以为X86、68K、PowerPC三大类芯片编译原生程序，随着后两者的衰落，目前只支持Intel X86系列及其兼容芯片，能为Windows生成PE格式可执行文件，为Mac OS X生成Mach-O格式程序包（以前还支持PEF格式的单一可执行文件），为Linux生成ELF格式的可执行文件。Xojo的编译器后端将在不久的将来采用LLVM代替自行编写的编译器，从而能为iOS和安卓等移动系统所支持的CPU编译原生应用程序。

Xojo目前支持的操作系统程序库包括Microsoft Windows上的Win32及兼容API，Apple Mac OS X系统的Carbon框架和Cocoa框架，Linux上的GTK图形界面。以前还曾支持过Mac OS Classic平台，并且将会支持iOS的Cocoa Touch开发框架。Xojo提供插件（plugin）开发包SDK，使用户能将用C/C++等语言编写的程序库进行包装后在Xojo程序中调用。Xojo的Mac OS X程序还支持嵌入AppleScript脚本，所嵌入的脚本可以作为工程中的一个全局方法来调用，在Windows上则支持大部分ActiveX控件。Xojo语言通过与VB类似的Declare语句提供对操作系统API和各平台上的动态库、静态库文件中的函数进行直接调用。

Xojo提供内嵌的SQLite数据库引擎，同时支持Oracle、MySQL社区版（MySQL的许可证不允许同时支持开源社区版和付费版的软件存在，因此目前仅支持社区版）、PostgreSQL、MS SQL Server（当然仅限Windows）等大部分主流的SQL数据库服务器，也支持以ODBC方式访问数据库。

## Xojo的特殊功能
很多开发工具都有一些大部分其他工具所不具备的功能，Xojo提供的功能比如：

* 本地化/多国语言支持：Xojo工程中的所有界面元素上的文本和要显示给用户的文字都可以使用全局级或模块级字符串常量，而Xojo语言中的全局或模块级字符串常量可以被设置为“动态字符串”，使用文件菜单的“导出可本地化的常量”功能，可将工程中所有的动态字符串导出为一个Xojo Locale文件。这类文件可以交给语言专家使用Xojo提供的Lingua程序翻译为其他语言。翻译后的文件可以转换为外挂的界面文字文件，从而使任何程序都能轻松提供多国语言版本。

* 自动化/脚本支持：Xojo语言通过XojoScript类等提供了一个脚本编译和执行环境，其所支持的脚本是Xojo语言的一个子集。使用这一功能，程序开发人员可以使他们的软件的高级用户能像在Microsoft Office中使用VBA和宏那样对他们的程序进行自动化控制。

Xojo的IDE就是使用Xojo语言编写的，因此也充分利用了上述功能来实现多国语言支持和自动化。比如开发人员可以使用Xojo IDE的自动化脚本功能让Xojo在编译程序之后自动将程序所需的外部文件复制到程序文件夹中，或自动生成安装包等。

## Xojo所获奖项
### Mac平台
Xojo诞生之时，Apple自己的Mac OS X平台开发工具XCode还未面世，因此不久就与CodeWarrior（时为摩托罗拉下属飞思卡尔公司的产品）一起成为了Mac OS X平台上的重要开发工具，在1999～2001年连续三届获得Apple Design Award提名，曾被Mac用户界著名的Macworld杂志给与了4.5只“老鼠”的好评（满分为5只，但极少打出满分），在2003 MacInTouch读者评选中被评为最佳开发工具。

在前Mac Apple Store时代，Apple通过其官方网站上的下载栏目提供第三方软件下载，并为一些较为重要的软件加上“Staff Pick”（苹果公司员工选择）标记，当时Xojo一直是Staff-Picked产品。微软公司的Mac产品开发部门曾一度长期使用Xojo，IE for Mac的主体功能和Microsoft Office的Mac版（2004及更早版本）中的实用工具（如ODBC连接器等）都是使用Xojo编写的。Microsoft Office的苹果版其实一直支持自动化操作，但直到最近的版本才提供了内嵌的VBA编辑器，在此之前Office的苹果版安装包中自带Xojo的5.x系列开发包，并通过后者的Office自动化支持来提供这一功能（Xojo的微软Office自动化功能在Windows上也可用）。

### Windows平台
2005年3月，5.5的Windows版获得了CMP评选的Jolt奖的语言与开发环境奖类生产力奖。

### Linux平台
2006年1月，经过一年的读者投票之后，2005 Linux版以绝对优势获得了SYS-CON的LinuxWorld杂志2005读者选择奖的最佳Linux编程环境和最佳Linux开发工具两项大奖。

### 其他
在2005年2月份的DEMO@15软件展示大会上，获得了DEMOgod大奖。

## Xojo的历史
1997年美国人Andrew Barry发布了一款名为CrossBasic的快速开发环境（RAD），这是他用业余时间编写的，通过它，用户能用BASIC语言编写图形界面应用程序，然后编译成能运行于680X0（68K）芯片的Macintosh机的程序和Java程序。同年9月CrossBasic被位于德克萨斯州首府奥斯汀市的FYI软件公司收购，由于CrossBasic已经被另一家美国公司注册成为软件产品的商标，因此决定更名为REALbasic，FYI软件公司也随之更名为REAL Software, Inc.。
 
1998年7月14日，REALbasic 1.0正式发布，它能为68K芯片和PowerPC芯片的Mac机创建应用程序。因此REALbasic成为了Macintosh平台主流开发工具之一，也是当时所有Macintosh主流开发工具中唯一一款使用BASIC语言的可视化、面相对象的IDE，但是取消了生成Java字节码的功能。接着从1999年到2001年，REALbasic连续三年获得Apple Design Award提名。
 
2000年4月17日，REALbasic 2.1发布，从该版本起用户能在Mac上为Windows创建应用程序。同时微软Internet Explorer的Macintosh版的产品经理也宣称REALbasic是开发Internet Explorer 5 Macintosh版的重要工具。
 
2001年7月18日，REALbasic 3.5推出，开始支持苹果电脑的下一代操作系统Mac OS X之外，并提供了对3D技术、微软Office自动化的支持，推出了RBScript脚本语言（后来的XojoScript脚本语言）。

2003年2月24日推出REALbasic 5.0 Mac版，4月28日，Xojo首个Windows版上市，此后用户能在任意一个系统中为两个系统开发应用程序。
 
2003年7月被Macworld杂志给与了4.5只“老鼠”的好评（满分为5只，但极少给满分），随后在12月16日的2003 MacInTouch读者评选中被评为最佳开发工具。
 
2004年2月25日，REALbasic 5.5面世，可以在Windows和Mac平台为Linux编译程序，开始支持控制台/后台服务程序。并成为Microsoft Office 2004 Macintosh版（发布于同年的5月18日）的附带软件。同时REAL公司为了展示REALbasic中完善的Office自动化控制功能还为Microsoft Office 2004开发了5款实用工具（Office Power Pack）。除了与微软Macintosh部门进行了密切合作之外，Novell和RedHat也从这一年起成为了REALbasic的合作伙伴，尤其是Novell在其官方网站等媒体中编写了专题，演示如何将VB程序通过REALbasic转换为Linux程序。这年3月年度开发者大会首次举行。

2005年，REALbasic 5.5获得Jolt Product Excellence大奖（由CMP Media的《Software Development》杂志评选，SD杂志于2006年合并入《Dr.Dobb's Journal》）和SYS-CON的LinuxWorld读者选择大奖提名。前者由业界和媒体评选，后者由读者投票选出。2005年3月，REALbasic 5.5 Windows版获得了Jolt开发工具类生产率大奖；并在2006年1月经过一年的读者投票之后，REALbasic 2005 Linux版获得了LinuxWorld的最佳Linux编程环境和最佳Linux开发工具两项读者选择大奖。此外在2005年2月份的DEMO@15软件展示大会上，该公司还获得了DEMOgod大奖。

2004年2月25日一直到次年7月，公司用REALbasic重新编写了REALbasic的开发环境，结束以前在Windows和Mac上分别用两种略有区别的C++语言各自编写开发环境的历史。2005年7月14日用REALbasic重写的REALbasic 2005R1的Windows和Macintosh版本推出，9月13日Linux平台版正式推出。在2005年5月5日，公司还与SQLabs公司签订了协议，雇用后者合作开发REAL SQL Server。
 
2006年3月7日，波兰教育及科学部为全国300多所高中统一采购了3500份REALbasic，以代替不再被微软支持的VB6，并改用REALbasic新教材进行基本的程序设计课教学。7月25日发布了名为REAL SQL Server的跨平台多用户数据库系统（后改称REAL Server）。8月，简体中文和繁体中文版正式上市。2009年中期开始提供由三个平台的REALbasic专业版和REAL Server组成的四合一REAL Studio产品。

2010年2月9日，2010第一版发布，开发工具产品正式更名为REAL Studio，原REAL Studio改称REAL Studio企业版。2010年9月，REAL Server产品停止销售。从2010第五版开始支持Web程序开发。之后大概从2011年末开始，公司和产品名中的REAL逐渐不再大写，产品名因此书写成了Real Studio。从2011到2013年6月，完善对Web程序和Cocoa的支持以及IDE的重新设计成为主要工作，编译器后端改为LLVM的工作也在进行种，再此期间新版本发布较少。

2013年6月4日，2013第一版发布，公司于同日宣布集成开发工具产品、编程语言和公司名称同时变更为Xojo，名称来源于X-platform ObJect Orientation，即跨平台面向对象，并称可能在年内或稍晚开始支持iOS平台。

## 参考资料


## 外部链接
* Xojo, Inc. ，Xojo官方中文网站。
* Xojo中文用户事务部门 ，Xojo中文用户事务部门页面