• ベストアンサー

第二外国語はどれにしよう。。。

nightowlの回答

  • nightowl
  • ベストアンサー率44% (490/1101)
回答No.2

こんにちは。最初カテゴリ違いかな?と勘違いしてしまいましたが、 なかなか粋なタイトルをおつけになりましたね(^^ さて、今まで話題に上った 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

参考URL:
http://www.ruby-lang.org/ja/,http://www15.web24.jp/~c01763n1/rubytips/,http://www.zob.ne.jp/~hide-t/comp/python/tut-ja/
chi-kon
質問者

お礼

丁寧なアドバイスを頂き大変感謝いたしております。 実はPython は名前がかっちょえーとおもって目をつけました。 私の勝手な価値観ですが、PerlよりRubyよりかっこいいなぁって思ってしまいました。 >利用できるライブラリの豊富さでは先行する Python がはるかに優れています。 おーなるほど。 さらにPython ポイントUpです。 ほんとうは仕事と絡めるとCOBOLを第二外国語にしようかなと思ったこともありますが、 ネットで調べたのですがWindowsでどうやって動かすんだ??っていうことになってしまい躊躇していました。 Python にしようかなぁ。 Python 使いってなんていうのかなぁ Pythonerかなぁ蛇使いかなぁ perl使いはperlerですか?パチンコ屋みたいですね。 うーん、よし!Python にしよう! もし各言語の使い手はこう呼ぶというのをご存知でしたら 教えてください!!

関連するQ&A

  • 違いを教えてください。

    JAVA初心者です。勉強しててわからない事がたくさん・・・ まず、public static void main(String args[])と    public static void main(String []args) は同じ意味なのでしょうか?そもそも(String args[])の意味がよくわかりません・・・。argsってなんて読んだらいいのでしょうか? あと、extends継承してクラスを使うのと、importでクラスを使うのって意味は同じですか? 最後に、abstract抽象も使い方がよくわかりません。 教えてください!!

    • ベストアンサー
    • Java
  • javaの基本的な質問

    java初心者です。 サンプルプログラム等の宣言部分が下記の2通りで記載されていることがありますが、 カギ括弧の位置が違うこの2つは何か意味があるのでしょうか? それとも同じ意味ですか? ----------------------------------------- public static void main (String args[]) public static void main (String[] args) ----------------------------------------- よろしくお願いします。

    • ベストアンサー
    • Java
  • 10の302乗の計算またはDoubeのキャストについて教えて下さい。

    java言語で質問があります。よろしくお願い致します。 次のプログラムを作成し、2点質問をさせて下さい。 まずは10の302乗を計算したいときとキャストを調べたところdouble型はできないのでどう対処すればいいでしょうか。どうぞアドバイス下さい。class Enzanshi{ public static main(String args[]){ int num1; double num = num1*10^302; } } エラー内容はこうです。 C:\java>javac Enzanshi.java Enzanshi.java:2: メソッドの宣言が不正です。戻り値の型が必要です。 public static main(String args[]){ ^ Enzanshi.java:3: \65307 は不正な文字です。 int num1; ^ Enzanshi.java:4: \65307 は不正な文字です。 double num = num1*10^302; ^ エラー 3 個

  • コンパイル時のエラー。

    いつも大変お世話になりありがとうございます。 public static void main(String[] args)は何の意味があるのですか? http://www.task-notes.com/entry/20150930/1443582000 などを見てもイマイチ納得がいきません。 下記のプログラムでは public static void main(String[] args)がないためにエラーになりました。 解らないため適当な箇所に付け足したら、また異なったエラーになりました。 ;を付け足すとまた別のエラーが出ます。 ご多忙中恐れ入ります。 アドバイスのほど宜しくお願い申し上げます。 class Hero { public static void main(String[] args) private int point; Hero(int p) {point = p; } int getPoint() { return point; } void addPoint(int p) { point += p; } } コンパイルエラー C:\JAVA>javac Hero.java Hero.java:3: エラー: ';'がありません public static void main(String[] args) ^ エラー1個

  • この文章あっていますか?

    public class HelloWorld { public static void main(String[] args) { String message; message = "Hello Java World !"; System.out.println(message); } } これが正解文なのですが public class HelloWorld { public static void main(String[] args) { String message; message = "Hello java World"; System.out.ptintln(message); } } この文のどこが間違っていますか?ぜんぜんわからないので誰か教えてください。

    • ベストアンサー
    • Java
  • Processingでpure Javaモード

    Processingでstaticなメソッドを使いたいです。 wikipediaで調べると、pure Java モードを明示的に指定しなければならないとあります。 しかし、いくら調べてもpure Java モードの指定方法は載っていませんでした。 どのようにすればpure Java モードに指定することができるのですか。教えてください。 ちなみに以下のようなHello Worldのプログラムを試しに書いたのですが、staticだからダメだと動かすことができませんでした。 class Main{ public static void main(String[] args){ System.out.println("Hello World!"); } } よろしくお願いします。

    • ベストアンサー
    • Java
  • mainクラスのpublicの意味を教えて下さい

     お早う御座います、JAVA初心者です、宜しくお願いします。  main クラスの public をコメントアウトしてもエラーもなく走ります。  これは、「public static void main(String[] args)」を持っているクラスを自動的に「main クラス」と判断しているということでしょうか。 ============================================================ class Sub { void disp() { System.out.println(" a "); } } /*public*/ class Main { public static void main(String[] args) { Sub s = new Sub(); s.disp(); } }

    • ベストアンサー
    • Java
  • javaの基本的な質問

    下記を実行すると、上から順番にメソッドが実行され、 「Hello Java  Hello Java」 と表示されるような気がしてしまうのですが… なぜ、一度しか表示されないのでしょうか。 class Main { public static void main(String[] args) { hello(); } public static void hello() { System.out.println("Hello Java"); } }

    • ベストアンサー
    • Java
  • javaのmainの引数はなぜstring[]?

    Java初心者です。 基礎的なことなのですが、質問させてください。 javaのmainメソッド定義の public static void main (String[] args) について、String[] argsの部分がjavaコマンドで実行する際に与える引数であることは 理解できました。しかし、なぜStringの配列なのかが理解できません。 実行時の引数であれば、intやdoubleも使い道があるようにも感じるので、 プログラマの好きに定義できた方が便利な気がしますし、実行時に引数を与えないなら public static void main () としてしまったほうがわかりやすいとも感じてしまいます。 実はコンパイル時や実行時に裏の見えない部分でStringの配列を使っているとか、 何か理由があるのでしょうか? mainの定義は main (String[] args)と暗記でもいいのですが、 気になったので知りたく、質問させてください。

    • ベストアンサー
    • Java
  • Javaの文法

    Javaプログラミングの勉強をはじめたばかりですが、本を見てもいまいちよくわかりません。多分、わからないのはpublic sta…の部分を理解できていないからだと思います。public static void main(String args[])の意味がよくわかりません。public staticはどういう意味なんでしょうか?それとString args[]の部分がなぜ必要なのかがよくわかりません。どなたか教えてください。

    • ベストアンサー
    • Java