«前の日記(2005-11-10) 最新 次の日記(2005-11-12)» 編集

Matzにっき


2005-11-11 ポッキー&プリッツの日 [長年日記]

_ 東京出張

東京へ。

イベントで呼ばれるのはしょっちゅうだが、 会社の出張は実はひさしぶりな気がする。

移動しながらも原稿は書く。なんとか今日中に終わらせたい。

打ち合わせ。今は内容が公開できないが、 現実化すれば結構社会的インパクトがあるのではないだろうか、というような話。

なかなかうまく進んだように思えるのだが、 しかし、どうもこのまま毎週東京にくることになりそうな気配が。

うう。

空港でおみやげ。家人のリクエストにより沖縄の黒糖プレッツェル。 「今日はポッキー&プリッツの日なのでなにか珍しいものを」とのことであった。 グリコ製品じゃないけどいいのかな。

_ Rubyでアジャイルプロトタイピング(1)

Rubyでプロトタイプを作り、仕様がはっきりしたらそれは捨てて、 (Javaなどで)正式版を作るという話。

なにも捨てんでも、と思うのだが。 プロトタイプを高速に作ったら、なにかの事情でRubyでは全然ダメだというのでなければ、 そのままRubyで突き進めば良いのにね。

お仕事環境では「やっぱりJavaでないと」というよく分からない圧力があるようだ。

してみると、RubyConfで8割くらいが「Rubyで仕事してる」と挙手した、 アメリカの状況は日本よりも進んで(?)いる。すくなくとも連中には、 社会として変化を受け入れる勇気があるような気がする。

いや、それが良いことがどうかは分からないけど。

_いまどきのプログラム言語の作り方

Soopyの作者randyさんによる書籍。 Soopyと違ってサンプル言語(JoyToy)は普通。 いずれにせよ、これで「言語を作ってみよう」って人が増えると良いなあ。

浜松町の書店で見掛けて、買おうかとも思ったが、荷物になるし、 処理系はJavaで書いてあるし、まったく知らないことは書いてなさそうなので、 今日はやめた。

ところで、

とある言語の作者によれば「名前重要!」です

という形で私の言葉が引用されていた。いや、引用じゃなくて「ほのめかし」かな。 あれじゃ知らない人は分かんないじゃん(苦笑)。

本日のツッコミ(全15件) [ツッコミを入れる]
_ MMX (2005-11-13 11:36)

>お仕事環境では「やっぱりJavaでないと」というよく分からない圧力があるようだ。<br>連合艦隊のjavaは長期の可用性もありますし、上層のフレームワークから下層のマシンアーキテクチャまでの対応の「厚み」はいいです。<br>最近では、1個で高速から多数個で大量のトレンドにも乗っています。(下層の話)<br>ソフトウェア開発者が、ハードウェアの性能向上をそのまま享受できた時代は終わった<br>(フリーランチ IS OVER)<br>http://pc.watch.impress.co.jp/docs/2005/1027/fpf03.htm<br>Java One 2005 Tokyo のCTCで実機展示してました。<br>プロセッサのメニーコア化における課題(Itaniumがダメでも次がある)<br>http://www.atmarkit.co.jp/fsys/kaisetsu/066intel_develop/intel_develop.html<br>http://pc.watch.impress.co.jp/docs/2005/1110/kaigai_1.gif

_ まつもと (2005-11-13 15:52)

おっしゃるメリットが存在することを認めないわけではないですが、かならずしもいつも必要ではないと思うんです。<br>逆に私の付き合いがある(多くの場合下っ端の)プログラマはJavaで「苦しんでる」人が多いんですが、それがいつも正当化されるとはとても思えないのです。そのへんを考えると「よくわからない圧力」という印象はやはり強いですね。

_ みずしま (2005-11-14 12:09)

それは、Javaで「苦しんでいる」のが何が原因なのか(Java言語が嫌いなのか、静的型言語が嫌いなのか、Java言語上の特定のフレームワークが嫌なのか)に依存する話なのではと思うのですが、実際のところ、それは本当にJavaのせいなのでしょうか?

_ まつもと (2005-11-14 12:53)

