OO言語とメモリ割当

「ヒープ領域」「スタック領域」といっても結局、物理メモリ上の領域に対して VM等で役割毎に適切なデータ構造を割当て、物理メモリ上の領域を分割し、 分割したメモリ領域をデータ構造毎に呼んでいるだけ、結局は同じ物理メモリ上。

処理速度と拡張性・保守性

優秀なエンジニアは拡張性・保守性と処理速度を上手く両立させます。 拡張性や保守性のために処理速度を犠牲にするエンジニアは優秀な エンジニアとは呼べません。

プログラミングの真髄

短いロジック(少ない手数)で、求める結果(=最大の効果)を得ること。 ロジックが短いとは、表面上の短さでなくそのロジックで行われる処理 の総量が少ないことを指します。 短いロジックはロジックの実行に要する時間が短い、即ち、処理速度が 速い。 何もし…

OO言語における変数のメモリ領域確保のタイミングと変数の寿命

細かいところは間違っているかもしれないが、おおよそ次のとおり。 静的言語はJava、動的言語はRubyを基準に記述しているので それ以外の言語では若干異なります。 1)クラスがメモリ上にロードされるとき 静的言語の場合、このタイミングでstatic変数(静的変…

OO言語における処理速度向上

RubyでもJavaでも留意しなければならない点はほぼ同じ。 手続き型言語と同じで一連のロジックの中で処理の重複をなくすのは当たり前である ことがそこそこ意識されているのに対して、オブジェクトの生成回数を減らすことは あまり意識されないことが多いよう…

「たのしいCocoaプログラミング」の改訂版、発売中。 Leopard、Objective-C2.0、XCode3.1に対応。 改訂版が出るまで待っていました。 Amazonの書評で好評価ということもあり、購入しようと思ったら、 既にAmazonでは品切れ...。入荷時期未定ではあるものの、…

ECMA Script(≒JavaScript)の次期仕様に大変動

これまで次期仕様の本命と思われてきたECMA Script(ES)4の策定が 中止され、次期仕様の策定はMS・Yahooが中心となってWGを 発足したES3.1を叩き台(草案)にコードネームES Harmonyで 再出発することになったとアナウンスされています。 既に取り込まれないこ…

InstantRails

作者が開発終了の宣言をしたけど、引き継ぐ人が現れ、Rails2.0に対応する バージョンがまもまくリリースされるとのこと InstantRailsWiki: Instant Rails

XMLEventSubReader

XMLStreamReader改のXMLEventReader版を作ってみた。 import javax.xml.stream.util.EventReaderDelegate; import javax.xml.stream.events.XMLEvent; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLEventReader; import javax.x…

XMLStreamSubReader改

無いなら作ろう 無いなら作ろう(その2)を読んで <a> <b> <c> <b> </b> </c> ,</b> </a> に対応するようXMLStreamSubReaderを改造してみた。 import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; impo…

iPhone/iPod touchの公式SDKはMacOS X用

まず間違いなく、MacOS X用のSDKしか提供されない。 iPhone/iPod touchのOS、OS XはMac OSXの軽量版なので そもそもWindowsとは全くアプリのバイナリの構造が異なり Windows用のSDKを開発するのはコストが掛かりすぎる。 (プラットホームの差異を補完するク…

ORの代わりに正規表現 on SQL with Java

「column ~ '^(A|B|C)$'」はIN演算子で「column in ('A','B','C')」。 「column in ('A','B','C')」をPreparedStatement化すると 「column in (?,?,?)」、 「column ~ '^(A|B|C)$'」をPreparedStatement化すると 「column ~ ?」(PostgreSQLの場合)。 「REGEX…

WebBeans(JSR-299)プレ仕様におけるDI

XMLコンフィギュレーションを可能にしたGuiceという印象。 WebBeans仕様以降のJSRでのDIはWebBeans仕様のDIが お手本になると思われる。 "Guice2.0(?)" or "JBoss MicroContainer2.0"に期待。Gavin King氏とBob Lee氏の二人が組んで仕様策定しているので Web…

ORの代わりに正規表現 on SQL

SQLで正規表現を使えるDBでは正規表現を使うとSQLがすっきりする。 「column='A' or column='B' or column='C'」を正規表現で書くと 「column ~ '^(A|B|C)$'」(A,B,Cには正規表現エスケープが必須)。 「column like '%A%' or column like '%B%' or column li…

WEBアプリのUIコンポーネントの潮流

サーバーサイドでWEBアプリのUIコンポーネントモデルを構築しようと するのは時代遅れになりつつある。JavaのWEB系フレームワークの大半は未だにWEBアプリのUIの コンポーネント化をサーバーサイド上で行おうとしている。 JavaでWEBアプリのUIコンポーネント…

DIコンテナとフレームワークの関係のあるべき姿とは?

DIコンテナは本来フレームワークの背後でひっそりと動いてユーザにその 存在を意識させないのがベストだと思う。DIコンテナを前面に押し出して固有の定義ファイルを書かせているモノは フレームワークの設計が不味いような気が...。フレームワークの定義 フ…

何故、今、Rubyに注目するのか?

Rubyの実行速度が大きく改善されようとしているからです。 いくら言語仕様が良かろうと実行速度が遅ければ、個人的には 注目に値しません。Matz氏が2000年(平成12年度)の未踏でRuby実装のVM化の実験を 開始してからRuby実装のVM化をずっと待っていました。も…