1. TOP
  2. ブログ
  3. Pythonって本当に書きやすいの? Rubyと比較してみた

Pythonって本当に書きやすいの? Rubyと比較してみた

近年、機械学習やビックデーターでPythonが注目されています。日本ではPythonと同じオブジェクト指向言語のRubyの人気が根強いですがPythonとRubyはどちらが使いやすいのでしょうか。今回は、書き方の面からPythonとRubyの比較をしていきたいと思います。

 

Pythonは機械学習のイメージが……

 

確かに、Pythonは数学や科学のライブラリーが豊富であり検証もRubyに比べてしっかりされているため科学分野でのスタンダード言語はPythonであるといえるでしょう。
また、Pythonは文法がきっちりしていること、インデントを利用した書き方であることから、誰でもある程度の書くパターンが決まってきます。その為、Webサイトには個性が現れやすいRubyのほうが向いていると言われています。しかし、Pythonの利用者であれば記法がほとんど同じであることは保守運用をする時誰にでもコードがわかりやすいというメリットともいえます。
この点から、Pythonはアプリケーションを作る上での適性も高いプログラミング言語であるといえるでしょう。

 

Pythonのどこが書きやすいのか

 

Pythonの書きやすさは選択肢の少なさにあります。これはPythonの設計思想として”There should be one―and preferably only one―obvious way to do it”と言うものがあります。日本語訳すると「一つのものを持つべきです。何かを行うための。」と言った意味になります。この設計思想をもとにしてできるだけあって、同じことをしたいときに書き方が一つになるように設計されています。
また、強制的にインデントをさせる言語のため、パッとみで見やすくシンプルなのがPythonの特徴といえます。

 

スクレイピングのコードで比較してみた

 

実際にPythonとRubyのコードの違いから、書きやすさを考えていきたいと思います。
そこで今回はキャパのブログのページからタイトルを抜き出すプログラミングを事例に考えていきます。

 

Ruby

url = 'https://www.capa.co.jp/blog'

charset = nil

html = open(url) do |f|
    charset = f.charset
    f.read
end

doc = Nokogiri::HTML.parse(html, nil, charset)
doc.xpath('//h1[@class="searchResult_itemTitle"]').each do |node|
  puts node.text
end

このように、「do」と「end」をペアで使わなければならないことからもRubyが初めてであるとややわかりにくい文法である印象を受けます。

 

Python

# coding: UTF-8
import urllib2
from bs4 import BeautifulSoup

url = " https://www.capa.co.jp/blog "

html = urllib2.urlopen(url)

soup = BeautifulSoup(html, "html.parser")

soup.h1.string .prettify()

上記を見てわかるように書いてある行数はRubyが12行、Pythonが7行と約半分の行数でコードが完成しています。その為、プログラムがどう動いているかがパッと見てなんとなくわかることも特徴です。

 

 

Rubyもやりがいがあり個性の出やすい面白い言語です。しかし、コードの読みやすさや保守の簡単さはPythonに分があります。みなさんもぜひ、書きやすいオブジェクト指向言語としてPythonを使ってみてはいかがでしょうか?

 

 

 

 

株式会社キャパでは、アプリの企画・開発についてご相談を承っています。アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
アプリ開発:実績のご紹介

    ホワイトペーパーフォームバナー

    【DL可能な資料タイトル】

    • ・プログラムによる建築/土木設計のQCD(品質/コスト/期間)向上
    • ・BIM/CIMの導入から活用までの手引書
    • ・大手ゼネコンBIM活用事例と建設業界のDXについて
    • ・デジタルツイン白書
    • ・建設業/製造業におけるデジタルツインの実現性と施設管理への応用

    詳細はこちら>>>

    PAGE TOP