AutoIt and Developer History

このセクションはAutoItプロジェクトがどのように始まり、どのように多くの開発者を巻き込んでいったのかに興味がある方のためのセクションです。開発者連中が時間のあるときに自分が思うことを追加してくれるでしょう :)

 

Jon

1998年 10月

私はあるイギリスの会社のために自動化されたWindows NT 4のビルドを作るプロジェクトで働いていたんだ。 そのうちアプリケーションの半分くらいでサイレントインストールする機能が必要なうえに、その方法がないことがわかってきたんだ。 しばらくの間、強制的にボタンを押す方法探したよ。見つけたのは自動ビルドでボタンを押すために設計されたWinBatchスクリプトをコンパイルしたMicrosoft ScriptItだった。

ScriptItは動いてくれたけどすごい信頼性が低かった。最悪なことに使うマシンのスピードにすごく影響されるし、キーストロークの間の時間間隔を制御する方法が無かった。 他にも問題を起こす特徴があったな。プログラム実行時に作業ディレクトリを指定できないんだ。スクリプト化したアプリケーションの多くで負荷的な問題を引き起こしてくれたよ。 その上いくつかの機能はNT 5 betaでは動作しなかったんだ(例えばWindows2000とか)。

 

1998年 クリスマス

あれはクリスマスだった。悩みの種から逃げ出すために好きなキーの間隔でキーストロークを送信できるCのプログラムを作ろうって決心したんだ。

 

1999年 1月

AutoItバージョン1を昔のwinfiles.comサイトでリリースしたんだ。(Sendの)文法はScriptItと同じでSend、Run、RunWait、WinWait、WinWaitClose、WinWaitActive、WinHide、WinActivate、WinClose、WinRestore、Sleep、SetKeyDelayの関数を作った。v1.0のヘルプファイルにはこう書いてある:

長所
- とても小さくて40Kbしかありません (ScriptItより600Kbも小さい)。
- 問題が見つかったらアップデートします。
- "公開されている"関数の方がまし。
- アクティブなウィンドウだけでなく非アクティブなウィンドウも待つことができます。
- 変数を使った遅延が使用可能 (ミリ秒単位での定義)。
- キーストローク間の時間を変化させることが可能。
- アプリケーション実行時に作業ディレクトリを指定できます。
- Win98/NT 5.0下でウィンドウを強制的にアクティブ化できます("WinActivate"を使用)

短所
- "[ADLIB]"部分は実装していません。
- スクリプトファイルは正しい形式でなくてはなりません(コマンドのある行ではホワイトスペースを使用できません)。
- WilsonのWinBatchのコマンドは使えません。
(だけど誰も使わないでしょう?)
- 私の使っているコマンド名に従わないといけません。そのせいでスクリプトが少し大きくなる傾向があります。

 

1999年 1月-4月

次のような機能を持つv1.8までは数え切れないほどのバージョンがリリースされた:
- Cool /revealモード
- Goto!
- IfWin...
- Mouseコントロール
- ScriptItのADLIBライクな機能のサポート
- Gosub
- %ENV% 変数のサポート

 

1999年 8月

AutoIt v2 リリース
AutoItXの最初のバージョンが作られた。

 

1999月 9月

AutoIt v2.1 - Aut2Exeの最初のバージョンが作られた。

 

1999月 9月 - 2001年 3月

数え切れないほどのバージョンと多くの関数がとんでもない速さで増えていった。 基本的に誰かに関数を作ってと頼まれたらそれにかかりっきりという感じだったよ。その結果、私たちには全然時間が足りていないって状況だった。

 

2001年 3月

AutoItのソースコードが完全にごちゃごちゃだった。ソースコード全体をC++で書き直したよ。

 

2002年 1月

AutoIt v2.62 - Exe2Autの最初のバージョンが作られた(最悪なことに)。
AutoItDLLの最初のバージョンが作られた。

 

2002年 12月

