2015-09-01から1ヶ月間の記事一覧

オープンソースの弱点(2)GUI

OSSが弱そうなところについて書いています。 日本語 GUI 運用 サポート のうち今回はGUIについて。 GUI 一般にOSSのGUIはあまり使いやすくないと思う。GNOMEも何が悪いのかは分からないが、なんか使いにくい。UbuntuのUnityもなんか使いにくい。 コミュニテ…

オープンソースの弱点(1)日本語

今やオープンソース・ソフトウェア(OSS)を無視して計算機は語れない。OSSを制するものが業界を制する状態だ。 ソフトウェアを作って売るという商売をしているとどうしてもOSSと比べて競争しようとしてしまう。縄張りに侵入してきている外敵に見えるのだ。…

大きいコードを書くには

前回、コードに垂直方向のスケーラビリティ――コード規模のスケーラビリティについての式を考えた。 Nがコードの規模、Wがそのコードを作る労力であり、wが単位規模のコードを作る労力、rがコードを加える際に既存のコードを調べたり・改造したりする割合を示…

コード規模のスケーラビリティ

前回、ソフトウェアの開発には水平方向・垂直方向のスケーラビリティがあると軽く触れた。水平方向のスケーラビリティとは人を増やせばそれだけ開発能力が向上するということで、垂直方向のスケーラビリティとはソフトウェアの規模が大きくなっても開発速度…

ソフトウェア開発のスケーラビリティ

人月あたりの生産量、1kステップあたりのバグ数みたいな指標は便利なのでよく用いられる。私も、 プログラマの生産性の公式 - 超ウィザード級ハッカーのたのしみ で単位時間あたりの動くコードの生産量といった数をおいた。単に数値を数値で割っているだけ…

ビルドツールに関数型プログラミングが向いている

世の中にビルドツールは数あれどどれも気に食わない。いっそのこと自分で作っちまおうかとすら思い、ビルドツールに必要な機能を考えている。 ビルドツールは手続きを書くのが主流だが、関数型プログラミングを意識して作った方が上手く作れるのではないか。…

プログラマの生産性の公式

n行の動くコードをコーディングするのにかかる時間をTとすると、Tはざっくり以下のようになるだろう。 T = n*(tc + tw) + n*b^2*(tc + tw + tb) + n*b^3*(tc + tw + tb) + ... = n*(tc + tw + tb) / (1 - b) - n * tb ここにtcはバグの有無を問わず1行のコ…

読まないドキュメントより読めるコード

ウォータフォール開発はとにかく仕様書を書くことが求められる。文章を書くこと自体は嫌いでないが、仕様書を書くことは嫌いだ。なぜなら、意味がないからだ。その仕様書を他の人が読んで意思決定が行われたり、その仕様書をもとに他の人が開発をするなら、…

機械が使うものか人間が使うものか

機械には 人間が使う機械 機械が使う機械 の2種類がある。 人間が使う機械とは、UI(ユーザーインターフェース)を持っている機械のことだ。従来道具と言われてきたものは、人間が使う機械である。自動車もスマートフォンもそうだ。 システムとして見た場合…

ITこそITで効率化せよ

情報通信技術(IT)の主な用途は既存の業務の効率化である。計算機は決まった作業を正確にするのに優れている。帳簿をつけたり、そろばんを弾いたり、書類を回送したりする作業は人間がするよりも機械がおこなった方が効率がよい。そのため、計算機はこれらの…

ブログの文章は1500字

ブログの記事にするのに調度良い長さというのはどれぐらいなのだろうか。 一般に文章は短くなっている傾向だ。比較的活字に親しんでいる年齢層が使う掲示板もコメントは3行以内だ。ほとんどの場合は1行である。ニコニコ動画のコメントは単語のみで、文にな…

OSSとは標準規格である(3)――OSSを作る側の幸福

企業としてOSSを開発することにどういった利点があるのだろうかということについて ソフトウェア規格の奪い合い OSSは最大多数の最大幸福を実現する OSSを作る側の幸福 の順に書いている。今回は3回目である。 OSSを作る側の幸福 OSSは利用者を幸せするから…

OSSとは標準規格である(2)――OSSは最大多数の最大幸福を実現する

企業としてOSSを開発することにどういった利点があるのだろうかということについて ソフトウェア規格の奪い合い OSSは最大多数の最大幸福を実現する OSSを作る側の幸福 の順に書いている。今回は2回目である。 OSSは最大多数の最大幸福を実現する ソフトウ…

OSSとは標準規格である(1)――ソフトウェア規格の奪い合い

OSSは今や当然の存在だ。ソフトウェアが欲しいときに最初に検討するのはOSSだ。OSSを無視して計算機システムを考えることは不可能だ。 OSSは篤志家が開発していることも多いが、最近では企業が争って開発に参加している。私がお世話になっているHadoopもほと…

「Infrastructure as Code」について

「Infrastructure as Code」という言葉を良く聞く。基本的にはバズワードは好まない。馬鹿だと思われるからだ。 ビッグデータという言葉は嫌い - 超ウィザード級ハッカーのたのしみ しかし、Infrastructure as Codeは好きだ。言葉というより、コンセプトに同…

深いネストは忌むべき

Zen of PythonはPython以外の言語であっても私がコードを書くときの指針である。 その一つに、 Flat is better than nested. という文句がある。深いネストはコードの可読性を著しく落とす。スクリーンの右のほうに文字が寄っているコードは大変読みづらい。…