自分の経験でないので断言しにくいんですが、Javaの饒舌さに起因するものと、冗長さ(大量のXMLを要求することとか)を持つフレームワークなどに起因するものの両方があるようです。しかし、後者は結局Javaの「文化」に依存するもので、それはやっぱりJavaという静的言語の影響を受けているように、私には感じられます。

_ Average (2005-11-14 19:02)

作り直すのがJavaであるかRubyであるかはともかく、<br>いったん捨てる、というのは意外に有効じゃないでしょうか。<br>後々使えるように、と考えるとどうしても内部で凝った処理をしたくなりますし。

_ 野分 (2005-11-15 04:02)

ここでもBohemianとGentryの対立があるようですね。<br>Javaが喜ばれるのは(静的言語が持つ)インターフェイス層の硬さだと思いますが、逆にハックする側からすると息苦しくなるんでしょうね。

_ 匿名希望 (2005-11-15 13:50)

rubyはリリースエンジニアリングに不安てんこもりです。作って動かして直してのサイクルの中に環境のアップグレードが入ってきたとき、はたしてシステムがちゃんと動くのか。<br>perl5.00503からperl5.6.xにすら上げられないところも現実に存在するくらいなので、結構な頻度で言語のコアなところに手が入っている現状はちょっと恐いです。<br>もっとも、伝え聞く話ではJavaも優秀とは言い難いようなのですが……。(それでも一応2つ前のバージョンまではメンテナンスリリースが出ているようです)<br><br>また、言語の是非以上にIDEの威力はデカいです。Eclipseを初めて使ったときは衝撃でした。コードの1/3はIDEが書いてくれますし、クラス/メソッド/変数等の各種名前のリネームや、メソッドシグネチャの変更などもメニュー一発です。しかも解析がヒューリスティックではないので、エディタ等の置換とは比較にならない安心感があります。<br>使ったことはないですが、「おまえのコードのここがマズい」と指摘してくれるツールも各種あるようです。<br><br>ついでに、現実問題として、世の中の職業プログラマの2/3はプログラミングを知らないし、知ろうともしないので、一度一つの言語に固定されてしまったらなかなか他の方向には進めない、というのもあります。<br>企業が既にJavaに投資してしまっている(必須教育にJavaがあるとか)という点もからんで、なかなか他の選択肢を取ることが難しいのが現状ではないかと認識しています。

_ まつもと (2005-11-15 14:02)

指摘されたことには一理あると思います。<br>まとめると<br><br> * リリースエンジニアリング<br> * IDE<br> * (Javaしか知らない)レベルの低い職業プログラマ<br><br>ということだと思います。最後のものは私の関知するところではないので無視するとして。<br><br>リリースエンジニアリングが理由になるケースがないとはいいませんが、Perlの方が行っているように古いバージョンで固定する手法はRubyにも適用可能なので(Rubyも1.9/1.8/1.6をメンテしています。1.6はセキュリティパッチのみですが)、致命的とはいえないと思います。<br><br>IDEについては重要視する人がいるのは分かります。私自身はIDEを使う人ではないので断言は避けますが。<br>ただ、FreeRIDE, RDE, KomodoなどRubyを支援したIDEも登場してきているので、状況は変化するかもしれません。<br><br>でもねえ、それだけ良い点があるんだったら、どうして私の耳にJavaプログラマの愚痴が大量に届くのよ、というのは純粋な疑問として残ります。私の立場を考慮したとしても。なんで?

_ 匿名希望 (2005-11-15 15:31)

えーっと、一つ目は私が(現状では)rubyを選びたくない理由で、Javaを選びたい理由ではないです。<br># 1.8.2→1.8.3は、私がもしこれで組んだシステムの<br># お守りやってたら確実に発狂もーどだったであろう、<br># と思いながら眺めてました(^^;<br><br>で、2つ目と3つ目について。まつもとさんは3つ目をさっくり無視されてますが、こいつが実は、<br><br>> お仕事環境では「やっぱりJavaでないと」という<br>> よく分からない圧力があるようだ。<br><br>この圧力の最大の要因だと思っています。「誰がそれをメンテするのよ」「それだと子会社が使えないでしょ」という台詞を何度聞いたか。ヘボだろうが何だろうが数は『正義』orz<br><br>IDEの件も、3つ目の要因があるからこそ、Javaが選ばれる強い動機になっているのではないかと。あと、選んでるのはプログラマではない、という点も重要でしょう。<br><br>Javaプログラマが愚痴たれるのはとってもよくわかります。1/3はIDEが書いてくれても2/3は自分で書かないといけなくて、でもLLを使えば全部で1/3で済むはずなので。<br><br>しかし、そういう部分はプログラミングを知っているプログラマしか理解してくれない(できない?)ので、Javaを「選ばない」理由にはならないんですよね……。

