人生苦短,我用 Genie
这篇文章已经酝酿很久了,不过一直没时间没心情写。今天到学校开始学日语了,又看到 WowUbuntu 介绍的日语 50 音图测试软件 Kanatest 在 Arch 的 AUR 里面找不到,所以干脆自己写一个,顺便补上这篇文章。
进入正题,开发一个 Linux 下的软件,你选择的编程语言是什么呢?我想大多数人会选择 C 或者 Python 吧。像上面说的 50 音图测试软件,用 C 开发有些大材小用了,用 Python 呢,要是涉及运算的时候速度又不尽人意。
那么用什么呢?Google 的 Go 语言?库还不完善呢。Vala?有些人会想到这个 GNOME 的项目了,确实,Vala 对于熟悉 C# 的朋友可能十分顺手,可是对于更加喜欢 Python 的朋友,或许就不是那么友好了。
好的,我们的主角登场了,Genie!
既然你知道 Vala,或许你也知道,它只是对 C 语言的一个包装,运行效率与 C 相差无几。Genie 语言就是 Vala 的同胞弟弟,它也是对 C 语言的包装和翻译,能够实现 Vala 的所有特性,甚至“编译器”都是相同的——valac!唯一不同的是,Genie 是以 Boo、Python 等脚本语言为蓝本,语法上更加灵活、简洁,如果你学过 Python,Genie 的入门将十分之快!
来看看我写的这个简单的 50 音图背诵软件吧,功能很简单,就是将日语的平假名随机闪现,相信有 GTK+ 基础的朋友很容易就可以看懂。
/* Build with valac --pkg gtk+-2.0 mykana.gs */
[indent=4]
uses
Gtk
init
Gtk.init(ref args)
var window = new MainWindow()
window.show_all()
Gtk.main()
class MainWindow: Window
label: Label
const chars : array of string = {"あ", "い", "う", "え", "お", "か", "き", "く", "け", "こ", "さ", "し", "す", "せ", "そ", "た", "ち", "ち", "て", "と", "な", "に", "ぬ", "ね", "の", "は", "ひ", "ふ", "へ", "ほ", "ま", "み", "む", "め", "も", "や", "う", "よ", "ら", "り", "る", "れ", "ろ", "わ", "を", "ん"}
init
title = "My Kana"
window_position = WindowPosition.CENTER
default_width = 250
default_height = 250
destroy.connect(Gtk.main_quit)
label = new Label(null)
add(label)
Timeout.add_seconds(1, this.change_char)
def change_char(): bool
var i = Random.int_range(0, 46)
var output = Markup.printf_escaped("%s", chars[i])
label.set_markup(output)
return true
可以看出,除了类型声明之外,从某种程度上讲,Genie 的语法甚至比 Python 更加简单。而且,通过使用 libgee,Genie 甚至可以使用等同于 Python 中的 list、dict 等类型,功能十分强大。Genie 与 Vala 共用 API,所以库的问题也不用担心。
不过,Genie 创造于 2008 年,年纪还很轻,文档还不够全。就如同 Vala 一样,Genie 的语法也在发展之中。如果你觉得这些都不是问题,那么赶快看看文档学习一下吧!
我觉得很不错的一些文档:官方指南、来自 Puppy Linux 的指南、官方代码示例。
原创文章,转载请注明: 转载自K.I.S.S. - 简单哲学
本文链接地址: 人生苦短,我用 Genie

你可能对这些感兴趣:
- 使用 gtkaml 编写 GTK+ 界面
- 数字图像处理(三)——高斯噪声
- 在自己的 GTK+ 程序中加入 RGBA 透明支持
- 数字图像处理(一)——椒盐噪声
- 使用 PyGTK 和 Cairo 编写一个简单的时钟

2010年08月02日 21:03
很强大啊,赞一个。
2010年08月02日 21:18
http://aur.archlinux.org/packages.php?ID=19782
這是你要的
2010年08月02日 21:21
@qwert, 杯具,原来是我的 yaourt 出问题了……
2010年08月02日 21:50
关注Genie,话说你在哪里学日语?培训机构?
2010年08月02日 22:07
@samnew, 学校的课程,软件工程专业必修……
2011年01月02日 20:40
昨不学英语?为什么是日语?
2011年01月03日 11:35
因为我喜欢看日本的,不喜欢看欧美的……当然你要相信我说的是动漫……
2010年08月03日 09:13
OMG!GNOME已经发明两个语言了!话说,你的内链加的真多,我指啊指啊,最終在最后一个链接找到了Genie的主页,内牛……
2010年08月03日 10:27
@TualatriX, 哈哈,内链是自动加的,我一般把链接放在最后……
2010年08月17日 12:59
@Iven Day, 内链果然不少,跟皮肤颜色倒也蛮匹配
2010年08月17日 13:55
@SOHO一族, 呵呵,要不是你们说我都把内链这回事忘掉了……
2010年08月25日 15:25
路过看风景,博主的文章描述的很详细,让我这个不懂也看明白了。
2010年09月10日 19:53
感谢分享……看动漫至今无力,希望能有所改善。日语貌似现在很是强势啊……
2010年10月20日 15:41
偶还不知道Genie是什么呢,呵呵
2011年08月11日 10:06
XXX又一门语言