タグ

programmingに関するEhrenのブックマーク (148)

  • プログラミング言語の特徴を、実行速度と簡潔さで見る

    プログラミング言語にはさまざまな種類、CやJavaPerlなど、が存在します。理想的なプログラミング言語の定義は条件やプログラマーの好みによってさまざまだとは思いますが、やはり実行速度が速いこと、できれば簡潔に記述できた方がよい、という条件に同意する方は多いのではないでしょうか。 さまざまなプログラミング言語のベンチマークを実行し、その結果を報告しているWebサイト「The Computer Language Benchmarks Game」を紹介しているのが、ブログ「Radium Software」の記事「プログラミング言語の特徴を視覚的に比較する」です。 「The Computer Language Benchmarks Game」では、ベンチマークの結果とそのコードの関係をグラフにした「interpret scatter plot shapes」というWebページが公開されています

    プログラミング言語の特徴を、実行速度と簡潔さで見る
  • プログラミング言語の特徴を視覚的に比較する - Radium Software

    The Computer Language Benchmarks Game のページでは,計 32 個のプログラミング言語処理系のベンチマークを集計して,そのパフォーマンスを比較している。そして最近,このページに新たなプロットが追加された。単純にパフォーマンスだけの比較を行うのではなく,パフォーマンスと「コードの長さ」を関連付けて比較を行うというものだ。上はそのプロットから一部を転載したもので,全体はこのページで見ることができる。 このプロットでは,縦軸が処理時間(上にいくほど遅い),横軸がコードの長さ(右にいくほど冗長)に割り当てられている。このようなプロットを行うと,多くの言語は3通りの偏り方を見せる ― 左上(簡潔だけど遅い)に偏る「スクリプト系」,右下(速いけど冗長)に偏る「システム系」,そして,左下(速くて簡潔!)に偏る「理想系」だ。ちなみに,右上(遅くて冗長)に偏る言語は無い…

    プログラミング言語の特徴を視覚的に比較する - Radium Software
  • すべてのプログラマが知っておくべき97のこと

    原文(投稿日:2009/09/16)へのリンク すべてのアーキテクトが知っておくべき97のこと (InfoQの記事)に続いて、「97のこと」シリーズの続編はすべてのプログラマが知っておくべき97のこと、だ。これらはwikiに集められて、誰でも貢献できるしコメントも受け付けている。 このwikiには既に(この記事を書いた時点で) 88 のエントリが集まっていて読まれている。例えば、 コードだけが真実を知っている by Peter Sommerlad氏 スピードは命取り by Uncle Bob氏 API設計の黄金律 by Michael Feathers氏 自分のIDEを知る by Heinz Kabutz 人々のためにテストを書くWrite Tests for People by Gerard Meszaros氏 InfoQは「すべてのプログラマが知っているべき97のこと」の編集者であるK

    すべてのプログラマが知っておくべき97のこと
  • 大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係

    はじめに 2006年8月、Javaの次期仕様(JDK7)にクロージャを入れる案*が出され話題になりました。クロージャは関数型言語では30年以上の歴史を持ち、プログラミングにおける基的な道具となっています。最近はPerlRubyPythonなどの軽量言語(Lightweight Language)にも取り込まれ、それと知らずに使っているユーザーも増えているのではないでしょうか。 一方、手続き型言語の世界では、完全なクロージャはなじみが薄いようです。C言語からC++へと発展してきた手続き型言語のメインストリームでは、 ガーベジコレクションを持たず、ローカル変数をスタックに置くことを基とする言語のため、クロージャとの相性が悪かった オブジェクト指向を採り入れることでクロージャの代用とできた といったことが理由でしょう。 実際、クロージャとオブジェクト指向プログラミング言語には、メカニズム

    大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係
  • ゲームで使うためのスクリプト言語開発とは〜 IGDA日本SIG-GTレポート | インサイド

    4月18日に、IGDA日のSIG-GT第13回セミナー、「続・ゲームにおけるスクリプト言語の現状」が開催されました。ゲーム開発でのスクリプト活用事例とともに、組み込みスクリプト言語の開発についても講演がおこなわれ、クロノ・トリガーやサクラ大戦Vでの事例、さらに現在開発が進んでいるオープンソースの「Xtal(クリスタル)」の開発舞台裏などが紹介されました。 ■SFC時代の組込スクリプト言語 スクウェアでクロノ・トリガーやファイナルファンタジーVIIなどの開発に携わった小久保啓三氏(現、HAL東京)が、クロノ・トリガー開発の際に作成した、キャラクタ(アクター)の並列動作を記述できるスクリプト言語「ATEL(Active Time Event Language/エーテル)」の文法と内部動作等を解説しました。 ATELは、バッチファイルやBASICプログラムぐらいの難易度で、キャラクタ同士の並列

    ゲームで使うためのスクリプト言語開発とは〜 IGDA日本SIG-GTレポート | インサイド
  • 優れたエンジニアになる方法と、その知識を伝達する方法

    世界で最も見られているWebページの1つ、Yahoo!のホームページを担当しているのが、同社のプリンシパル・フロントエンドエンジニアのNicholas C. Zakas氏。Zakas氏のブログ「NCZOnline」、8月21日付けのエントリは「What makes a great software engineer?」でした。 Zakas氏が考える優れたエンジニアとはどういう人なのでしょう? 彼のアドバイスはWebに関わるエンジニアに限らず、あらゆるエンジニアに共通するもののように思えます。 What makes a great software engineer? 長文のエントリの中から、ポイントとなりそうな部分を抜粋して紹介します。 Always do it the right way There's an "emergency" project, or something that

    優れたエンジニアになる方法と、その知識を伝達する方法
  • 3DCGプログラミング - FreeStyleWiki

    初歩の初歩から「3DCGとは?」と言ったことを説明していきます。 3Dの仮想的な世界を「シーン」と言ったりしますが、これをとある視点からとある方向を見て「2次元の絵」として描画することを「レンダリング」と言います。 シーン内には以下のような要素が存在しています。 視点 自分自身がいる位置と向いている向き、スクリーンのサイズ(幅と高さ)、視野角度などを持ちます。「カメラ」とも言います。 光源 呼んで字のごとく、光の元となる要素です。良く知られているものとしては、「平行光源」(Shadeで言う無限遠光源)、「点光源」「スポットライト」があります。これらは光源としての大きさを持ちません。これを拡張したものとしてはエリアライト(面光源)があります。エリアライトは、面積を持っています。その他、線光源・物体自身を発光させて光源にしてしまう、など、いうなれば何でも光源にできてしまいます。 物体 「オブジ

  • [ソフト開発] わかりやすいプログラムの書き方 - よくわかりません

    ※このエントリは、Arata Kojima/NPO法人しゃらく さんが公開しているわかりやすい技術文章の書き方の改変です。 このページは、プログラムやコードなどを書く方々のために、分かりやすいプログラムを書くためにはどうすればよいのかについて説明しています。 1. 自分が伝えたいこと・訴えたいことを誤解しないように相手に読んでもらうにはどうするべきか。 2. プログラムを書くにあたって知っておくべきルールは何か。 3. プログラムを書く前にどのような手順を踏めば、分かりやすいプログラムを作れるか。 などについて参考にしていただければ幸いです。 プログラムを書く前に プログラムを書く前に次のことをしっかりとイメージしておく。 何を書くのか。 書こうとしている物は正確に何であるのか。 仮定して良い、必ず成り立つ前提(状況/状態)は何か。 成り立つ事が単に多いだけ/今はたまたま成り立っている、と