2008-01-16
■ [ruby] おまいらはもっと型が無くても読みやすいソースの書き方について考察するべき
後、この後の話は、RailsというよりRuby、Rubyというよりスクリプト言語のことなんだけど、他人の作ったソースコードを読んだり、利用したりするのは、スクリプト言語は、Javaと比べてつらいと思う。型の情報がないから。標準ライブラリのように使い方が判っているやつならいいんだけど。
[2008-01-11 - ひがやすを blogより引用]
もう少し大きいので、Railsのソースなんかを読んでも「型宣言がないために読みづらい」という感じはしません。このへんはやはり慣れと作り方(命名の仕方とか、イディオムの統一とか)ではないでしょうか*3。
[Re: そろろろRailsについて本音を書いてみるか - moroの日記より引用]
この前bitclustのコードを読むのに苦労した俺としては、 型宣言がない言語は型宣言がある言語より他人のソースを読むのが大変、というのは、 (不等号でいえば)確実に真であると思います。 で、問題は「どのくらい」大変になるのかであって、 moroさんは命名の仕方とか、イディオムの統一でなんとかなるレベルである、と書いている。
「型宣言がないことを補うような命名の仕方とか、イディオム」についてもっと考えてみたいところ。
関連URL
とか、そういうことを書こうと思っていたのですが、元となったmixi日記を読んでみたらいろんなことを考えてしまって まとまらなくなったのでURLだけ貼って終わる。
あと大田@mixiさんの日記はすごく面白いので、ぜひ外部ブログを開設してほしいです:-) mixi会員にしか読めないなんて、世界(と太田さん)にとって損失だと思います。
考えたこと:
- Seasar2でLightweightな方向に近づくJavaと、Railsでエンタープライズに近づくRuby。両者はこれからどうなっていくのだろう?
- 「いわゆるエンタープライズ」で作られるプログラムは特徴があるらしい。
- とりあえずクラス数が死ぬほど多いらしい
- 登場人物と分岐と例外が多くて大変
- 複雑と煩雑の違い(深さが大きくて難しいのと、平面的だけどどにかく数が多くて難しいのと)
- Rubyは(もしくはLLは、もしくは関数型言語は) そういうプログラムに対して太刀打ちでき得るか?どのような機構/手法がそれを可能にするか?
- ポールグレアムのYahoo! Storeのことを考えたんだが、あれは煩雑ではなく複雑の方か
■ [prog] nanto_viさんに学ぶプログラミング言語の学習法
Kanasan.JS参加者なら既にご存知だと思いますがwnanto_viさんとはJavaScript(ECMAScript)の仕様に最強に詳しい方です。
JavaScriptの仕様をすらすらと語るnantoさんに「どうやって勉強したんですか?」と聞いてみたところ「2chのJavaScriptスレに張り付いてあがる質問を自分で解いていた。レスするわけではなかったけど。一通り行けるかなとおもったころで仕様書を読み始めた。」と感動する答えをいただく。
[wwwakuより引用]
なんと!
新しい言語を学ぶのに「問題集を解く」のは非常に有効だと思うんですが、 2chスレの質問を利用するという発想は無かったです。
「問題集」のこと
最近だとあなごるとかどう書くとか SPOJとかあって便利ですよね。
L-99http://suakx.com/node/218、 P-99(Prologのための99の問題)というのも非常に気になります。
これからは「〇個の方法」より「〇個の問題」の時代か!?
さらに飛躍するけど
こういう時にありがちなのが、「やってみようと思ったけど、既に誰かがやってるみたいだからいいや」という考え。 俺もよくあります^^;;
でも、時が経てば経つほど、解決済みの問題ってのは増えていくわけで…。 面白そうな問題だけど、人がやってるからやらない!ってのは勿体ないですよね。
それに、別の回答はそれはそれで回答者の個性が現れて面白いもの。意味がないわけではありません。
問題も回答も山のように手に入る時代、これからプログラマにおいては、 「似たようなものが既にある、でもそんなの関係ねえ!」というスルー力が重要になってくるんじゃないかな、 とそんなことを思った冬の夜。
---
[この段落は以下の記事にインスパイアされました] (結論が出るまで3ヶ月かよ、という)
この前はお疲れ様でした.<br>Eclipseに毒されて型のある言語しか触れなくなった者です.<br><br>やっぱりここはRubyにも型推論を.といってもHaskellのような厳密なものではなく,開発環境側で「あー,このFoo のインスタンス@bar はintっぽい」とか「ここで@bar でString を代入してんのはいいのか?」とかをおぼろげに判断して,ユーザに警告を促してくれるとか,変数にカーソルをあわせるとその変数の型と「おぼしき」ものを出してくれるとか,という支援があると読みやすくなりそうです.
はじめまして。「型宣言があるほうが良いのか無いほうが良いのか」について記事を書いてみました。Groovyの「オプショナルタイピング」についてご興味があればどうぞ・・<br>http://d.hatena.ne.jp/uehaj/20080119