パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

プログラミングのカルト宗派」記事へのコメント

  • 根性、苦行系がみつからない
    • by Anonymous Coward
      苦行系というか, ライブラリや他人のコードの再利用はせずなんでも自分で書きたがる人はいるよね.
      自前のXMLパーサーのメンテで働いたつもりになるのはマジでやめてほしい.
      そういうのが趣味なら余暇でやってくれよと.
      • by paprika (5024) on 2008年01月04日 17時44分 (#1275325) 日記
        反論。

        > 自前のXMLパーサーのメンテで働いたつもりになるのはマジでやめてほしい

        xercesを使ったときは二週間かかって全体の一割くらいしか理解出来なかったけど、
        “オレSAX”を作ったときは、三日くらいかかって、ほぼ完璧に動作した。

        車輪の再発名だし、最初は不安定化もしれないけど、自分自身が書いたコードだからこそデバッグしやすい。
        ヒトの作ったライブラリを習得して、生半可な理解で使ってるような暇があったら、自分で書いた方が速い/早い/正確ってことはある。

        私に言わせれば、XMLをパースすることが目的なのであって、既存ライブラリを利用することが目的なのではないと思ったりする。

        既存ライブラリを利用するのは「手段」、オレ様ライブラリを自作するのも「手段」

        どちらの手段を採用するかは、時と場合による。「自前のXMLパーサーのメンテ」の方が後々楽だと判断すれば、躊躇せずにそうする。再利用が常に最適解だとは限らない。

        親コメント
        • Re:あれ? (スコア:1, 興味深い)

          by Anonymous Coward on 2008年01月04日 21時33分 (#1275401)
          つ boost::spirit

          XMLパーサなら1時間で作れる。

          ってよりは字句解析及び構文解析ライブラリ

          ライブラリって実績のあるライブラリを利用することで質を高めるって面もあると思うけれど、
          ライブラリを理解することでライブラリを作った人の思想を理解すると言う面もあると思うんだ。

          それは自分のプログラムの幅を広げることでもあるし、
          上記のboost::spiritは特にその発想に驚愕したライブラリだったりして、
          そのライブラリコードに感銘を受けることはやっぱり大事だとおもうんだ。
          親コメント
          • by Anonymous Coward
            つbison+flex

            (似非)XMLパーサなら1時間で作れる。

            ってか、なんか論点ずれてね?
            • by Anonymous Coward
              XMLなんてやめて全部S式にすればいいんだよ!
              • by Anonymous Coward
                XML <-> S式相互トランスレータの実装ができますた。
          • by Anonymous Coward
            boost::spritは確かに驚愕でしたが、

             あれを駆使したコード、渡せる人は周りにいますか?

            と聞きたい。

            永久メンテナ志望ならいいですが、コードよりも自分の人生の方が大事。
          • by Anonymous Coward
            boost::spiritのソースを見ると、こりゃいかがなものかと思うぞ。
            まあ、確かに感銘は受ける。
            俺は一生かかってもこんなコードを書けるレベルには達しないだろうな。
        • by Offtopics (34135) on 2008年01月05日 1時18分 (#1275469)
          > 自分で書いた方が速い/早い/正確ってことはある。

          ↓ごめん、そうは思えなかった…
          「車輪の再発名」「最初は不安定化も」
          親コメント
          • Re:あれ? (スコア:2, 参考になる)

            by paprika (5024) on 2008年01月05日 1時39分 (#1275476) 日記
            ・他人のライブラリは習得に時間がかかるが、退屈なことが多い。
            ・自作のライブラリは実装に時間がかかるが、楽しいことが多い。

            ・他人のライブラリはまあまあ安定しているが、万一問題があったときに対処が難しい。融通が利かないことが多い。
            ・自作のライブラリは最初は不安定かもしれないが、その場ですぐデバッグしやすい。用途に応じて柔軟に対処できる。

            しばしば、頭ごなしに車輪の再発名を非難したがる人がいますが、私は、車輪の再発名は、エンジニアが成長する糧としても、実益の面でも、有効(な場合ある)と言いたいだけです。

            親コメント
            • by Anonymous Coward
              >しばしば、頭ごなしに車輪の再発名を非難したがる人がいますが、私は、車輪の再発名は、エンジニアが成長する糧としても、実益の面でも、有効(な場合もある)と言いたいだけです。

              まあ、作れるけど作らない奴が「車輪の再発明」って言うのと、そもそも作れない奴が言うのじゃ
              話が全く違ってきますしね。
              作れない奴が言ってたら単なるピエロ。
            • by Anonymous Coward
              変換ミスだと思いきや、本当に間違えて覚えてるだけなのかな。

              s/車輪の再発/車輪の再発/g;

              あと、「自分のライブラリ」を「他人がメンテする」、ってあたりのところを意識的にか無意識的にかスルーしてるのも気になるところ。
              確かに、自分のプログラムを自分だけがいじる小規模なプロジェクトなら、あなたの言うことも正しいとは思うのだけど。
              • by paprika (5024) on 2008年01月05日 14時33分 (#1275626) 日記
                > s/車輪の再発名/車輪の再発明/g;

                訂正しなかったのは私の責任ですが、間違えたのはATOKのせいです(笑

                > 「自分のライブラリ」を「他人がメンテする」、ってあたりのところを意識的にか無意識的にかスルーしてるのも気になるところ。

                ライブラリに限らず、プログラミングに限らず、あらゆる業務の「引き継ぎ」に関して、一般論として言えることだと思います。

                ちゃんとドキュメントを書いて説明するのは、作者の責任なのは理解しているつもり。
                ただ、既存ライブラリを採用したとしても、後任者もそれを習得するコストとメンテナンスするリスクを負わなければならないわけで、「既存ライブラリを採用したら解決!」という簡単な話ではありません、時と場合とライブラリの種類によるでしょう。

                親コメント
              • by the.ACount (31144) on 2008年01月05日 16時40分 (#1275663)
                >再発明
                利点/弱点を深く理解するには必要な事。
                >再発名
                まあ、非難されるだろうな。
                --
                the.ACount
                親コメント
              • by Anonymous Coward
                > 訂正しなかったのは私の責任ですが、間違えたのはATOKのせいです(笑

                でわ、ATOKを書き直すんだ!
        • Re:あれ? (スコア:1, すばらしい洞察)

          by Anonymous Coward on 2008年01月05日 3時29分 (#1275492)
          >> 「自前のXMLパーサーのメンテ」の方が後々楽だと判断すれば、躊躇せずにそうする。再利用が常に最適解だとは限らない。

          いや, あんただけがそのコードのメンテを永遠に担当するならおおいに結構,ご自由にどうぞ(納期だけはまもってね)なんですが,
          他人が書いたオレ様ライブラリを解釈してメンテ・拡張させられるチームの身にもなりなさいって.
          そのプロジェクトが自分の手を離れた後も, その俺様XMLパーサーなりの機能拡張とドキュメント化を黙々と
          勤務時間外にやってくれるならいいんですけどね.

          新たな機能を実装するためには, 往々にして他人が結局汎用ライブラリに差し替える作業を強いられると思うのよ.
          パーサー程度ならまだしも, スピード(メモリー)クリティカルな操作だと規模がおっきくなると俺様ライブラリは
          使いもんにならんということもままあるでしょう.

          (自分もすべては自分で作りたい派だし, 学生時代は3Dライブラリとか数値計算ライブラリを自分で作ってチューニングして
            やれフリーなlapackのへぼ実装よりだんぜん速いぜとかやってましたが, それは趣味であって, チームの仕事じゃない.)

          それでも俺の方が汎用ライブラリよりよっぽど洗練されたインターフェースのものを短時間で書けるというのであれば,
          あなたは独立ベンダーにでもなれば大儲けできると思うよ.
          親コメント
          • by paprika (5024) on 2008年01月05日 14時06分 (#1275609) 日記
            私だって“何を”作るかによって、既存ライブラリかオレライブラリかは使い分けますよ。

            暗号化通信しようと思ったら、さすがに私の手には負えないから、OpenSSLなりWinInetなりを使います。
            でも、XMLパーサ程度だったら、所詮文字列処理とコード変換くらいだから、自前の方がやりやすい。

            とか、あくまでも、必要に応じて、っていう話。
            親コメント
            • Re:あれ? (スコア:1, すばらしい洞察)

              by Anonymous Coward on 2008年01月05日 19時18分 (#1275691)
              元のACのコメント

              >> 他人が書いたオレ様ライブラリを解釈してメンテ・拡張させられるチームの身にもなりなさいって.

              で言ってるのは、「たとえばあなたが、プロジェクトの元メンバが書いたオレ様XMLパーサとそれを使っているコードを渡されたらどう感じるか」って話だと思うが、それでも

              > でも、XMLパーサ程度だったら、所詮文字列処理とコード変換くらいだから、自前の方がやりやすい。

              って言えるのかな?
              自前で作るなら、自分には確かに分かりやすいのは当然。しかし、 オレ様コードは、書く人は一人でその人にとっては最高なだけで、使う人・メンテする人にとっても最高とはならないんですよ。googleで検索するだけでトラブルシューティングやリファレンス検索、サンプルコード参照できる既存ライブラリに比べ、オレ様ライブラリは作者がそばにいない限りは足枷にしかなりません。もっとも、既存ライブラリがマイナーでメンテされてるかも良く分からないとか、コードが若くてバグが大量にありそうな場合はオレ様ライブラリでも良いとは思いますが。
              なので、チーム開発ならメジャーな既存ライブラリがある場合そっちを使うべきです(再実装することが手に負えるか手に負えないかじゃなくて、あくまで既存ライブラリがメジャーかそうでないかで使い分けるべき)。

              # などと言いつつ、私も他人の作ったオレ様ライブラリ(一応社内標準)を拒否して自分作ったオレ様ライブラリで置き換えることが良くあるのですが…
              ## だって他人の作ったオレ様ライブラリのデバッグなんてご免やし。
              親コメント
              • by Anonymous Coward
                教授!簡単化カルト儲を発見いたしました!
          • by foobar2006 (30156) on 2008年01月05日 20時00分 (#1275698) 日記
            カルト発見! と言わずしてなんと言おう。
            親コメント
            • by Anonymous Coward
              >カルト発見! と言わずしてなんと言おう。

              カルトじゃなくて原理主義でしょ。あの攻撃性は。
              「俺の宗教に異を唱えるおまえはサタンだ」とゆう感じで怖いですね~

          • 既製品のライブラリだって永遠にメンテ・拡張されるわけじゃないぜ。

            フリーにしろそうでないにしろ、既製品の有名なライブラリは多機能すぎることが多い。
            リヤカーで十分なのに、大型トラックを引っ張り出してくることもあるまい。
            親コメント
          • by Anonymous Coward
            > あんただけがそのコードのメンテを永遠に担当するならおおいに結構

            お前バカだな。
            誰が書いたかわからん既存のライブラリと、奴(paprika氏)が書いたライブラリで、
            メンテ・拡張する側になんの違いがあるって思うんだよ。

            汎用ライブラリより専用ライブラリの方が、
            要件に洗練されて最小限の実装になるのは当たり前だろう。
            汎用って言葉の意味知ってるのか?

            > パーサー程度ならまだしも, スピード(メモリー)クリティカルな操作だと規模がおっきくなると

            そんなでっかい奴を自前で書くわけないだろ。
            論外な例を持ち出してくるなよ。
        • by Tatenon (20311) on 2008年01月07日 19時13分 (#1276560) 日記
          自分で作れるだけの技量を持たない人間が、どこの馬の骨が書いたかわからんようなライブラリを正しく使えるのかってのも
          よくよく考えて欲しい所ですよね。

          『みんなが使ってるライブラリなんだから、正しい動作をするだろう。出力は正しいのだろう』

          などという妙な断定で使うなら、問題が発生したときは泥沼化すること請け合いです。
          ライブラリってのは自分でも作れるけど同じもの書くなら出来合いのもの使ったほうが色々手間が省けるよねっってのが本来の使い方ではないかと。

          なので使い方理解するのに一週間かかるようなライブラリなら、3日で作れる俺コードで正解だと思いますけどね。私は。
          まぁ、もちろんデバッグ込みでの話ですが。(3日で作ってデバッグに10日では本末転倒

          # いっぺん自分で書くとライブラリの有難味もまたひとしおだしね。
          親コメント
          • by Anonymous Coward
            使い方理解するのに一週間かかるライブラリを、3日で書き上げることができるか?という疑問があります。 それに、単機能の使い方ならサンプルコード読んだり簡単なテストプログラム作って半日くらいで習得できるようなのが大半じゃないでしょうか?もちろん機能の大半を理解するのにはもっとかかるでしょうけど、C++の標準ライブラリ同様、すべて理解しないと使えないってものじゃないですし。

            ライブラリってのは自分でも作れるけど同じもの書くなら出来合いのもの使ったほうが色々手間が省けるよねっってのが本来の使い方ではないかと。

        • by Anonymous Coward
          >ヒトの作ったライブラリを習得して、生半可な理解で使ってるような暇があったら、自分で書いた方が速い/早い/正確ってことはある。

          言いたいことは分かりますが、ほどほどにしないと、後任や補佐が付けられなくて、休めない、辞められない、昇進しない、という泥沼にはまります。

          まあ、後任も俺様ライブラリを書ける人なら良いんですけどね。

犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー

処理中...