RubyとPythonはどう違うのか。
「RubyとPythonはどう違うのか。」比較的検索される内容だということで少しまとめてみたいと思います。
RubyとPythonに共通する部分は、オブジェクト指向のスクリプト言語だということです。Rubyは20周年を迎え2.0となりました。一方、Pythonも1990年から開発されています。両方の言語とも成熟期に入っているといってもいいぐらい安定しています。RubyもPython共、豊富なライブラリなどが用意されており、Webアプリケーションや管理系のコマンドの開発言語としても利用されています。
では、2つの言語の違いはなんでしょうか。プログラミング方法やライブラリ、フレームワークなどいろいろな側面で比較してみたいと思います。
プログラミング方法
Pythonは、プログラムのブロック構造を表現するのにインデントを利用します。C言語系などの多くの言語では、プログラムのブロック構造を表現するのに"{}"を利用します。
Pythonでは、「見た目のブロック構造」と「実際の論理的な制御構造」を同一にすることを目的として、インデントを利用したプログラムのブロック構造をとります。
Pythonの場合は、classやdefといったキーワードはありますが、ブロック構造を終了するためのキーワードや括弧はありません。その代り、ブロック構造を終了するときは、一つインデントを上げています。
Pythonでは、「見た目のブロック構造」と「実際の論理的な制御構造」を同一にすることを目的として、インデントを利用したプログラムのブロック構造をとります。
Pythonの場合は、classやdefといったキーワードはありますが、ブロック構造を終了するためのキーワードや括弧はありません。その代り、ブロック構造を終了するときは、一つインデントを上げています。
一方Rubyは、インデントはさほど重要ではありません。
「class」や「def」といったキーワードがあり、さらにそれに対応するendというキーワードがあります。ブロック構造を表現するのには、「def」や「end」といったキーワードを利用します。
「class」や「def」といったキーワードがあり、さらにそれに対応するendというキーワードがあります。ブロック構造を表現するのには、「def」や「end」といったキーワードを利用します。
リスト1(Python)とリスト2(Ruby)ですが、プログラムの内容は同じです。
Languageクラスにメンバー変数としてcodeとnameを設定して、配列にオブジェクトを収納し、繰り返し処理を行っています。
Languageクラスにメンバー変数としてcodeとnameを設定して、配列にオブジェクトを収納し、繰り返し処理を行っています。
リスト1:Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #!/usr/bin/python # -*- coding: utf-8 -*- class Language: def __init__( self , code, name): self .code = code self .name = name def display( self ): print self .code + " " + self .name if __name__ = = "__main__" : languages = [] languages.append(Language( "ruby" , "ルビ" )) languages.append(Language( "python" , "パイソン" )) for language in languages: language.display() |
リスト2:Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #!/usr/bin/ruby # -*- coding: utf-8 -*- class Language def initialize(code, name) @code = code @name = name end def display() puts @code + " " + @name end end languages = [] languages.push(Language. new ( "ruby" , "ルビ" )) languages.push(Language. new ( "python" , "パイソン" )) languages. each do |language| language.display() end |
次のページへ続く
0 件のコメント:
コメントを投稿