AutoIt v2.64 - AutoIt v2の最終バージョン。

私独自の圧縮・アーカイブライブラリを書いた後、FileInstall関数を追加した。

 

2003年 1月

2001年から2003年の間は開発自体はとても少なかった。私のやる気が無くなるとこまでプロジェクトは到達してしまったんだな。ソースコードは再びごちゃごちゃになっていた。こういったプロジェクトではみんなが欲しがる機能は先のことも考えずにみんな追加してしまう傾向があるせいだ。AutoIt v2の文法はほんとに恐ろしいものだったよ。

私が貰った希望の半分はちゃんとしたループと式だった - 質問の半分は"Runコマンドでどうやってバックスラッシュを使うんですか"だった。いらいらするよ。

この頃にはLarryの作ったAut2xtraみたいな"アドオン"がたくさんあった。これはAutoItには無いいくつかの関数を使えるようにするものだ(だって私には時間が無かったしそれを追加するやる気もなかった)。

IIRC Larryは開発が進んでいないことにいらいらしているって言ってきた。そして新しいバージョンを書こうって提案してきたんだ。もし新しいバージョンが望まれているならそれはもっと"ちゃんとした"言語にすべきだって決意したよ。私はAutoIt v3のフレームワークの開発を開始した。

前のバージョンは文法についてとても厳格だった。"Command, param1, param2,..."って具合だ。そして複雑な式が書かれている1行を読んで理解できるようになるまで1ヵ月もかかるんだ(本当に何回もググる必要があった)。今になって"わかった"ことだが AutoItの式用のコードを書くのは人生で2番目に大変なことだった(今までで最も大変だったのはAut2Exeで使われている圧縮用のコードをスクラッチから書いたことだ)。

今いる開発者のほとんどはこの後しばらくして手伝いを始めてくれた。誰がいつごろ手伝いを始めてくれたのかは忘れてしまったから彼らがここにそれを書いてくれることを希望するよ。

 

2003年 3月

AutoIt v3の最初のパブリックベータ版バイナリをリリース(あとでたくさん話がある)。

 

2004年 2月

100回ものベータバージョンの後、開発は上手い具合にコントロールされ軌道に乗り、ついにAutoIt v3.0.100がリリースされた。

Jon :)

 

 

Larry

2001年の初めに自分でWinNTの自動化システムを始めたんだ。 そこで前の管理者がいくつかの機能の制御にAutoItスクリプトを使っているのを見つけた。 とりこになったよ。AutoItでコントロールを操作する方法を次々に学んでいった。 他の方法は全部お払い箱にして"全部AutoItでやる"方式に焦点を絞ったんだ。

そのころにはみんなでYahooのAutoItListグループに張り付いていたよ。 僕にはたくさんの自由になる時間があったんで(AutoItのおかげでね)、AutoItListに注意を向けていたんだ。 Jonは僕の熱心さに気づいて、僕がグループの管理/調整をするのを許してくれた。 だけど何年もの間、僕はファイルのセクションをあまり見ていなかったんだ。

2003年に僕はAutoItの限界に気づいて、AutoItで使うためのコマンドラインユーティリティを作るためにC言語を学び始めた (それにはGUIも含まれていた、AutGUI.exeだ)。 それから"次世代"のAutoItを作ろうって皆を脅したんだ。 2日ぐらいでスクリプトパーサーを書いたんだけど、そこで(僕が考えるに)Jonは僕の不器用さと 製品の脆弱さに不安になったんだと思う。それで僕を助け出して、労力を割いてくれる決心をしたんだ。

僕が思うにJonと僕はいくらか似たところがあるんだと思う。 それで彼は僕をAutoItScriptフォーラムの最初の管理者に任命してくれたんだ。 僕の怠けっぷりと他の人たちの献身ぶりを見て後で他の人にも権限を与え始めたけどね。

