ログファイル解析プログラムを自作したいと思っています。

25MB(30万行程度)前後のログファイルが2年分(700個以上)あります。

私がある程度使える言語はPHPとVBです。
VBでちまちま作ろうかと思ったんですが、勉強と趣味を兼ねてJavaかCか未経験の言語を使おうと思っています。
上記を踏まえた上でオススメの言語とその理由を教えてください。

【ポイント】
実行速度の速さ
習得のしやすさ
その言語の将来性
動作環境はXP

よろしくお願いします。

回答の条件
  • 1人1回まで
  • 登録:2007/12/10 22:31:47
  • 終了:2007/12/15 21:16:14

回答(7件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012007/12/10 22:55:46

ポイント20pt

それだけのボリュームがあるのならばテキストのまま処理するのではなく

データベースに読み込んだほうが高速処理できるでしょう。


Accessは1ファイル2GBまでしか扱えないので25MBx700個ものデータを扱うのは厄介だし

ORACLE、SQLServerなどのExpress Editionではデータベースサイズに上限があるので

25MBx700個=17.5GBもの容量を扱えるものとなればMySQLやPostgreSQLになるでしょうか。


フロントエンドにはAccessなどを使う手もありますが

習得のしやすさと親和性から考えるとphpが手っ取り早いでしょう。

開発環境はXAMPPがあるので一発ですし。。。

(JAVAやCによる開発を止める気はありませんが

新たに得られる技術は差ほど多くはありません)

id:table

回答ありがとうございます。

Accessでとも思ったんですが、全部読み込むのめんどくさいと思ってやめました。

PHPやVBで適当に作ることも考えたんですが、勉強じゃなく作業になりそうなんでもう一つやる気がでません。

質問の書き方が悪かったんですが、勉強と趣味を兼ねて新たな言語をというのが一番にあります。

DBを利用することは現在考えておりません。

2007/12/10 23:26:00
id:shizuryu No.2

shizuryu回答回数3ベストアンサー獲得回数02007/12/11 00:36:47

ポイント20pt

無難にJavaでどうでしょうか。

資料(書籍、インターネット)もかなりの数がありますし、実効速度も今は昔ほど遅くないですし。

これからの勉強にも最適かと思われます。

あとは実効速度はわからないのですがRubyという言語も資料がそろっていていいかと思われます。

なにせ日本人が開発した言語なので英語の文献などを読む必要がありません。

id:table

Javaですかー

ありがとうございます。

2007/12/11 09:54:34
id:popattack No.3

popattack回答回数214ベストアンサー獲得回数42007/12/11 02:30:19

ポイント20pt

Rubyはどうですか。実行速度はそこまで速くないですが習得はしやすいと思います。将来性は開発者が日本人だし人気ある言語なので今後利用者がさらに伸びると思います。XPでも動作します。テキスト処理にもすぐれています。

http://www.ruby-lang.org/ja/

id:table

Rubyは扱いやすいとはよく目にしますが、CもJavaも未経験でRubyってありですかね

2007/12/11 09:56:57
id:garyo No.4

garyo回答回数1782ベストアンサー獲得回数962007/12/11 05:15:42

ポイント20pt

Rubyをお勧めします。

実行速度の速さはないですが、

習得のしやすさと

その言語の将来性はお勧めです。

動作環境はXPは問題ありません。

Perl譲りの文字列処理がお勧めです。

http://ll.jus.or.jp/lls2003/document/p3-2-ruby.pdf

http://www.pen-chan.jp/~tdiary/pen-chan/20070625.html

id:table

習得のしやすさというのは魅力を感じますが、上のコメントでも書いたようにCやJavaも未経験なんですよね。

最近CもJavaも使えないのにプログラマって名乗ることに引け目を感じていたりもします。

2007/12/11 10:05:08
id:showyou No.5

showyou回答回数96ベストアンサー獲得回数102007/12/11 11:27:08

ポイント20pt

JavaかCか、ってことならJavaかと。

C言語は文字列を扱う関数があまりにも少ないです。

http://homepage1.nifty.com/toshio-k/prog/c/string.html

個人的にはpythonも面白いかな、って思います。

http://www.f7.ems.okayama-u.ac.jp/~yan/python/

id:table

Javaですかー

ありがとうございます

2007/12/11 12:04:11
id:KUROX No.6

KUROX回答回数3542ベストアンサー獲得回数1402007/12/11 13:24:25

ポイント20pt

文面だけみると、

「Java、正規表現」で作成でしょうか?

「PHP 正規表現」「Ruby 正規表現」という感じになると思うので、

どの言語で組んでもそう違わないと思います。

------------

Cで組んでも良いですが、正規表現ライブラリとか使い出したら

Cの勉強にはならないと思います。

id:table

ありがとうございます。

ログファイル溜まってるから新しい言語を覚えがてら処理してこうかなーくらいに考えています。

目的があった方がモチベーションが上がるんで、どうしてもログの統計を取りたいという訳ではありません。

2007/12/11 13:44:53
id:ardarim No.7

ardarim回答回数892ベストアンサー獲得回数1422007/12/12 00:41:47

ポイント20pt

シェルスクリプト(WSH; Windows Script Host)ではどうでしょうか。

JScript(≒JavaScript)で記述することができます。(またはVBScriptも可)

WSHを始めよう - @IT


文法はCやJavaに近いです。標準で正規表現もサポートしていますし、スクリプト言語らしく文字列操作も比較的直感的でやりやすい方だと思います。

Windowsの管理系にも広く応用が利くので覚えておいて損はないかと。

id:table

ありがとうございます

WSHですかー

VBScriptで使い捨ての簡単なプログラムはたまに作ってます

2007/12/13 10:28:16
  • id:table
    ※補足※

    言語はJavaやC以外でもOKです。
    この言語は他に比べてココが優れているからオススメしますというようなコメントをいただけるとうれしいです。
  • id:takabow
    > 私がある程度使える言語はPHPとVB
    ログ解析だと文字列処理と正規表現を多用するので,PHPが使えるのでしたら正直なところPHPが無難だと思います。
    JavaならそのあたりのAPIも割とそろっているのでありだとは思いますが,Cは結構めんどいですよ。

    > 実行速度の速さ
    > 習得のしやすさ
    > その言語の将来性
    > 動作環境はXP
    CとJavaは勉強して損はないので、やっぱJavaが妥当なんじゃないでしょうか?
    単にログ処理ってことだけを考えるなら、Perl,Ruby,PHP,シェルスクリプトあたりをお勧めします。
  • id:table
    takabow さん
    わざわざコメント欄にありがとうございます。
     
    私は新しく習得する時にはめんどいことはむしろ喜びだと感じます。

    takabow さんがCよりJavaを妥当だと思う理由を回答欄でも結構なんで教えてください。
  • id:garyo
    私は組み込み系なので本業はC/C++プログラマなのですが、一度RubyにふれるとCやJavaには戻れないですね。
    Rubyを一度使ってみると分かると思います。


    JavaはJRuby
    http://www.thinkit.co.jp/free/article/0709/4/1/
    .NETはRuby.NETやIronRuby
    http://japan.zdnet.com/news/devsys/story/0,2000056182,20361666,00.htm
    とそのうちRubyで書けば各プラットフォームで動くようになるでしょう。

    良く、C->C++->Java->…とやっていくと理解が深まるという話を聞きますが、
    言語に関しては「後発有利」です。
    私のようにアセンブラの頃からやってるプログラマは新しい言語が出るたびにまた一から覚えなければ、行けないのに対して、新しくプログラマになった人は最初から最新の言語を学ぶことができます。
    例えばCでのポインターを使ったリスト表現などRubyではまったくの無駄な知識です。
    メモリ解放漏れを防ぐためのノウハウもまたRubyでは無駄な知識です。
    ソフトウエア開発においては常に新しい技術が出てくるので、今からCを勉強するのは「先行者利益」を捨てているような気がします。
    それよりは(最新技術が日々生まれる)PHPを極めた方がプログラマらしいと思いますよ。
  • id:garyo
    >最近CもJavaも使えないのにプログラマって名乗ることに引け目を感じていたりもします。
    それは以下のことでしょうか;-)


    プログラミング言語ヒエラルキー
    http://www.geekpage.jp/blog/?id=2006/12/13
  • id:table
    garyo さん
    コメントまでいただきありがとうございます。
     
    「先行者利益」と言われるとなるほどと思います。
    ただ現在の自分の能力を考えると、
    軽自動車に軽油を入れたニュースを笑えないのでは?と思っていたりもします。
     
    プログラミング言語ヒエラルキー見ました。
    ちょっとニヤッとしました。
  • id:garyo
    将来性を見るならこのサイトも面白いかも
    http://www.tiobe.com/tpci.htm


    グラフを見ればJava,C,C++が下がって行き
    http://www.tiobe.com/tiobe_index/Java.html (Java)
    http://www.tiobe.com/tiobe_index/C.html (C)
    http://www.tiobe.com/tiobe_index/C__.html (C++)


    Rubyが上がって行くのが読み取れる。
    http://www.tiobe.com/tiobe_index/Ruby.html (Ruby)
  • id:tobeoscontinue
    >実行速度の速さ
    で見るならcですが、phpを書いているなら、書き方にあまり違いはないので
    >勉強と趣味を兼ねて新たな言語
    という面では新たな収穫はすくないかと。

    課題では文字処理が主のように思うのでJavaでは文字処理がやっかい(主観:char,String,StringBufferの関係)ですのでおすすめしません。(文字処理が主じゃなけりゃいいでしょうけど)

    Rubyをお薦めします。Ruby流の書き方はちょっとしたカルチヤーショックでした。
  • id:table
    みなさんありがとうございました。
     
    仕事が忙しくなりそうなんで、年末年始の休みにでもJavaかRubyに手を出そうと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません