このサイトについて

PLEAC - Perl CookbookのベストプラクティスをPython,Ruby,PHPなど多数の言語で書いたどうなるか

PLEAC - Perl CookbookのベストプラクティスをPython,Ruby,PHPなど多数の言語で書いたどうなるか

Cookbookとはプログラミングの達人レシピ集。プログラミングでよく利用する「定番処理」をどう料理するか,というお題とベストプラクティスを沢山集めたもの。プログラミングの入門や,初級から中級にステップアップしたい人にとって有用なレシピ集。

なかでもPerl版のPerl Cookbookは有名で,多くのPerl開発者から「読むべし!」と推奨され,オライリーから書籍としても発売されています。

PLEAKというプロジェクトは,Perl Cookbookのレシピを他の言語で実装しよう,というプロジェクト。数年前から続いていて,多くの言語でPerl Cookbookのお題が「翻訳」されています。

たとえば,「今日の日付を得る」というお題について,多言語での実装例をかいつまんで見てみましょう。

Perl

($DAY, $MONTH, $YEAR) = (localtime)[3,4,5];

Python

today = datetime.date.today()
print "The date is", today
# あえてPerlに合わせるならday, month, year = datetime.date.today().day... かな? 

Ruby

day, month, year = Time.now.day, Time.now.month, Time.now.year
# or
day, month, year = Time.now.to_a[3..5]

PHP

$today = getdate();

$day = $today['mday'];
$month = $today['mon'];
$year = $today['year'];

Haskell

import Data.Time
import System.Locale (defaultTimeLocale)

t = do tm <- getCurrentTime
let (year, month, day) = toGregorian (utctDay tm)
printf "The current date is %04d %02d %02d\n" year month day

Smalltalk

Date today printString. " -> '3-Jun-2005' "

言語によってカバレッジやノリに差はあるものの,どの言語もなかなかよく書けてます。Perl Cookbookはお題の選定が良いので,他の言語で実装しても,Perl版と同じように有用な達人レシピ集になっています。

2011-03-09 01:44