AutoItコミュニティーに対して僕が感じる不満の一つは、これはフリーウェア全般にも言えることなんじゃないかと 思うんだけど、費やした努力と時間に対して本当には感謝されることがないってことだ。 この仕事では本当にプライドだけで自分を奮い立たせなきゃならない。

Lar.

 

 

Jos

AutoItはver 2から使ってる。
新しい方のフォーラムに移る直前くらいに古い方のフォーラムでよく活動するようになった。
次のことで手伝いを申し出たんだ:
- ヘルプファイル作成の自動化。
- Crimsom/TextPad/SciTEみたいなエディタで関数やキーワードごとのAutoIt3ヘルプファイルを開く機能(F1)の作成。

たくさんのUDF'sの作成
AU3を学ぶためにAutoIt3でTidyを書いた。これは今ではBCXでCになっている。もっと高速にしたかったから。
SciTE用のAutoIt3字句解析を書いてこれはSciTE v 1.60に含まれている。
他の人や自分で開発したいいツールを一つのインストーラにまとめたSciTE4AutoIt3インストーラパッケージを作った。それからそれ用のヘルプファイルも作った。
AutoIt3の製品版とベータ版の両方に簡単にアクセスできるように、また出力プログラムのリソース情報を更新するためにコンパイラディレクティブを使えるようにAutoIt3Wrapperを書いた。
SciTEの人気が出てきたときにSciTE4AutoIt3用のウェブサイトを始めた。

馬鹿みたいに(そう言うしかないよ)たくさんのスクリプトキディがフォーラムに襲いかかってきた時に管理者をやった。 Jonには全然時間が無かったし、Larryは違うタイムゾーンに住んでたんだ。

Obfuscatorを書いた。これはTidyのソースコードを元にしていて、スクリプトを読みにくくするためのものだ。

Jos :)

 

 

Valik

ずっと昔にディアブロIIのボットを見つけたんだ。 なんかの理由で(たぶん何かを修正しようとしたんだ)それがAutoItで書かれているのを知ってサイトに行ってプログラムを手に入れた。 Jonがv3を始めたころに俺はC++の勉強を始めた。v3のベータがリリースされると俺は自分の古いスクリプトをv3に移植し始めたんだ。 次第に問題を見つけたり、欲しい機能があることがわかかったりしてきた。その頃にはまだAutoItのソースコードが公開されていたし俺はC++の勉強の最中だったから作業を手伝うのはいい考えに思えた。 管理者になったことについてはJdeBと同じ。フォーラムの馬鹿馬鹿しさにはうんざりしてきてるよ。

 

Jpm

いつAutoItを見つけたのかは憶えてない。だけど本当にシンプルでパワフルなスクリプト言語だった。 自分のWindows Betaテストでの再インストール処理の自動化ではずいぶん使ったよ。毎回同じ環境(システムとユーザー)だったから。 おかげで他のことをしている間にインストールできるようになった。200Mhzマシンではとても処理が遅かったよ...。

2003の3月までにはフランスの人々がV2版のフランス語翻訳をするのを手伝うことに決めていた。 その頃はまだV3のソースコードが公開されていたからCとWindowsAPIについてもっと詳しく学ぼうと決めたんだ。 自分のスクリプトを変換するためににV2からV3へのコンバータを書いた。今ではあまり便利なものではないように見えるけど少なくとも僕のCコードの学習には成果があった。

いくつかのWindowsのバージョンとOS言語で補助用自動化の改善の一部に参加した。 高品質のベータ版を出荷するための内部プロセスを手助けするためにテスト用AuotIt非回帰スイートを作った。 私はGUIを作るのが好きなんだ。Larryが彼のAU3GUIを始めたとき、V3.0版に統合しようって決めたんだ。

当時はJonがAutoIt以外のことで忙しくてバグレポートやベータ版の面倒を私が見たんだ。 バグレポートのフォーラム管理とバグの特定/修正の統合には全力を尽くしたよ。 愛していたし、私は実装ができたからね...

JP ;)