对AutoHotkey 和 AutoIt 都感兴趣的不妨看看。
也可参考另一片文章 http://www.1msoft.com/column/aboutau3/AutoIT3vsAutoHotkey.html
首先有必要让大家了解一点:AutoHotkey和AutoIt的主作者分别是Chris和Jon。
AutoHotkey 发布过的最古老的beta版本:
0.205 BETA - November 10, 2003(即2003-11-10)
AutoIt v3 发布过的最古老的beta版本:
First public beta binary - 4th Mar, 2003.(即2003-03-04)
(以上数据来自各自的官方网站,分别是:
http://www.autohotkey.com/changelog/2004.htm
http://www.autoit.com/autoit3/docs/autoit_changelog_complete.txt)
在两者的论坛上分别搜索对方的名字(AutoHotkey/AHK 或 AutoIt/AUT/AU3),你肯定会发现有不少的讨论乃至争执。
AutoHotkey “偷用”了AutoIt v2 或v3的源代码?AutoHotkey 抄袭了AutoIt 的idea?究竟事实是怎样的呢?
先看看Chris是怎么说的:
“The AutoHotkey project began about two years ago because I loved AutoIt v2 but wanted faster, better, and built-in hotkeys. ”
我很喜欢AutoIt v2,但我需要更快、更好用的脚本语言,以及更好的热键支持,所以大约在两年前我开始动手写AutoHotkey
“Although AutoHotkey does not use any AutoIt v2 source (I didn't even know its source had been released), it does use AutoIt v3 source for about 34 commands, such as Process and FileCopy. ”
尽管AutoHotkey未曾使用过AutoIt v2的源代码(我甚至不知道它的源代码有发布过),但它确实使用了AutoIt v3 的部分源代码来实现大约34个命令,比如Process 和 FileCopy等。
“In addition, AutoHotkey includes ahk2exe, which is a modified version of Jon's compiler. ”
此外,AutoHotkey所带的ahk2exe实际上是Jon(AutoIt的主作者)写的脚本编译器的修改版。
“In addition, it includes AutoWriter (the macro recorder) and Window Spy, both of which were written by Larry Keys. ”
包括AutoWriter和Window Spy在内,都是Larry Keys写的。
上面提到的34个命令包括:
Control
ControlClick
ControlFocus
ControlGet
ControlGetFocus
ControlGetPos
ControlGetText
ControlMove
EnvUpdate
FileCopy
FileCopyDir
FileCreateShortcut
FileGetShortcut
FileGetVersion
FileMove
FileMoveDir
FileRecycle
FileRecycleEmpty
FileRemoveDir
FileSelectFolder
IniDelete/Read/Write
MouseMove's incremental cursor movement
PixelGetColor
Process
RegDelete/Read/Write
RunAs
Shutdown
SplashTextOn/Off
URLDownloadToFile
(以上内容参见http://www.autohotkey.com/forum/viewtopic.php?p=19710#19710,此帖最后修改日期为2006-08-14)
尽管如此,Chris强调“AutoHotkey.exe is over 95% the work of myself, Aurelian Maga, Gregory F. Hogg, and Joost Mulders”(AutoHotkey.exe 有95%以上的部分都是由Chris, Aurelian Maga, Gregory F. Hogg, 和 Joost Mulders完成的)
【事实上,之所以Chris使用了AutoIt的源代码来实现这些命令,我想他的初衷是想节省时间,毕竟要完全抛弃已有的东西重新编写是不划算的。而且这些命令大部分都是很容易实现的(不过是使用API罢了),几乎简单到从MSDN上COPY一下就可以了。更何况当时AutoIt是开源的,这样做也没有不对的地方,或许还是有疑惑:Chris提到他“使用”了AutoIt v3的源代码,那这种行为是否符合相关的国际约定?
我们再来看看AHKnow的说法:
2. I believe AutoHotkey was developed in the period of time when it was believed AutoIt version 2 had stopped development and there was no version 3. Also, the idea of focusing on "hot keys" was presented to AutoIt developers but nobody responded to the idea at the time.
我相信Chris开始写Autohotkey的大致时间是在人们普遍认为Autoit 小组已经停止开发Autoit v2的时候,而在当时AutoIt v3尚未发布。Chris希望能在热键这方面做得更好一些,于是他向Autoit的开发小组表示愿意参与到合作中以实现此部分内容,但似乎没人对他的idea有兴趣,Chris得到的只是冷板凳(我联系Jon商量中文帮助文档的发布时也有着类似的遭遇,yonken注)。
3. The AutoIt version 3 source code was initially OPEN source. Edit - AutoIt version 2 source code appears to have been only available by request, but if the AutoIt version 2 license was GPL than it is still considered OPEN source even if the author tries to hide or make it hard to get the source.
Autoit v3一开始是开源的,而Autoit v2的源代码却似乎需要用户主动询求才能获得,不过,只要Autoit v2是基于GPL协议的,那么我们仍应视其为开源的(即使它的作者试图“隐藏”源代码或故意使用户不能轻易获得源代码)。
5. Initially, many members of AutoIt (including its author) endorsed, supported, or recommended AutoHotkey to AutoIt version 2 users.
一开始,Autoit的许多成员(包括它的作者在内)都认可、支持AutoHotkey,甚至还向Autoit v2的用户推荐AutoHotkey。
This is why, initially, there was a free flow exchange of information and ideas between the projects.
这也是为什么当时这种在两个项目之间技术信息和创新想法层面上的自由的交流会如此火热的原因
But, when the author and co. decided to go back to developing AutoIt and came out with version 3, it was then that things slowly got hostile. As time went by the author of AutoIt and various other developers of it took issue with AutoHotkey.
然而,自从AutoIt的作者及其团队决定回到项目中继续开发AutoIt并在后来发布AutoIt v3开始,事情开始变得带有敌对的味道了。再后来,AutoIt的作者及其团队成员开始和AutoHotkey争起来了。
6. The exchange of ideas and information between AutoIt and AutoHotkey was not just one direction. Arguably the idea of adding hot key support came first with AutoHotkey and the idea was "copied" by the AutoIt developers.
在AutoIt和AutoHotkey之间的技术交流可不是单向的。起码添加热键支持这个想法可是首先在AutoHotkey中提出(并实现)的,而这个idea则被“复制”到AutoIt中。
Also, a lot of the syntax and ideas used originally by AutoIt came from It. It was a Microsoft project based on WinBatch (another and older automation program).
另外,AutoIt的语法和许多idea都是来自/参考It的。It则是Microsoft的一个基于WinBatch(另一个更古老的自动化程序)的项目。
(参见http://www.microsoft.com/technet/archive/winntas/downloads/it.mspx,yonken注)
|