- ベストアンサー
自動化ツールを作るためのプログラミング言語は?
- プログラミング言語によって得意不得意があるということを知りました。自動化ツールを作るためにはどの言語が適しているのでしょうか?
- 自分の作りたいツールは、ウェブ上の情報を自動で取得してエクセルに入力するものです。どのプログラミング言語が適しているのでしょうか?
- ロボットマウスや自動化ツールは、どのプログラミング言語で作られているのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
C++/Java/Perl/Python/VBAで分析してみました。 (Rubyに関しては、その言語文化的背景から、Windowsとの親和性において、 PerlやPythonよりも低いと判断したので除外しています) ・ウェブ上にあるURL ⇒ネット上に簡易にアクセス出切るか?そのソースコードは短く、かつ、その記述のサンプルがネットに豊富か。 Perl/VBA/C#/Python ・記事の内容、価格等書かれているものを、・・・○○のカテゴリの引っ張ってきたい記事の部分を選んだ ⇒様々なエンコーディングの文字列をどれほどパースしやすいか、エンコード・デコードでソースが汚れにくいか? Python/Perl/C# ・エクセルに引っ張ってデータ入力を自動でさせたいです。 ⇒MS-製品との直接的な親和性、もしくはCOM経由等のアクセスのコード的な容易性。 VBA/C#/Perl/Python ・エクセルを自動で開いて、・・・その後自動でブラウザを開いて ⇒サブプロセスを極めて簡易に扱える どの言語も余り変わらず。あえて言えばPerlがコード記述が極端に簡単過ぎる。 ・「○○のカテゴリを選んでください」等のメッセージを出して ⇒Win-32の簡易なGUI系のAPIを極めて簡易に呼び出せる Javaがやや扱いにくい。他はどの言語も余り変わらず。 以上を踏まえて以下。 ■現在、peguuleさん、が作りたいと思っているアプリケーションの性質に絞るなら!! Perl,Python,C#,VBAのどれかでしょう。 逆に、最も適さないのは、C++とJavaです。 └(書籍やWEBに掲載される学習内容と、目的のコードへのマッチ度が低い) この4つの中で将来性と汎用性、学習した際にプログラム的センスが偏らない言語は・・・ C#とPytnonです。 C#はWindows上のアプリケーション作成に圧倒的に向いており、ライブラリも整頓されています。 その文法も最も現代で整理されている言語の1つです。 しかし、Windows以外は事実上は使い物にならないでしょう。 Pythonはグルー(モノの実行をくっつける系)向きです。 Python3にて、整備され、文法的にも現代的かつ美しい言語の1つです。 メジャーなOSならまず使えますし、Webサイト作成のCGI言語としても使えます。 しかし、世界で最もメジャーなスクリプト言語ですが、日本語での文献がやや少ないスクリプトです。 又、完成した立派なアプリを組むには(標準のexe化の作法が提供されてないなどもあり)不向きです。 Perlは現在、Perl5、Perl6に分かれ、言語的に混迷期にありますし、 VBAは性質上、サンプルがExcel等のアプリケーション操作に偏ってしまいます。 ■本格的にプログラムを学ぶ気構えを持っているならば!! やはり、C/C++がお勧めです。 しかし、peguuleさんが、現在プログラム素人であること、 作りたいと思っているモノに対するC/C++の適性が低いことの2点を考慮すると、 学習内容と自分が目指す姿が線で繋がる感覚が得にくく、 学習途中で挫折する可能性が高いと個人的には推測します。 ■ボットマウス等の自動化のツールが何の言語でできているか 「他者に自動化を提供するためのツール」は、通常C++が最も利用されます。 しかし、本人がモノを自動化するために書く言語としてC++を選択することはまれです。 通常は、スクリプト言語か、それに似た感覚で書ける言語が使われます。 これは全く矛盾していません。 「他者に自動化を提供するためのツール」とは、スクリプト言語でいうところのインタプリタのことであり、 これらは通常C/C++で作られるからです。 以上ご参考までに。
その他の回答 (3)
- sholmes
- ベストアンサー率81% (89/109)
<回答1 自動化ツール作成> 用途がはっきり決まっているのであれば、選べる物も絞られそうですね。 基本的に、OSに近い低レイヤを扱おうとするとどうしてもC言語を避けて通れなかったりします。 Linux系 => C MacOS系 => ObjectiveC Windows系=> C++ / C# ですが、今回のお話だとあくまで特定アプリケーションの動きをくっつけるような作業をメインにお考えだと思います。 こういう用途だとスクリプト言語で十分かもしれません。 Windowsとの親和性を考えると、次のような候補が挙げられると思います。 記法等を調べた後、自分が習得しやすいと思うものから選んでみてください とにかくサンプルが多いもの(=>言語:Basic系) ・VisualBasic ・VBA .NET Framework というライブラリと相性がよく、凝ったものが割と簡単に実現でき・・・るといいなぁ な物 ・PowerShell ・IronRuby(言語:Ruby) ・IronPython(言語:Python) ただ、どの言語を選ぶにせよいきなり目的の物を作ろうとすると挫折してしまう可能性も高い気がします。 一つ一つのステップに動作を分割して、コマメに試しながらチャレンジしてみてください <回答2 ロボットマウス> ロボットマウスくんという、こちらのソフトでしょうか? http://www.diversion.co.jp/robomouse/ exeを少し覗いてみた限り、Visual C++あたりで開発されたのかと思います。
お礼
こんなに丁寧に回答してくださって本当にありがとうございます!!m(_ _)m ロボットマウスくんはURLのソフトです! 教えてくださってありがとうございます!! C++、C#、VisualBasic、VBAあたりを本を買ってとりあえず読んでみようと思います! しかし、調べてみると一つのボタンを作って、そのボタンに自分のさせたいことをさせるだけでも結構難しいそうなんですね^^; ロボットマウスくんみたいに、パズルみたいにお手軽にできたらいいんですけど。。 でも、やりたいことがあるので頑張ってみます!
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
C#でいいんではないでしょうか。 パーサーのライブラリもあるようですし、Excelとの親和性も高いし。 http://d.hatena.ne.jp/kahki/20080829/p2 提供元にWebAPIがあるなら、パーサーはいらないけど、Excelとの 親和性を考慮した上でHTTP通信をある程度容易に行え、かつクライアント 単独で動作可能なアプリケーションを作成可能な言語となると、 どの道、MS製品が一番楽でしょう。 インターフェースがCLI、GUIのいずれにしても、わざわざJavaやRubyなどを 入れてごりごりする必要ありませんね。
お礼
回答ありがとうございます! C#ですか!基本的にC言語は必要そうですね^^; パーサー等自分にはよくわからないのですが、色々調べて勉強します!
だいたいソフトはC++あたりが多いです。 が質問者様の言っている内容なら、EXCEL VBAで頑張って組めば何とかなりそうなレベルです。
お礼
こんなに早い回答ありがとうございます! C++が多いんですか!VBAと合わせて調べてみます^^
お礼
ここまで丁寧に書いてくれるなんて・・・ 本当に感激です>< 自分でも色々調べていたら、どうも自分のやりことはwebから情報を取得するスクレイピング、スパイダリングというものをできるようになったらよさそうでした。 また、webAPIというものがサイトから提供されていれば、楽になりそうというところまでなんとなくわかりました。 Spidering hacks―ウェブ情報ラクラク取得テクニック101選というものを見つけまして、これはPerlという言語を中心に書かれているようなので、Perlの入門からやっていきたいと思います。 また、kokucho81の回答を読んで、C#、Python、C/C++も今後必要になると思いますので、一通り本を買って読んでいこうと思います。 kokucho81のおかげで言語の特徴が素人ながらイメージすることができ、非常に助かりました。本当にありがとうございました!!!