Blog

临时学习一门编程语言不容易啊

买了新的 rMBP 后,我开始渐渐的从旧电脑中把文件转移到新电脑中。其中有几个我写的小脚本,我这次有重写它们的想法。

有一个脚本我最常用,它的作用是获取当前 Chrome 窗口的每一个标签的标题和链接,把它们输出成 MoinMoin 里面链接条目的样式。我分成了两个脚本,一个在屏幕上显示出来,另一个则输出到一个桌面文件上,并用时间戳做文件名。因为我经常不知不觉中就在浏览器中打开很多个标签,拖慢了机器的速度,而我又不希望丢失这些打开的标签,所以写了这个脚本,把标签保存下来。有时候有保留价值的链接,我就直接贴到我用 MoinMoin 搭建的个人 wiki 当中去。

这个脚本我是用 Ruby 写的,用了 rb-applescript 库。这次我转移它的时候,想起需要安装一个 gem,但又觉得还是把 gem 下载下来放进这个目录里去,不要装进系统的 gem 里好一些,于是就去了这个 gem 的主页,看到主页上有消息说它不开发了。我想既然这样,我为什么不试着直接用 AppleScript 来写这个脚本呢?而且这个脚本也该扩展一下功能了,过去我只用 Chrome 浏览器,因为它是多进程的,当机器不堪重负的时候,我可以在 Activity Monitor 里面杀死暂时不用的标签的进程,而释放内存后,标签还在那里,只是内容没了,等我再用的时候刷新就好。现在我的新电脑上没有这种不够用的顾虑,所以我开始用起了官方的 Safari。这个脚本也要支持 Safari 才好。而且输出方面我也有要求。过去我的操作系统是 Mac OS X 10.6,机器太旧没法升级 10.7,结果好多软件都没法安装,其中就包括 Mou。现在我装上了 Mou,感觉这个软件真是太好用了,我最近的博客也是在这里面写的。我在转移脚本之前,用 Mou 建立过一个文件,手动把我最近看过的链接给复制进去,我觉得这样也挺好,有些链接不用去 wiki 上保存,有了这个文件就可以在本地临时放放。现在我觉得这个脚本最好能加上一个选项,选择输出成 MoinMoin 格式还是 Markdown 格式。

由于之前弄过这方面的 AppleScript,我觉得大概不难,于是就通过找资料把程序写了一半。不过剩下的这一半,由于我对 AppleScript 不熟悉,因此感觉很难。

对于 AppleScript 这门语言,我觉得要学习起来略微有些复杂。虽然说它被认为是一门非常容易的语言,也确实如此,里面没有什么复杂的计算机语法,很多东西就像人类语言一样就读出来了。不过也正是因为如此,导致了学习者不容易很快速的掌握整个语言的所有内容。要学习一门其它的编程语言,入门的话只要找出它的关键字列表,弄明白作用跟语法,再看几个小程序就大差不差了。而 AppleScript,我目前还没有找到这种大纲。另外,AppleScript 语言常备用作操控 Mac OS X,它可以很方便的在 Mac 下的各种应用程序间通信,操纵数据,这也带来了更多的复杂性。不同的程序给出的数据有不同的结构,怎么能把这些结构都给掌握了呢?不知道专家是否有什么文档可以查,我反正还没掌握这些东西。比如在 Safari 中,获得一个标签的标题跟链接是用的什么关键字,只能靠猜测。

另外,我发现 AppleScript 侧重于操纵 Mac 程序,所以它的输出让我有点头疼。比如它的 Hello World 程序,要输出一段字符,例子给出的都是生成一个对话框,把要输出的字符串给显示上去,然后有两个按钮。这不是我想要的,我写的是一个 shell 脚本,输出自然是要在 shell 中,要怎么往终端中输出,我找了半天都没有找到。

我原本以为 AppleScript 会比 Ruby 更容易,现在觉得也许我想错了。如果我用 Ruby 的话,这程序应该早就写出来了。我过去没有学过这门语言,现在想着临时看看文档写出一个程序来用用,确实因为没有系统的学习,所以没法全面掌握,但我没想到一些简单的功能都没法实现,居然这么困难。

没有评论

Leave a Reply