K.I.S.S. – 简单哲学 Linux, Freedom, Arch, Python, Gtk+, C … Keep It Simple, Stupid!

2八/1015

人生苦短,我用 Genie

这篇文章已经酝酿很久了,不过一直没时间没心情写。今天到学校开始学日语了,又看到 WowUbuntu 介绍的日语 50 音图测试软件 Kanatest 在 Arch 的 AUR 里面找不到,所以干脆自己写一个,顺便补上这篇文章。

进入正题,开发一个 Linux 下的软件,你选择的编程语言是什么呢?我想大多数人会选择 或者 Python 吧。像上面说的 50 音图测试软件,用 开发有些大材小用了,用 Python 呢,要是涉及运算的时候速度又不尽人意。

那么用什么呢?Google 的 Go 语言?库还不完善呢。?有些人会想到这个 GNOME 的项目了,确实, 对于熟悉 C# 的朋友可能十分顺手,可是对于更加喜欢 Python 的朋友,或许就不是那么友好了。

好的,我们的主角登场了,

既然你知道 Vala,或许你也知道,它只是对 C 语言的一个包装,运行效率与 C 相差无几。Genie 语言就是 Vala 的同胞弟弟,它也是对 C 语言的包装和翻译,能够实现 Vala 的所有特性,甚至“编译器”都是相同的——valac!唯一不同的是,Genie 是以 Boo、Python 等脚本语言为蓝本,语法上更加灵活、简洁,如果你学过 Python,Genie 的入门将十分之快!

来看看我写的这个简单的 50 音图背诵软件吧,功能很简单,就是将日语的平假名随机闪现,相信有 + 基础的朋友很容易就可以看懂。

/* 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

分享家:Addthis中国

你可能对这些感兴趣:

  1. 使用 gtkaml 编写 GTK+ 界面
  2. 数字图像处理(三)——高斯噪声
  3. 在自己的 GTK+ 程序中加入 RGBA 透明支持
  4. 数字图像处理(一)——椒盐噪声
  5. 使用 PyGTK 和 Cairo 编写一个简单的时钟

喜欢这个文章吗?

考虑订阅我们的RSS Feed吧!

标签: , , , 发表评论
评论 (15) 引用 (1)
  1. 很强大啊,赞一个。

  2. 关注Genie,话说你在哪里学日语?培训机构?

  3. OMG!GNOME已经发明两个语言了!话说,你的内链加的真多,我指啊指啊,最終在最后一个链接找到了Genie的主页,内牛……

  4. 路过看风景,博主的文章描述的很详细,让我这个不懂也看明白了。

  5. 感谢分享……看动漫至今无力,希望能有所改善。日语貌似现在很是强势啊……

  6. 偶还不知道Genie是什么呢,呵呵


Leave a comment

(required)