CodeZine(コードジン)

特集ページ一覧

Java meets Python - 第0回 Jythonはじめました(前編)

よろずプログラマーのためのPython導入ガイド (1)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2007/10/09 14:00
目次

Jythonとの遭遇:はじめまして

 以下の内容は「Python/Jython入門」を意図したものではありません。Jythonで可能性が広がるJavaプログラミングの世界を概観するのが目的です。

 深く考えずに次のコードを見てください。何をしているか分かりますか。

>>> from javax.swing import *
>>> f = JFrame()
>>> f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
>>> f.setSize(150, 100)
>>> f.setTitle("Jython")
>>> f.setVisible(True)

 Swingを利用したコードの断片とどこか似ています。「>>>」とあるのは、対話モードにおけるプロンプトです。つまり、Jythonを利用すると「Java擬の対話型インタプリタ環境」を手に入れたことになります。この現実は初心者にも朗報です。Swingの本質をコマンド感覚で疑似体感できるので、学習環境としても最適です。先に説明したように、コンパイルして実行することもできるので、インタプリタとの棲み分けが可能です。

from javax.swing import *
f = JFrame()
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
f.setSize(150, 100)
f.setTitle("Jython")
f.setVisible(True)

 このコードをテキストファイル「example.py」に保存した後で、UNIXのターミナルが目の前にあるなら、次のコマンドを入力するだけです。

% jython example.py

そこにC#が現われて

 C#プログラマーがこのコードを見たら「プロパティを使えば簡単なのに」と歯痒い思いをするでしょう。JavaBeansに準拠するなら、get.../set...は、同じ名前のインスタンス変数にアクセスするときの常套句です。例えば、titleを獲得/設定するには、それぞれメソッド呼び出しgetTitle/setTitleを利用します。

 ここでC#プログラマーなら、冗長なget/setを排してプロパティを利用するでしょう。すると、次のように簡潔に表現できます。

from javax.swing import *
f = JFrame()
f.defaultCloseOperation = JFrame.EXIT_ON_CLOSE
f.size = 150, 100
f.title = "Jython"
f.visible = True

 このように、JavaBeansに準拠するリソースを再利用するときには、Jythonでは簡略表記が可能です。すると、Javaの言語仕様が拡張されるより一足先に、C#プログラマーと同様の恩恵に浴することができます。

そこにPythonが現われて

 Jythonは、PythonのDNAを継承しています。それなら、その特徴を利用しない手はありません。

from javax.swing import *
JFrame(defaultCloseOperation=JFrame.EXIT_ON_CLOSE,
    size=(150, 100), title="Jython", visible=True)

 ここでは、インスタンスを生成するときに、初期設定を済ませています。ウィンドウを表示させるだけなら、これで十分です。贅肉を削ぎ落とした、体脂肪率一桁のアスリートの肉体美を思わせる、洗練された見通しの良いコードを記述できます。

そこをRubyが素通りして

 シカトされたのかしら(nani wo ima-sara ...)。

Jythonとの遭遇:昨晩お会いしましょう

 先に示したコードの断片は、Javaの言語仕様に飽き足らず、他の言語のイイトコ取りができる、ほんの一例にすぎません。まさに、glue言語の面目躍如です。

 Jythonの世界では、Javaより一足先に、拡張for文の恩恵に浴することができました。Javaに演算子のオーバーロード機能がないのは、開発者の美学です。しかし、それを切望する人々には、不満が募ります。もし望むなら、Jythonを介して演算子のオーバーロードさえも可能です。R指定はありません。Ruby/Pythonプログラマーなら堪能できる、大人の世界を覗いても、コンパイラに叱られることはないのです。

 既にJythonの恩恵に浴していたプログラマーは、後のJavaの言語拡張を懐かしい想いで迎えたものです。今でも、Jythonを通して、拡張されるJavaの言語仕様の近未来を予見できます。

 「初めまして。昨晩お会いしましたね」


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:よろずプログラマーのためのPython導入ガイド

もっと読む

著者プロフィール

  • 小泉ひよ子とタマゴ倶楽部(コイズミヒヨコトタマゴクラブ)

    http://tamago-club.cocolog-nifty.com/ 「楽しくなければ仕事じゃない」が私たちのモットー。99%の苦悩の連続も、1%の成功に報われます。だからこそ、この仕事が楽しくて仕方がないのです。楽をするための努力なら惜しみません。何もせず楽をしているのと、努力をしたか...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5