_ まつもと (2005-11-15 15:52)

ある個人が一つ目の理由でRubyを選ばないというのは分かります。でも、バージョン間の違いがもっと大きいPHPを選ぶ人もいるんで、「よく分からない圧力」を十分に説明していないんですよね。<br><br>あと、この「よく分からない圧力」は、アメリカでは仕事でばりばりRubyしてるユーザが目立つが、日本では少ない原因を仮にそう呼んでいるので、そういう観点から「匿名希望」さんの意見を眺めると、アメリカと比較して<br><br> * 日本の職業プログラマのレベルが低い<br> * 日本では技術的な重要な選択(たとえば開発言語)を技術が分からない人が行っている<br><br>というような、あまりうれしくない「事実」が引き出せるんですが...。<br><br>やっぱ、そうなんですかねえ。<br><br>私としては「本当は日本にも多いんだけど日本人は恥しがり屋だから」というようなことを期待したいんですが、無理筋ですかねえ。

_ 通りすがり (2005-11-15 16:26)

Paul Grahamのエッセイなんかを読む分には、アメリカでも「声の大きくない人たち」の現状は似たようなものに感じますが。単に市場のサイズか何かなのでは?<br><br>それとまつもとさんに限ってはEmacsがIDEだという感じがしますが。

_ 通りすがり (2005-11-15 16:29)

「Ruby より Java が先に普及した」というだけのことじゃないですかねぇ。日本とアメリカのラグは大きなスパンでみれば誤差かもしれないし、あるいはアメリカ全体としてみたら日本と変わらないのかもしれない。<br><br>言語というのは仕事をやる上では本質的ではない割に、みんなが共通の言語に習熟していないと仕事ができないという点でやっかいなものなんですよね。TCO まで考えると、より筋の良い言語に移行したほうが良くても、移行時にかかる瞬間最大風速的コストが捻出できなかったりする。レベルというよりも政治力の問題。<br>トータルコストはコストの積分ですが、圧力はコストを微分すると算出できるんじゃないかと思います。ただ、こういうのはえてして実際より傾斜がきつく見積もられる傾向があって、それが「よく分からない」原因なのかもしれませんね。いずれにしても啓蒙重要ということで。

_ 通りすがり (2005-11-15 16:35)

(2005-11-15 16:26) と (2005-11-15 16:29) は別人なのであしからず。

_ まつもと (2005-11-15 17:04)

「通りすがり」さんがいっぱいですね(笑)。<br><br>アメリカにもJavaで愚痴っている人はいる(らしい)ので、最初の「通りすがり」さんがおっしゃるように、市場サイズだけが問題である可能性は十分にあります。二番目の「通りすがり」さんがおっしゃるのも似たようなことですよね。<br><br>「よく分からない圧力」の正体を分析することは重要で、可能性としてはいくつか考えられます。<br><br> * 大局的にはプログラマの苦労・苦痛はどうでもよい<br> * 生産性は本当の関心事ではない<br> * イメージ、マーケティングなどが重要<br> * お金が入ってくることが最重要<br><br>だとすると、あまり広まっていないツールを採用して、高い生産性を実現することは差別化の武器になる可能性があります。こんなところにもビジネスチャンスが。が、そのときにも「よく分からない圧力」は忍び寄ってくるので、あらかじめ理論武装しておく必要があるでしょう。<br><br>あんまり手の内を晒しちゃいけないのかもしれませんが。

_ 通りすがり3 (2005-11-16 10:47)

>あまり広まっていないツールを採用して、高い生産性を実現することは差別化の武器になる可能性があります。こんなところにもビジネスチャンスが。<br><br>もちろんご存知だとは思いますがそれはPaul Grahamも「Beating the Averages」で言及していますね。<br>http://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html

お名前:
E-mail:
コメント:
[]

«前の日記(2005-11-10) 最新 次の日記(2005-11-12)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.