質問: 自動化ってなんなんでしょうか? くそ初心者のくそ質問ですみません。 bashやpythonについて調べていて(まったく使ったことはない)、「自動化」という言葉が目につきました。 「オンラインゲームでひたすら雑魚キャラを狩り続ける」ような自動化でないことはなんとなく分かるのですが、具体的にどんなことを自動化できるのでしょうか? みなさんはどのようなプログラムまたは言語で、どのような作業を自動化しているんですか? ※タグは自分が使う言語も含めました。 (追記) 実際に見たのはこのサイトです。 1. やる気を高めよう — Python 2.7.x ドキュメント
回答: そもそもプログラムはコンピュータが実行するものだから、 プログラミング自体が広義の「自動化」だと個人的には考えています。 しかし、一般的にプログラミングに関する領域で 「自動化」と呼ばれているものは、 今まで人間が手作業で行なっていたことを コンピュータに行なわせるものが多いです。 たとえば、よく言われるのがテストの自動化。 xUnitなどのツールを使って、テストの実行を自動化します。 繰り返しやる場合、手動より早く済みます。 ほかには、ビルドや静的解析、ドキュメント生成、 Webクローラーやブラウザの操作、 ゲームも含めたアプリのマクロなどが 自動化というくくりで呼ばれることが多いです。 ただし、自動化にもコストはかかる (たとえれば自動販売機を置くのもコストはかかる)ので、 自動化すれば必ず成功するとは限らず、判断が必要です。 自動化はメジャーな言語なら問題なく書けると思いますが、 自動化スクリプトを書くのに特に向く言語というのもあります。 昔はWSH(JScript)やAutoHotKeyやUWSCなどを少し使ってましたが、 PowerShellが最近のお気に入りです。 これはシェルスクリプトなので、OS寄りの機能を簡単に書け、 (Windowsの)自動化を書くのに向いてます。 といってもけっきょく、Rubyで一番多く書いてます。 主にテキスト処理を自動化しています。 そこには機械学習や自然言語処理につながる部分もありますが、 かんたんな部分だけご紹介すれば、文字列の置換やテキスト整形ですね。 いくらショートカットを駆使したところで機械には勝てないので、 繰り返し使うのであれば効率的な方法だと考えています。