タグ

Programmingに関するkmachuのブックマーク (154)

  • 「車輪の再発明をするな」の流行は孔明の罠 - きしだのHatena

    なんかの実装がオープンソースで公開されているときに、同じ機能の実装を行うのは「車輪の再発明」で無駄な行為だといわれた時期がありました。 でも、それは「再発明」ではなく「再実装」であって、とても大切な行為です。 車輪にしたって、ブリヂストンも横浜ゴムもタイヤの開発をいまもって続けてるわけです。タイヤだけでなく、ホイールからベアリングからドライブシャフトから、「車輪」の部品については、いまだにいろいろな会社が切磋琢磨して再実装を続けているのです。 世の中に出ているライブラリを自分で実装してみるとわかることは、自分の実装を持っているという強さです。 たとえ世の中のライブラリに機能的に性能的に負けていたとしても、自分の実装というのは自分のニーズに合わせるという点でとてもいい。特に、処理の途中の値を使えるというのがいいのです。ライブラリでは、入力したら出力が返ってくるまで中身が見れないですからね。

    「車輪の再発明をするな」の流行は孔明の罠 - きしだのHatena
    kmachu
    kmachu 2007/09/11
    「それは「再発明」ではなく「再実装」であって、とても大切な行為です」←激しく同意
  • Ruby と PHP の配列操作比較

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ (いやなブログ) 配列操作の比較表は自分のためにも作ったことはなかったので、別に混乱はしないけど、Ruby の分を残して PHP との比較表を起こしてみた。気づいてないだけでもっと賢く書く方法がありそうな気もするけど、とりあえず出しちゃえ。あ、バージョン書いてなかった。PHP4 です。5 は知らない。(マニュアルも見てない。)

  • Cは偉大な言語なのだ - K.Maebashi's はてなブログ

    タイトルはLife with UNIXからのパクり。 ついでなのでLife with UNIXから引用すると Cは、優れたオペレーティングシステムの七光で栄誉ある地位を築いただけの貧相な言語だなどといわれてきた。だが、それは正しくない。Cは偉大な言語なのだ。Cは実用性とやりすぎ(Adaを見よ)の間でちょうどよいバランスを保っている。処理系は簡単に実現できるし、なおかつ構造化プログラミングや変数の有効範囲、データ構造やモジュール化など、現代の高級言語のエッセンスをすべて組み込んでいるのだ。 Cはなにしろ処理系を作るのが簡単ですし、これで十分それなりの仕事はこなせるので、悪い方がよい原則に従い普及したわけですよね。これは不幸なことだったのかもしれないけど、じゃあどんな言語ならよかったのかというと、たとえば構文がbegin endになったからって嬉しいことは別になく、実用上の効果が出るには、配列

    Cは偉大な言語なのだ - K.Maebashi's はてなブログ
    kmachu
    kmachu 2007/08/22
    「ポインタでつまづくのは、アドレスがわからないためではなく、「intへのポインタに1足すと4進んだりする」といった、アドレスとは異なる挙動を示すところから」なるほど。
  • Object identity としてのポインタ - odz buffer

    hyuki (2007-08-20 (月) 06:23) ポインタは「オブジェクト」を実装しようとしたところで重要性に気づきますね。アイデンティティとしてのポインタ。 オブジェクトを識別するのに参照用の値を使うことが便利なのは分かるけど、ポインタは来参照するためのものであって、識別するためのものではないんじゃないかな。極端な話、すべての(もしくはある集合中に含まれる)オブジェクトにユニークな番号が振れればいいわけだし。 あと、構造体とか配列になると、別々の変数の参照が同じアドレスを指していたり。 #include <stdio.h> #define PUTS_BOOL(b) puts((b) ? "true" : "false") struct foo { int a; }; int main(void) { int a[10]; struct foo f; PUTS_BOOL(&a =

    Object identity としてのポインタ - odz buffer
    kmachu
    kmachu 2007/08/22
    アイデンティティって、「ポインタ」というより「ポインタが指しているアドレス」ということかな?
  • C言語とかいろいろ言及もと - 神様なんて信じない僕らのために

    kmachu
    kmachu 2007/08/21
    「C言語によるプログラミング 応用編」でポインタを勉強したなぁ。最初はchar[]で文字列関数を作って、次の章でchar*版を作る構成だった気が。
  • Cの老害? - 神様なんて信じない僕らのために

    答えなんてでないのは承知の上で、 言及というかスタンスで。 ちょっと前に入門にCはどうよ、というネタで盛り上がっていた、というかネタの拡散に一役買っていた気もするのだけども、ふと自分が以前書いていたネタを思い出したのでリンクを張っておく。 「初心者とC」の話 - odz buffer Cが初心者に優しくない、ということに対しては誰も異論はないと信じたい。 一番きついと思うのは、抽象化レベルが低すぎて低レベルな部分に関して知らないといけないことが多すぎること。勿論それにはそれなりの理由があるんだけれど、明らかにこれは初心者(とにはさん)の敵。 2007-08-02 - nihaaaaaaaa(のヮッ☆) Cってそんなに難しいかなぁ、 抽象化もアセンブリに較べたらまともで超がつくほど高級言語だとは思うけどなぁ、 ってそういう話では無いんだろうけど、 Cは言語仕様も小さいし、 不便だからこそ色ん

    Cの老害? - 神様なんて信じない僕らのために
    kmachu
    kmachu 2007/08/17
    「時代の流れと共にプログラマが一斉に馬鹿になる筈もない」←一斉にレベルが下がることは無いけど、人口が増えれば相対的にレベルが下がるとは思う。後半のWeb/組み込みの上下レイヤの話だと思うなぁ。
  • 今こそ問われるプログラミング雑誌の価値

    bit,C MAGAZINE,Computer Today,JAVA Developer,JavaWorld,PC Programming,Visual Basic Magazine(dotNET Magazine,Windows Developer Magazine),XML Magazine,日経バイト,マイコンBASICマガジン――。 以上に挙げたのはどのようなリストなのか,ITproの読者の皆さんなら何となく想像がつくだろう。2001年以降に休刊した,主なプログラミング雑誌のリストである。まだ漏れが多いだろうし,bitや日経バイトなどはプログラミング雑誌ではない,と言われるかもしれない。それでも方向性は共通している部分が少なくないので,あえてここに含めた。 上記のリストは,プログラミング雑誌が急速に減り続けているという事実を示している。もちろん,この期間には休刊と同時にいくつかのプ

    今こそ問われるプログラミング雑誌の価値
    kmachu
    kmachu 2007/08/03
    頑張ってほしいです。
  • Part2 Rubyに学ぶ「Ruby on Railsの正体」:ITpro

    電波系Rubyプログラマ。好きな言語はC++とLua。最近,仕事ではRailsでのWebアプリケーションの開発を主にやっています。Webアプリケーションばかり触っていると,ときどきアセンブラが恋しくなりますね。仕事にかまけているうちに,趣味で開発したいプログラムのネタが大量にたまっています。 Rubyで記述されたWebアプリケーションフレームワークRuby on RailsRails)が人気を博し,Railsを使うのに必要なRubyもまた話題になっています。Railsの作者であるDavid Heinemeier Hansson氏は「Railsには,Rubyと同じ感触,同じ匂い,同じ味わいがある」と言っています。この言葉には様々な解釈がありますが,筆者は,「Rubyのやりかた」を極限まで突き詰めてフレームワークに適用したのがRailsであると考えています。 Rubyは何かにつけ「人に優しい

    Part2 Rubyに学ぶ「Ruby on Railsの正体」:ITpro
  • ホワット・ア・ワンダフル・ワールド 全てのプログラミング言語は C コード生成器と割り切るべき

    これは至言だと思う. イネムリネズミ日記 2007-06-17 梅雨が中休みするなら俺だって 業務系のシステムを作りたい人には申し訳有りませんが、世界の進歩のスピードは言語の成長のスピードを超えています。バグのない、安定したプログラムを作りたければ、熟練したプログラマに C で書かせるのが最も良い選択肢でしょう。バグがあるかもしれないけど、とりあえずできればいいや、ナンチャッテ、次のリリースで直すから許してチョという代物は軽量言語で書くのを僕はお勧めします。 僕にとって、軽量言語とはそういうものです。 しかし,いくらなんでも C コードを最初から人間が手書きするような時代では無い.C/C++ では,マシン間の互換性を取るだけでも,ifdef の塊になるし. となると,Haskell とかで型システムなどによる検証済みの C コードを吐くとか,そういう方向になってくる.つまり,Ruby とか

    kmachu
    kmachu 2007/06/18
    「重要なのは仕様とプログラムの間の関係を明確にし,いかにして高い表現力の仕様記述から,高速なコードを得るための体系を作るか」
  • http://www.coins.tsukuba.ac.jp/~i021216/diary/?date=20070615

    kmachu
    kmachu 2007/06/18
    『例えば「プログラム開発において、どの言語が一番生産性が高いか」などはNG』 たしかに。
  • 404 Blog Not Found:電脳言語を嫁に例えると....

    2007年06月13日02:20 カテゴリLightweight Languages 電脳言語を嫁に例えると.... Dave Thomasにインスパイヤされて。 日 Ruby 会議 2007 - Log0610-S5 なぜRubyを愛しているのか - それは難しい質問だ。 なぜ奥さんを愛しているのか簡単には答えられないよね。 なお、「」となっているのは、私がたまたま「夫」だから。他意も鮃もございません。 以下、アルファベット順。夫に例えばバージョンや他の言語は読者の皆さんにおまかせします。 C 不器用 でも子だくさん。 他の嫁達の多くが、彼女の娘。 不器用だが、一番きつい仕事もしてくれるので、未だに娘達が家事を押し付けに実家にやってきたり。 C++ Cが高齢出産した娘 英才教育を受けたが、親の期待が大きすぎたのか、妙な行動を取る事も多く、美人なわりにもてなかった。 しかし親を吹っ切れ

    404 Blog Not Found:電脳言語を嫁に例えると....
  • プログラミング環境への妄想を書きなぐる - sshi.Continual

    http://d.hatena.ne.jp/textfile/20070612/manを見た。コードを書くのは好きだが、マニュアルやドキュメントを書くのはめんどくさい。いいきっかけなので、今かかえてる妄想を吐きだしておく。 実行可能なコードでありながら、 記述の抽象度が高く、 UML程度(あんま詳しくないけど)に把握可能な粒度の記述も可能な言語仕様であって、 そこにひとことふたことコメントを記述すれば、 そのままマニュアルとしても通用する なんていう言語は実現可能だろうか? まず、(今よくあるような)関数定義を羅列するスタイルだけでは、ちょっとのコメントだけでマニュアルとして通用するものにはならないだろう。少くとも、ぱっと見て期待する外部仕様がわかるようなもんじゃないといけない。例えばテストも同時に記述しないといけない、とか?あ、事前条件、事後条件とかを記述する言語もあったな。Eiffel

    プログラミング環境への妄想を書きなぐる - sshi.Continual
    kmachu
    kmachu 2007/06/12
    ソースコードは仕様書の代替にはなるけど、マニュアル (How to use it) の代替にはならない気がしてる。だとしたらテストスイートがマニュアルかなぁ?
  • 狐の王国 PHPが嫌われながら生き残る3つの理由

    #1 PHPが嫌われながら生き残る3つの理由 phpspotのひどい正規表現サンプル記事に対するはてブの反応 を見て、「PHPは生き残る」ことを確信にまで深めた。しかし、ただ生き残るのではない。嫌われながら生き残るのだ。その理由を書いてみよう。 @ 1. PHPは簡単に書けてきれいに書けない: これは多くのPHPプログラマが実感しているだろう。PHPはさくさくと書ける一方、メンテナンスを考慮してきれいに書こうと思うとなかなかきれいに書けたものではない。Perlほど柔軟な構文でもなく、Rubyほどきれいな構文でもない。PHPを嫌う理由の筆頭にあがってもいい項目である。だがとりあえず書けば動く。これは大きい。 @ 2. PHPの実装はひどいがとりあえず動く: バージョンごとに仕様がごろごろ変わる、セキュリティホールだらけ等々。とにかくひどいものである。それでもPHPは速いと信じてる人もいる

    kmachu
    kmachu 2007/05/31
    「PHPしか知らない人は、PHPを一通り書けるようになったら別の言語をやるべき」これはその通り。ユーザ層が低レベルに見えるのは、単純にユーザが多いからだと思うけど。
  • Static Programming Language for other,Dynamic one for mine - GoTheDistance

    ネタ元 境界を越える: Rails のケース・スタディー タイトルで言いたいことは「動的言語は自分のために作るソフト向き、静的言語は他人のために作るソフト向き」です。一言で言うと、いいたいのはこれだけ。 ある程度大きな規模の開発案件になると、「余計なことはプログラマにさせたくない」というテーマが持ち上がる。会社も違う今回初めて一緒に開発するエンジニアが多数おります。プロジェクトが終わればアディオスです。当然ですが、開発者によってコード品質の差があるのは大変よろしくありません。均質化が求められます。 よくも悪くも制限をかけることが重要になるので、コンパイル通す段階で問題検知をするってことがとても重要になります。一部の腐れた開発者はコンパイルの通ってない香ばしいソースをCVSやSVNにコミットします。ホントこれむかつくんだけどwwww 話題がそれましたが、最近はEclipse先生等のIDEが充

    Static Programming Language for other,Dynamic one for mine - GoTheDistance
    kmachu
    kmachu 2007/05/27
    「、「余計なことはプログラマにさせたくない」というテーマが持ち上がる」そうなんだよねぇ。こういうのを解消すべきなんだろうけど。顧客のことを思ったら。
  • 大量生産される新卒デビューJavaプログラマがぶつかる壁 - GoTheDistance

    ちょっと前にはてブで人気だったこの記事。 ■Javaスクールの危険 私のような新卒でIT業界に入ってきてJavaでプログラムを覚えた人間、即ち大量生産されるJavaプログラマは、恐らく以下のような状況にある or あったと思われる。 このエントリは、 大量生産されるJavaプログラマは業務上アルゴリズムでヒーヒー言う機会が少ない。分岐とループだけ分かればビジネスロジックの肝である「業務ルール」は表現できてしまうことが多いので、ソフトウェアの品質を高める問題解決アプローチの重要性を叩き込まれることが非常に少ない。Javaの主戦場であるWEBアプリではその傾向が強く、「プログラムで表現できる幅」が広がらないと感じている。しかし、ちゃんとしたアルゴリズムを勉強しないとコードで表現できる幅を広げることは難しいので、みんながんばろう! という話です。 文法が分からないと文が書けない とにかく覚えたの

    大量生産される新卒デビューJavaプログラマがぶつかる壁 - GoTheDistance
    kmachu
    kmachu 2007/05/25
    いい記事。
  • 技術者論

    僕が最初に入った会社では、産業用の生産装置の電気設計のエンジニアをやっていました。 新入社員で現場から入って溶接したり板金したり制御板作ったり、一からモノ作りを学んで、エンジニアとしての原点は今でもそこにあります。 生産装置ってで何が一番大事かと言えば、装置を利用されるお客様の製品を安定して生産すること、ただ一点です。 装置が壊れたときに、遠方、時には海外(日)にいるエンジニアが一々出張しないと直らないという装置は業務上のリスクに繋がります。だから、部品は簡単に交換できるように作るし、ソフトウエアもある程度であれば、その会社の保全のエンジニアがいじれるように作らなくてはいけません。 そういう中で、装置はそのままで、制御に使っているコンピューターを、その会社の標準仕様に合わせることが求められることがあります。 単純に企業の系列的な都合もあるし、保全のエンジニアがいじれるメーカーにあわせて作

    kmachu
    kmachu 2007/05/22
    「言語利用者にとってのプログラム言語自体は、ただの手段でしかありません。」←エントリーのターゲットに対しては、すごく同意。
  • これでDISられてると思うヤツはPHPユーザー失格 : ひろ式めもちょう

    404 Blog Not Found:そろそろPHPに関して一言いっとくか http://blog.livedoor.jp/dankogai/archives/50835571.html なんかコメント欄が荒れてるんだが…。どうして荒れてるのか皆目見当がつかない。 PHPをバージョン2くらいから使ってたら、 「そうそう。そのとおり。 だからPHPっておもしろいんだよねー」 っていうのがまっとうな反応かと。 そもそもPHPPHP/FI)の起源は 「Personal Homepage Processor」 で(「“ホームページ”はWebページのことじゃないよプギャー」な人には認めがたい事実だろうが)、 「個人のホームページで簡単にフォームを使っちゃおう」 程度のヘルパーアプリケーションなんだから(おまけにperlで書かれていた)。 Zendの登場や言語仕様の見直しで大規模開発にも耐えうるよう

    これでDISられてると思うヤツはPHPユーザー失格 : ひろ式めもちょう
    kmachu
    kmachu 2007/05/21
    タイトルに同意。
  • IT戦記 - じゃあ、僕も PHP について一言いっとくまうす

    はじめに 僕は、 PHP なんて大っ嫌いなんだから!って訳じゃないですよ><。 すごくいい言語だと思うし、プログラミングの入り口としては最高じゃないかなって思ってます。 おまけに、環境さえ整ってれば拡張子を html から php に変えるだけで、すぐプログラミングできるしね! ただ 僕にはもう PHP を始められないたった一つの理由があるんでつ>< それは PHP にはクロージャがない>< スクリプト言語なのに・・・。 クロージャがあれば 僕は諸手を挙げて PHP をやりたいです>< でも、でも、 クロージャのないスクリプト言語はもう触れない体になってしまったのです。 なんでって? だって、 function hoge(e) { : e.addEventListener('fuga', function() { e.piyo(); }, false); : } とかできない>< クロージ

    IT戦記 - じゃあ、僕も PHP について一言いっとくまうす
    kmachu
    kmachu 2007/05/21
    PHPでクロージャを使いたいケースってどんなのだろ?(クロージャ苦手なので思いつかない)
  • 404 Blog Not Found:そろそろPHPに関して一言いっとくか

    2007年05月21日04:00 カテゴリLightweight Languages そろそろPHPに関して一言いっとくか こんな記事まで出ていることだし。 [ThinkIT] 第1回:今だからこその「PHPのすすめ」 (1/3) プログラムをたしなまない方にご注意: こちらのPHPとはちょっと違います:-p finalventの日記 - そろそろPHPに関してもう一言いっとくか 各論 使うは天国、インストールは地獄 PHPが一旦インストールされたら、それを使うのは確かに簡単だ。普通にHTMLを書く感覚で <p>以下の環境変数が設定されています:</p> <pre> <?php while(list($k, $v) = each($_SERVER)){ echo "$k=$v\n"; } ?> </pre> とか書けばいい。しかし、PHPでいろいろやるためには、実際にはさまざまなライブラリ

    404 Blog Not Found:そろそろPHPに関して一言いっとくか
  • コードがドキュメント - odz buffer

    FizzBuzz 問題に関連して。 コードがドキュメント、な一派としてはやっぱり if i % 15 == 0: print 'FizzBuzz' よりは if i % 3 == 0 and i % 5 == 0: print 'FizzBuzz' かなぁと思う。同様に xrange(1, 101) と書くぐらいなら xrange(1, 100 + 1) のほうがよっぽど分かりやすいような気もする。 まぁ、要するにコードのインライン展開/最適化は人手でやらないほうが良いという話。

    コードがドキュメント - odz buffer
    kmachu
    kmachu 2007/05/16
    賛成ー。