2005-10-11

わたなべひろふみさんインタビュー

Rubyist Hotlinks 【第 10 回】 わたなべひろふみさん

自分の中では porter というよりは one liner 使いというイメージが強いわたなべさん。

すげぇ。このすっとぼけっぷり。さすが。

ぼくはですね。この人に憧れてメールの書き出しをかたくなに

渡辺です。

にしてるんですよ。本家は

わたなべです.

なんだけど、そこはあえて同じにならないようにするのです。ここポイントね。いや、別に名前なんだから当たり前じゃんと思うかもしれないけど、書き出しはお世話になっておりますとか、そういう書き方をする風土もあるでしょ? でもあれヤなの。watanabe desu. って書きたいんだよ!

Ruby がしばらく好きになれなかったとか、引数が減って嬉しい1とか、そういう細かいポイントが同じなのもとても嬉しいです。do .. end きらい2とか、本当にどうでもいいポイントですが。

今までのインタビューと違って大ネタがないまま終わりましたが(笑)、私は満足ですよ!

  1. もうほんとに引数の順番覚えられない。 

  2. 今はエディタ任せというか elisp、えーとつまりまつもとさん任せで end 構文も快適です。 

1.7以降は case で正規表現マッチが使いものになるのか

Rubyist Magazine - あなたの Ruby コードを添削します 【第 1 回】 pukipa.rb

Perl育ち(switch文がない)なのとリファレンスをよく読んでいなかったため、case .. when で正規表現マッチが行えることをまったく知らなかった。実際にはこれは case ではなく、Regexp の問題。

…が。これは Ruby 1.7 feature と書いてある1ので、1.6 を考慮する必要のある環境では使わない方がいいって判断して使ってないのかもしれない。あれー全然覚えてないな。

until, unless は使わないなぁ。ぱっと見て条件がどっちなのか分からないから。until はまだしも unless は譲れないと思う。「自然に読む」ことができない2し、not であることの意味が弱くなるから。同じ理由で後置するのもきらい。条件の存在が目立たなくなると目で追うときに混乱しやすい。

全体の構造的な部分は参考になるんだけど、細かい部分は「本人はすっきりしたかもしれないけど分かりにくくなっている」部分もあって3、採用するかどうかは現場判断て感じかなぁ。式の埋め込みは Ruby らしさの一つだけど、記号が増えていや。Perl じゃないんだから記号は増やしたくない。こういう考え方もまた Ruby らしさを実現するものではなかろうか。まぁ必ずしも埋め込むべきではないと断ってあるんだから、ネチネチとつつくようなポイントでもないんだけど。

いちばん気になったのは PukiWiki のパーサとしては実際には機能しない(かなり簡略化されている)のに PukiWikiParser というクラス名はどうなんだってところか。(読み始めた瞬間にものすごい期待が膨らんだのだ。)

いやぁ面白いな、これ。いろいろ書いたけど勉強になります。Ruby だけじゃなくて他の言語でもこういうのあったらいいかも。C や Java なんかだとすでに書籍であるのかな、というか C はそういう書籍を読んだことあったかも。

  1. 1.6 までは先頭の文字列にマッチすると 0 を返すという仕様なので、たぶん when に置いても期待通りには機能しないんじゃないかな。試してないけど。 

  2. 勉強不足と言われるかもしれないけど、通常の英語表現で unless を見かけた記憶がないんだもの。 

  3. slice はそんなことないんだけど 

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm