AutoHotkey 与 AutoIt 的恩恩怨怨

对AutoHotkey 和 AutoIt 都感兴趣的不妨看看。



首先有必要让大家了解一点: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.autoitscript.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 script compiler.

此外,AutoHotkey所带的ahk2exe实际上是Jon(AutoIt的主作者)写的脚本编译器的修改版。


“In addition, it includes AutoScriptWriter
(the macro recorder) and Window Spy, both of which were written by
Larry Keys. ”
包括AutoScriptWriter和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 ScriptIt. ScriptIt was a Microsoft
project based on WinBatch (another and older automation
program).
另外,AutoIt的语法和许多idea都是来自/参考ScriptIt的。ScriptIt则是Microsoft的一个基于WinBatch(另一个更古老的自动化程序)的项目。


(参见http://www.microsoft.com/technet/archive/winntas/downloads/scriptit.mspx,yonken注)




First off, AutoHotkey was out before I ever
saw any version of AutoIt version 3 come out.


首先,在AutoHotkey发布之前我并未看过任何所谓的AutoIt
v3出现过。



Back then, the AutoIt author allowed people
access to AutoIt's source code and it was not "closed source" as it
is now.


那时,AutoIt
的作者允许大家获得AutoIt的源代码,而不是像现在这样“闭源”(相对“开源”而言)。




Even if AutoIt3's source code was out before
AutoHotkey, it would have to be given to Chris by AutoIt's author
or have been available for download.


即使AutoIt
v3的源代码在AutoHotkey发布之前就有了,那也肯定是AutoIt的作者自己把源代码给了Chris,或者当时已提供源代码/工程文件的下载。




(以上内容参见http://www.autohotkey.com/forum/topic7630.html&postdays=0&postorder=asc&highlight=autoit&start=15




那Chris真的是从AutoIt的作者那里得到的源代码吗?我们可以从AutoIt的论坛上得到论证(发帖者是Holger,AutoIt的开发成员之一):


Dave, Jon told me that he gaves the
source-code to Chris (the Re-Author of AHK) so I think this should
be no
problem.
Dave,Jon告诉我说是他自己把源代码给了Chris的,所以我觉得那样做(指在AutoHotkey中使用AutoIt的部分代码)并没什么问题。




(参见http://www.autoitscript.com/forum/index.php?showtopic=20897&hl=autohotkey




最后我们再来看看Chris的总结性发言:

Jon did not want a keyboard or mouse hook in
AutoIt because it was not compatible with Win9x and also might
increase the chances that AutoIt would be flagged as a virus by
various virus detectors. In addition, there was initially little
interest by the AutoIt developers in having hotkeys in
AutoIt.


当时Jon并不打算在AutoIt中使用鼠标或键盘钩子,因为那和Win9x不兼容,而且还可能会增加AutoIt被防毒软件误报为病毒的风险。另外,AutoIt的开发者们也似乎对增加热键支持“不太感冒”。




接着Chris还列出了AutoHotkey的timeline:

April 21, 2003: Work began on AutoHotkey
because I loved AutoIt v2 but also loved hotkeys and was
disappointed with the OS's built-in hotkey
support.
2003-04-21:开始动工;



July 15, 2003: AutoIt v3 beta development is
getting into high gear: A new version has just been released that
supports user defined functions
(UDFs).
2003-07-15:AutoIt v3
的开发有了新的进展:新发布了一个支持UDF的版本



Sept 6, 2003: I posted a long proposal to the
AutoIt mailing list entitled "Integration of hotkey (shortcut key)
support into AutoIt". I expressed my interest in becoming an AutoIt
developer who would focus on hotkey support. I also asked for
opinions about how difficult it would be to integrate the
AutoHotkey concepts and source code with AutoIt, and mentioned the
benefits of having a unified product (synergy).



I didn't get much response to my post, and overall the impression
was that Jon and most of the other AutoIt developers were not
interested in hotkeys at that time. Shortly thereafter, I announced
my intent to release a separate product that would focus on hotkey
support and AutoIt v2
compatibility.
2003-09-06:给AutoIt开发小组发邮件,提议在AutoIt中增加热键支持,并提出了成为AutoIt开发成员以实现该部分功能的请求。我也表达过让两者(AutoHotkey和AutoIt)统一成一个产品的想法。




可惜,我没有得到回应,这让我感觉到Jon和大多数的AutoIt开发成员都对热键不感兴趣。随后,我宣布将发布一个专注于热键支持、提供对AutoIt
v2兼容的独立的产品。



Nov 10, 2003: First public beta of
AutoHotkey.
2003-11-10:发布AutoHotkey的第一个beta版




Jan 8, 2004: Hotkey support is added to
AutoIt v3 (3.0.85 beta). The first non-beta version of AutoIt v3
would be released about 7 weeks later.


2004-01-08:AutoIt v3 (3.0.85
beta)添加热键支持。第一个非beta版的AutoIt v3在7周之后发布。



(参见http://www.autohotkey.com/forum/viewtopic.php?p=20176#20176

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值