- ベストアンサー
第二外国語はどれにしよう。。。
お世話になります。 今までJava言語を勉強し、1段落ついたと自分では思っています。(別に極めたわけじゃないです。) main関数(public static void main(String args[]))くらいは参考書みないでも書けるレベルです。 そこで第二外国語としてなにか新しい言語を勉強しようと思っているのですが、なにがお勧めでしょうか? 自分は ・理学系大学院卒(情報系ではないです。コンピュータは主にワープロ&表計算) ・会社の新人研修でC言語を2週間(当然理解できませんでした。) ・仕事で初めてJava言語を使いました。職歴は2年半 希望としては ・環境はフリー ・環境構築は楽 ・Windowsでできること。Cygwinを使うのはOK このままJava言語一筋でも当分仕事にはこまらなそうなのですが、複数の言語をマスターすることでその根底にある芯の部分をつかみたいと思います。 ネットでパイソンなるものを見つけましたが、 他にもお勧めはあるのかなぁと思い質問しました。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは、chi-kon さん。 こちらこそ丁寧なお礼、どうもありがとうございます。 回答する方もとっても励みになります~。m(__)m >もし各言語の使い手はこう呼ぶというのをご存知でしたら >教えてください!! まずは素直な方から。 Python→Pythonian(パイソニアン) Ruby→Rubyist(ルビイスト) 「Pythonian」は本来「Monty Python (Flying Circus)」愛好者のことで、 Guido さんがモンティ・パイソンのファンであることがうかがえます。 (私は「Mr Bean」の方が好きだけど) ハッカー(達人プログラマ)はモンティ・パイソン好きが多く、 彼らの習俗にもモンティ・パイソン文化が染みついています。 「SPAM(迷惑メール)」もモンティ・パイソンのギャグに由来しています。 Ruby の方は「Ruby hacker」というのもあります。 こちらはまつもとさん以下 Ruby のソースレベルでゴリゴリ改良したり 大規模なスクリプトをバリバリ書いてる人たちで、私には縁がありません。 また「Rubyist」になるにも条件があって、ただ利用しているだけではなれません。 条件は「Ruby に対して単なるお客さん以上の気持ちを持っている」こと。 ここでこうやって宣伝してる私にも Rubyist を名乗る資格はあるかなぁ。 これに該当しない人は単に「Ruby user」なのでしょうか。 一方、Perl の使い手はちょっと変わっていて、 「Perl Monger(パール・モンガー)」が正式です。 「pearl monger(真珠売り)」との掛け言葉でしょうが、「monger」には 「つまらないことに夢中になる人」の意味もあってしゃれがきついですね。 「pearl monger」を検索したら、スペリング修正候補で 「"perl monger" じゃないの?」と聞かれました。 Google は Perl Monger を知っている! 「Perler」もけっこう使われていますね。 そういえば「UNIX Magazine」に歌代和正さんが昔書いていた 「Little Perl Parlor」という連載もありましたっけ。 閑話休題。 Java と Python とでオブジェクト指向の捉え方がどのように異なるか、 Java のコードを Python スクリプトに書き直してみると面白いです。 私は今 Ruby でそれをやっています。 Python の参考書は以下のようなものが出ています。 http://www.oreilly.co.jp/BOOK/pythonp/ http://www.oreilly.co.jp/BOOK/python/ http://bookshelves.at.infoseek.co.jp/Html/script_language.html#Python ・他の言語について COBOL のこともおっしゃっていたので、OpenCOBOL についてもご報告します。 OpenCOBOL は西田圭介さんらが開発しているフリーの COBOL で、 現在は SourceForge が開発の舞台になっています。 ちなみに、西田さんと Ruby のまつもとさんはかつてネットワーク 応用通信研究所にいたときの同僚だったそうです。世間は狭いですね。 http://www12.ocn.ne.jp/~peg/ http://www.coboler.com/ http://www.ae.wakwak.com/~minen/cobol/index.htm OpenCOBOL を Windows で動かすには、Cygwin またはMinGW 環境をセットアップする必要があります。 MinGW(Minimalist GNU for Windows)とは Cygwin 同様 Windows 上に GNU 環境を構築するものですが、コンパイラなど最小限のもののみ インストールされ、ランタイムは可能な限り MS のものを使います。 http://hp.vector.co.jp/authors/VA028002/mingw/ http://www.coboler.com/mingw01.htm http://members8.tsukaeru.net/pegstyle/opencob.html 有償でエディタ込みの統合開発環境も手に入るようです。 http://b2c-1.rocketbeach.com/~bitwalk/product_0012.html http://www.ae.wakwak.com/~minen/cobol/win_index.htm また、マシンパワーとメモリが有り余っている今では 古くて新しい言語 Lisp も息を吹き返しているという噂です。 Franz Lisp の顧客は C++ を圧倒するほどの高い生産性を享受し、 時間とお金を大いに節約しているんだとか。 「bit」には Lisp の話がよく載っていたんですが、潰れちゃいましたね…。 (ああ、本職のプログラマでもないのに何でこんなこと知ってんだろ。 言語ミーハーな私) 後は下の方のおっしゃるように Java を究める方向に進むのもまたよし。 「日経ソフトウェア」の9月号では Perl と Ruby を対比させて かゆい所に手が届くスクリプト言語のポテンシャルを見せつけていました。 残念ながら Python のコード例はありませんでしたけれど。 Python は、このサイトでは名前が出るだけで まだスクリプトの組み方を尋ねる質問が立てられたことはないと思います。 でも将来 Python の普及が進んだら、 chi-kon さんがパイソニアンとしてお答えになるのでしょうか。 その時を楽しみに、健闘を祈っております。
その他の回答 (3)
- dietnma2
- ベストアンサー率36% (7/19)
XMLをやるのはどうでしょうか。 XMLはjavaと仲良しですよね。 DOM、SAX、Digester(これかなり便利です!)など、 APIもたくさんありますし。 XMLは、XSLTというXML変換言語があって、 いろいろなプログラミングが可能です。 XSLTは、XMLで記述されます。 Tomcatの設定や、Strutsの設定なんかも全部XML なので、集中的にやってみるのもイイと思います。 XMLは、パイソン(フェイトンやと思ってました)や、 .NET、perlなんかにもAPIがあるので、 XML繋がりでいろいろな言語をやってみると、 イイかもしれません。 私は、言語はCやらVBやらperlやらjavaやらと、 いろいろとちょこちょこやっております。 記憶力がわるいので、だいたいコピペの 技術を磨くって感じですが・・・・ 参考になれば嬉しいです。
お礼
忘れていました、XML。。。 そうでした、実はこれも勉強しておかなあかんですね。 自分のなかでXMLはプログラミング言語という認識がなかったので思いっきり頭からすっとんでいました。 ありがとう御座いました。 大事なところを忘れてしまうところでした。
- nightowl
- ベストアンサー率44% (490/1101)
こんにちは。最初カテゴリ違いかな?と勘違いしてしまいましたが、 なかなか粋なタイトルをおつけになりましたね(^^ さて、今まで話題に上った Java や C/C++, Delphi などは 「コンパイラ言語」に属するのに対し、「Python(パイソン)」などは 「インタプリタ言語」に属します。 (実際にはそう簡単に割り切れるものでもないのですが……後述します) インタプリタ言語はソースコードがコンパイラ言語に比べ短い性質を持ちます。 ソースコードを「脚本(スクリプト)」に見立て、解釈するプログラム(インタプリタ)に 脚本通り演じてもらうという意味で一般に「スクリプト言語」と呼ばれます。 この分野で現在最有力なのは「Perl(パール)」です。このサイトにも 独立したカテゴリがありますね。それだけ使用人口が多いことの現れです。 Perl は CGI のための言語としてより広く知られていますが、 単独でもありとあらゆる仕事がこなせます。モジュールも完備しており、 現在最も強力なスクリプト言語であることは確かです。 Perl は読み書きできた方がいいですね。 ただし、率直に言って Perl の仕様は汚いです。 Perl5 からはオブジェクト指向の機能が増設されましたが、 Perl でオブジェクト指向を始めようというのは無謀です。 以上 Perl にはこうした問題がありますので、 そのポストを狙うスクリプト言語として、 前述の「Python」と「Ruby(ルビー)」が名乗りを上げました。 Python はオランダの Guido van Rossum さん、また Ruby は 日本のまつもとゆきひろさんを中心にそれぞれ精力的な開発が行われています。 余談ですが、Ruby は初めて世界中で使われるようになった国産の言語です。 両者とも「本格的なオブジェクト指向」を売り物にしているのは同じですが、 スタイルはそれぞれ異なっており、Python はファイル単位のモジュール化と インデントによって制御構造が決められることが特徴です。 対する Ruby はオブジェクト指向を徹底して追求しており、 あらゆるものをオブジェクトとして統一した扱いができるのが特徴です。 国産だから日本語が意識せずに使えるのも当然ですね。 私は Ruby を使っていますが(ここでも何回か Ruby の問題に答えてます)、 組み込みの機能だけでも十分強力だし、 すっきりとした書き方ができるので気に入っています。 しかしながら、あなたがどちらを選ぶべきかは好みの問題としか言いようがありません。 実際に両方に触れて肌に合う方をお選びください。 (と言わないと宗教戦争になっちゃうので(^^; ユーザの間では激しい論争もありますが、Perl の作者 Larry Wall さんと Guido さん、まつもとさんはライバル同士ではあっても仲良しなのです) 利用できるライブラリの豊富さでは先行する Python がはるかに優れています。 Python は Java のようにバイトコードコンパイルもできるので、 コンパイル済みのスクリプトは高速に実行できます。 もともとプラットフォーム独立を念頭に開発されてきたので、 Windows や Mac OS でもあまりストレスを感じないでしょう。 これに対し、参考書は Ruby の方がずっと多く、選り取りみどりです。 今日本で最も熱い言語といっても過言ではありません。 出版界にもそれだけの勢いがあります。 C などで拡張ライブラリを作るのも容易です。 中でもネット方面のライブラリは充実しています。 元が UNIX ベースなので少し Windows では弱いかもしれません。 (でも私は Windows でも使っていますよ。Mac OS X でも標準装備になったようです) スクリプト言語の弱みとしては、GUI が組み込みでないこと、 標準の開発環境がないことです。 それでも、Emacs などの入力支援つきエディタを用いればかなり助けになりますし、 また SourceForge.net などには Java の開発環境「Eclipse」に対する 各種言語用プラグインがあります。 ・Ruby Development Tool(RDT) http://sourceforge.net/projects/rubyeclipse/ ・PyEclipse http://sourceforge.net/projects/pyeclipse/ ・Pe4Eclipse http://sourceforge.net/projects/pe4eclipse/ Windows 版 Ruby は3種類ありますが、詳しくは以下のページの 「Microsoft Windows版のビルド環境による違い」をご覧下さい。 http://www.ruby-lang.org/ja/20020102.html この他、ウェブ開発に特化した言語としては「PHP」があります。 ウェブページのソースに埋め込んで使います。 これもここにカテゴリがありますし、何よりこのサイト自体 PHP で運営されており、 データベースとの連携の実績もばっちりです。 なお、PHP の長所として「Perl の CGI より高速」ということがよく言われますが、 Apache の拡張モジュール mod_perl(Ruby では mod_ruby) を使えば Perl でも CGI の場合より良好なパフォーマンスが得られます。 ご参考まで。 ウェブページで使える言語には他に「JavaScript」や Macromedia Flash を制御する「ActionScript」というのもあります。 両者はよく似ていますが、それもそのはず、 JavaScript を基本に ECMAScript(エクマスクリプト)という オープンな標準スクリプト言語仕様が策定され、 ActionScript はそれに基づいているのです。 ECMAScript の仕様は改めて JavaScript にもフィードバックされています。 またまた余談ですが、Microsoft の JScript は実は JavaScript とほとんど同じものです。 「Java」の名前を嫌って独自拡張を行おうとしたものの総スカンを食い、 やむなく ECMAScript に準拠することで妥協したのですが、 ECMAScript は JavaScript そのものですから、 結局両者は大差なくなってしまいました。 http://www.interq.or.jp/student/exeal/dss/ref/jscript/about.html
お礼
丁寧なアドバイスを頂き大変感謝いたしております。 実はPython は名前がかっちょえーとおもって目をつけました。 私の勝手な価値観ですが、PerlよりRubyよりかっこいいなぁって思ってしまいました。 >利用できるライブラリの豊富さでは先行する Python がはるかに優れています。 おーなるほど。 さらにPython ポイントUpです。 ほんとうは仕事と絡めるとCOBOLを第二外国語にしようかなと思ったこともありますが、 ネットで調べたのですがWindowsでどうやって動かすんだ??っていうことになってしまい躊躇していました。 Python にしようかなぁ。 Python 使いってなんていうのかなぁ Pythonerかなぁ蛇使いかなぁ perl使いはperlerですか?パチンコ屋みたいですね。 うーん、よし!Python にしよう! もし各言語の使い手はこう呼ぶというのをご存知でしたら 教えてください!!
- azicyan
- ベストアンサー率21% (368/1747)
プログラマーさんなんですね! うらやましい(*^_^*) 僕も目指しています! というわけで、次は・・・ということなんですが、 逆に簡単なやつをやってみるといいと思います。 JAVAをやってからDelphiをやると簡単さに涙がこぼれそうになります(おおげさ~) VBはソフトが高いのと、バージョンアップが早いのと、世間がマイクロソフト離れをはじめている、ランタイムがいる、等々のことからお勧めできませんが・・・ あとC++はわかりませんが、 JAVAの後にCを勉強するとわかりやすいです。
お礼
ご回答ありがとう御座います。 >プログラマーさんなんですね! >うらやましい(*^_^*) いえいえそんなことはありません。 SEとして入社したのにもかかわらず PGしかやらしてもらえないだけなんです。 もちろん SE>PGとかは思っていませんよ。 SEとPGはまったく違うだろ?って思っている今日この頃です。 話がそれてしまいましたが、 JavaのあとにCを勉強するとわかりやすいとのことですが、 Cは新人研修のときにちょっとアレルギー気味になってしまっています。 こんな私でも大丈夫でしょうか。。。
お礼
再度のアドバイスをありがとうございます。 >こちらこそ丁寧なお礼、どうもありがとうございます。 >回答する方もとっても励みになります~。m(__)m いえいえトンでも御座いません。 こちらこそ丁寧な回答を頂き恐縮です。 >Python→Pythonian(パイソニアン) うーん、へんな感じですね。あんまりかっこよくないです。 折角Python(ニシキヘビ)なので勝手に「蛇使い」を名乗ってしまいましょう。「レッドスネークかも~ん」です 本当はCOBOLをやりたいところだったんです。 なぜならCOBOL資産としては莫大なものがあり、 JavaとCOBOLの両刀使いになっていれば当面仕事にこまらないであろうかという目論見です。 OpenCOBOLなるものがあるのですが。 ぜひチャレンジしてみたいと思います。 ありがとうございました。