GAE開発の落とし穴
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。

作者 David Black , 翻訳者 編集部 投稿日 2008年8月11日

あるいは、次のような質問です。Rubyを始めたばかりなのですが、とても素晴らしいと思います。でも、2、3確信を持てないことがあります。C出身の私には、0(ゼロ)が真というのは驚きでした。CやPerlのプログラマーにとっては、0(ゼロ)は偽の方がやりやすくないでしょうか。
関連情報
はたまた、次のような助言です。C++出身の自分には、静的型付けが非常に役に立つと思います。Rubyに追加する予定はないのでしょうか。
恐らく私は、あちこちで「出身」を多用して、歪んだ印象を与えてしまっているのではないかと思います。けれども主旨は常に同じでした。つまり、Rubyは重要視されていなかったので、あらゆることを他言語の観点から表現しなければならなかったのです。CのプログラマーとPerlのプログラマーはいましたが、Rubyのプログラマーは存在しませんでした(あるいは、Rubyプログラマーがいたとしても、Rubyの特徴一式そのものよりも、CやPerlのプログラマーの方が重要だったのです)。動的型付けが残るか、なくなるかは、Ruby以外の言語を使っていた人々がそれに関してどのように感じていたかにかかっていたのです。また、Rubyの文体の型を尊重する必要はありませんでした ? 実際、Rubyは真の言語ではなかったので、型は持てなかったのです ? ですから単に別の言語から規則を持ってきたのです。Rubyでは変数名にアンダースコアやキャメルケースが使えるので、これまでの言語で使ってきたどんなものでも使えばよいのですよ。
こういったことが長い間続きました(いまだに続いていますが、以前ほどひどくはなく、とんだ見当違いであったと気づく人も増えています。ですから、少なくともこれまでの大体の経緯をお話ししましょう)。奇妙な感じでした。功罪という意味でも、そうした扱いを受ける側にいたという意味でも奇妙でした。なぜなら、Rubyのプログラマーとしての自分は、相手にされない透明人間のように感じられたからです。
××言語「出身」という概念は、こうした質問や提案の多数において、そのより所になっていると私は思います。Aという人物がN年間、言語Xを使ったという事実があるだけで、どういうわけかRubyには言語Xを模倣する義務があるということになったのです。Rubyを軽視するという(大体は無意識と思われましたが、広範囲に及んだ)風潮はさておき ? そして、こうした変更のリクエストをすべて聞き入れていたら、結果として生じるであろう機能のゴチャ混ぜ状態もともかくとして ? 自分の「出身元」の言語を重要視することは、無意味なのです。
次のシナリオを考えてみてください。
あなたはC「出身」です。そうすると、0(ゼロ)を偽とみなすことが「直感的」と考え、Rubyで0は偽で然るべきと考えます。しかし、嫌々ながら0が偽でないことを受け入れ、Rubyでプログラミングを始めます。
数年後、あなたはRubyにとても満足するようになっており、別の言語、たぶんPerlかなにか、を試してみることにします。今回、Perlを使い始めたあなたは、Ruby「出身」です。ですから、0は真が当たり前、と思っています。そうすると、Perlは間違っていることになるわけです。
言い換えると、あなたは常に、一言語分、ズレていることになるのです。そして、その時々で、正しい設計になり得る言語はひとつだけ、ということになってしまうのです!常に前の言語を恋しく思うホームシック状態で、言語の旅を楽しむことなど、決してないのです。
そんなことでよいのでしょうか。
念のために言っておきますが、Rubyは他の言語から孤立して存在しているとか、これまで存在してきたと言っているのではありません。それどころか、Rubyは多数の言語から特徴を借用しており、受け継いだものが明らかに分かります。Rubyを作成した、まつもと「Matz」ゆきひろは極めて知識豊かで、言語の設計過程でその知識を利用することに信じられないほど長けているのです。ですから、Rubyの様々な部分が他言語の部分とどのように関係しているかという話で、Rubyの世界は常に活気にあふれているのです。
それでも、Rubyは決して特徴の寄せ集めではありません。Rubyにはスタイルと設計における独自性があります。Matzは設計と機能の決定には細心の注意を払います。こうしたことをMatzがどのように考えているのかをMatzの言葉で論ずるのを聞けば、「C++プログラマーにとってより使い慣れたものにすること」など、全く的外れである、とますます理解が進むでしょう。
Rubyは変化すべきでないと提案するつもりもありません。実際、Rubyはまだ開発途上にあります。Matzは常に、Rubyの変更に関する提案を奨励し、歓迎してきました。機能の追加と変更に関するトピックで、メーリングリストが独占されることもしばしばです。ですから、誰もが、Rubyの変化を望まないとか、期待しないといったことではないのです。それよりも、変更の出所や、変更を望む提案の出所が問題なのです。0を偽にすればRubyが良くなると思う人が存在し、その良くなるという理由が、「RubyをRubyでない言語のように思わせること」以外であるのなら、ぜひ、その理由を聞こうではありませんか。
Ruby出身であることが許されていい時期になったはずです。Rubyが受けた待遇を他の言語にもしてやろうと言っているわけではありません。Rubyプログラマーが慣れ親しんだ気分になれるように、言語に変更を加えてくれませんか、などとメーリングリスト宛てに要求を送ることは決してありませんから、私を信じてください(そういう気が起こるかもしれません…が、実際に要求を送りつけることはしません)。つまりそれは、プログラミング言語の世界において、Rubyに第一級市民としての完全な権利を与えることであり、Rubyという名称の横に暗黙のアステリスクがつくのは、もうたくさんという意味です。
ですから、もしRubyを始めることになったら、しばらくは続けてみてください。十分続けたら、ご自由にRuby出身になってください。後悔はしませんよ!
David A. Black氏は長い間、RubyとRailsのプログラマーをしており、著作もあり、指導もしています。Rubyの世界で2000年から活動しているBlack氏は『Ruby for Rails: Ruby Techniques for Rails Developers』(RailsのためのRuby:Rails開発者のためのRubyテクニック)(Manning Publications、2006年)とPDFショートカットの『Rails Routing Roundup』(Railsルーティングの総括)(Addison-Wesley、近刊、2007年)の著者です。
Black氏はRuby Power and Light, LLC(http://www.rubypal.com)というRubyとRailsのコンサルティング会社のオーナー兼取締役で、毎年のRubyConfやRailsConfイベントの母体組織であるRuby Central, Inc. (http://www.rubycentral.org)の共同取締役も務めています。Ruby Centralにおける職務の一環として、RubyとRailsのコンファレンスを共同組織してきましたが、その中には2001年以降に開催されたRubyConfやRailsConf、RailsConf Europeが含まれており、Ruby Central Regional Conference Grant ProgramならびにRuby CentralのGoogle Summer of Codeへの参加では運営管理を担当してきました。
Black氏はRubyの標準scanfライブラリの作成主任で、Ruby Change Requestオフィシャルサイトの創設者兼管理人です。
原文はこちらです:http://www.infoq.com/articles/coming-from-ruby
(このArticleは2007年5月14日に原文が掲載されました)
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式
本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。
前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。
Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。
スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。
No comments
スレッド表示 返信