星期六, 九月 02, 2006

AutoIT3 vs AutoHotkey

[webnote]
[software] 
 
AutoIT3 vs AutoHotkey 

两者皆为此中翘楚,得一即可安天下。然兴致而来,不妨搜一些比较结果。

  我最早听说的是AutoIt3,看了看,没用。后来了见了AutoHotkey,也没用。再后来用的时候,发现AutoHotkey更简单,并且vim自带了语法着色文件,就一直用它。后经yul88补充启示,就有了这篇文章。

* 简译一段
  多人在版上说起AutoHotKey,我来说说AutoIt3。它是AutoHotKey的大哥。AutoHotKey是AutoIt v2 的仿制,并做了强化。但AutoIt3是新品,更强大,有很多改进(COM、GUI兼容,正则表达式)。因此,应了解一下AutoIt3。…… AutoHotKey的开发者是原AutoIt2成员。这两个项目之间可能有些不快。AutoIt3后来不再GPL,来保护代码。你可以下载到 AutoIt2的代码,想要AutoIt3,就要做保证。…… AutoHotKey相当于AutoIt2++……猜:他想扩展AutoIt2,但其他人关注于AutoIt3(增加了很多功能:GUIs, tray icons, even with their own right click menus, calling COM objects directly from the AutoIt scripts and a lot more stuff)
  {英文原文}

* yul88的观点
  我觉得,AutoHotKey的语法太不规范了,使用数组很头疼。如果脚本里面的控制比较复杂的话,还是用AutoIt比较好。

* yonken的评价
  至于说到究竟哪种语言比较好,我的想法是其实应该看个人习惯和你要解决的问题了,毕竟这是两种不同的脚本语言,自然在语法和功能级别上有所不同(但两者同样都能解决大部分的自动化操作问题),因此若你曾学习过其他(程序)语言那么你可以选择与你所熟悉的语言相近的一个。
  我的个人意见是如果你学过BASIC(VB),那么可以选择AutoIt,否则可以考虑AutoHotkey,因为它的语法简单而且直观。
  {原文全文}

* yonken荐/译的两篇评论
  另外,你可以考虑参考一下老外对这两者的讨论:
http://www.blogcn.com/user48/yonken/blog/26348290.html
http://www.blogcn.com/user48/yonken/blog/26348321.html
摘引如下:

  ……其实根本没有所谓的AUT vs. AHK 之类的事。我有点怀疑(楼主的企图)。Chris(AutoHotkey开发者)刚开始想要(和John B.讨论)搞热键功能的时候他得到的只是冷漠的回应,现在AHK越来越受欢迎了却有人(这些人可能现在是/曾经是AUT用户)来要求两种语言的合并?)
  谁会把自己的亲生孩子杀掉?会是Chris?还是John??还是安心让他们各自开发吧。BTW:这两种语言都是开源的,如果你有兴趣的话不妨自己开发一个,比如说AutoHITkey ??
  AHK的语法更加简单,而(在多数情况下)实现同样的功能却只要键入更少的内容。对我们这种懒人来说,还有什么更好不过的?……

AHK相对AutoIt的优越之处
  语法上稍微比较容易理解,特别是GUI部分的语法更加容易而且表现很好。
  更加友好/更好的论坛支持。
  获得源码的途径非常明显。而AutoIt "开发小组"似乎对获取新源码的行为设置了一些"障碍"。

AutoIt 相对 AHK的优越之处
  优点在于拥有更多而且较好的像修改版SciTe(非常棒)和AutoMacroGenerator(对很多任务的实现要比AU3recorder好多了)这样的用户创建工具。众多的工具一直都在更新开发中。至于会有这么多针对AutoIt 的工具出现的另外一个原因可能是因为它的知名度和强大的用户功能吸引了更多的人去开发(AutoIt这个词早就出现在人们的视力范围内)。
  当然,我们不能这么片面地分析, SmartGui (Gui stealer) 就是AHK的一个值得引以为傲的示例工具。
  AutoIt的开发级别恐怕更加高级(比如说ActiveX/OLE/COM),但这也往往意味着要有复杂而且较难的语法来实现,使得用户只好频繁询求帮助。

  我想如果AutoHotKey融合CS-Script的话,那么平衡两方力量的天平将可能倾斜。CS-Script是一种C# 脚本语言,它可以用来实现很多事情,比如MAKE DLLs 以及一切C# 能实现的功能。我认为之所以众多用户投奔AutoIt怀抱的一个重要原因就是它的"强大"(这也是为什么那么多用户工具针对它来开发的原因),但是如果有一天AutoIt 失去了它的"强大"优势那么将会有好戏看了。
  也许AutoHotKey与CS-Script (C#)的逐渐融合将会吸引更多的开发人员,而且更多的用户工具也将为AutoHotKey开发。 AutoHotKey 本身的优点例如语法上较易理解和更加友好可能会受到更多人的喜爱。所以很难说将来将会怎样,但那肯定是值得期待的。
  我觉得其实大家对 AutoHotKey 和 AutoIt 的比较是无法避免的。这两种语言如此相似,许多人都曾在选择最好的一个之前试过这两种语言,有些人可能会用了某个之后一段时间然后又换回原来的,有些人甚至可能会有第四次的选择。
  ……用AutoHotkey 来解决问题往往更加轻松、更加简单,而且更加直观。即使我用AutoIt和 AutoHotkey 脚本来实现同一个功能,往往是用AutoHotkey写的脚本更容易让人理解或者更容易实现。尽管AutoIt 对COM/OLE/ActiveX的支持使得它在一些应用面上占据了优势,但我还是看重AutoHotkey众多细节方面的优点。对于多数自动化任务来说 AutoHotkey都是较好的选择。如果有一天AutoHotkey也出一个支持COM/OLE/ActiveX的版本的话(其实结合 VBscript/JScript 和 AutoHotkey也是一样能实现),那么我想AutoHotkey将肯定会在这场竞争中占据优势。
  AutoHotkey在某种程度上来说带有一点Javascript的味道,我觉得这样不错。我认为AutoHotkey就是应该参考Javascript/JScript/JScript.NET 的语法。VB.NET的变化越大或者本来用VB.NET后来转而投奔C#、Javascript、Jscript、JScript.NET等语言怀抱的人数越多,则VBScript 和 VBA的未来就越不太让人看好。………总体来说,我觉得AUT这么像Visual Basic 应该算是一个失误。
  还有,我发现就算用最垃圾的记事本来编写AutoHotkey 脚本都是很轻松的一件事,而对AutoIt来说,如果不是有强大的SciTe4AutoIt 版,那么用记事本来编写AutoIt 脚本简直就是折磨。
  ……我始终认为随着AutoHotkey 越来越强大(如果它能支持COM/OLE/ActiveX则更加完美了),它迟早会变得更加受欢迎的。


* 再补几篇老外的讨论

xbeta 善用佳软 2006-09

没有评论:

google站内搜索

Google