バグ

バグばぐコンピュータ

プログラム作成者が行った作業のミス。

見つかった時点でバグと言う。バグを見つけるのも、バグを取るのも大変だが失敗を生かすのがもっと大変だと言われる。

原義

元々の意味は、虫による不可抗力的エラーの意味。

真空管を部品に使っていた頃、コンピュータ内部に蛾のような昆虫が入り込み回線に触れてショートを起こすような事態があった。それによって発生したエラーのみを本来はバグと呼んでいた。プログラマープログラミングミスはそのまま人為的ミスとして障害報告しなければならなかった。

しかし、あまりにもプログラミングミスが多い場合、査定にも関係するので、障害報告の際にはバグに責任転嫁する慣習が生まれた。これは技術的なことは何も知らない上層部には通用したが、同じプログラマー間では、バグ=プログラマーの人為的ミスと言う隠語的定義が成り立っていった。

余談でも触れているが、エドガー・ダイクストラは「バグと呼ぶなミスと呼べ」と言っている。これは、プログラムのミスは明らかに人為的なものであるにも関わらず、バグと呼んだ場合あたかもそれが自然発生したような印象を与えるからであり、プログラマーの職業意識を高める役には立たないからである。

バグのないプログラムを作るには。

あるプログラムのバグの含有量は、プログラムの長さに比例する。

バグの含有量を下げるには、プログラムを短くすればいいことになる。

すなわち、よいプログラムとは短いプログラムのことである*1

プログラマーは短く簡潔にプログラムを記述せよ。

その2

  • コメントはたっぷりと。一週間後の自分は赤の他人。
  • 機能は細かく切り分けるべし。一つ一つが短ければそれは信頼性につながり、またバグが発生した際に発生箇所の特定もやりやすくなる。

余談

人間は失敗をする物だ。しかし、その失敗をバグという言葉で、あって当然と思ってしまったら進歩は無くなる。回路設計者が作るハードウェアの試作製造が高価だった頃は最悪失敗作を作りましたと言っていた。

いつのまにやら、ハードウェアの試作が再プログラミングできるASICになると、ハードウェアエンジニアさえもバグと言うようになった。利用者がバグというのは良いとしても、技術者がバグという言葉を使っちゃいけないと思う。間違い、ミス、考慮不足、予防策不足、フロー設計ミス、エラー処理設計ミス、要求定義ミス・・・そういう風に正しく理解しなくては失敗を生かす為に必要だと思われるがいかがだろう。

デバッグは対策ではない。デバッグは対処です。そしてまた、バグのある製品がユーザーの手に・・

類似品

ウィルス仕様、セキリティホール、脆弱性不具合

関連語

デバッグ、テストファーストXP仕様書、要求定義、事故調査、原因解明、ミス、ブラックボックス、プログラミング

*1:出てくる結果が同じである限りは

リンクスコア:29

「バグ」を含むブログ RSSフィード

2010-02-10

「バグ」を含むキーワード (169語中100語)

MMORPG, イャンガルルガ, Windows98, オタクの常識, Windows Home Server, 飛鳥空, 大塚周夫, オーソン・ウェルズ, 裏窓, VisualVox polyphonic, unfuddle, アネ゛デパミ゛, アッバース朝, アルビン/歌うシマリス3兄弟, Webビーコン, 岩永悦宜, enbug, エンバグ, Ada
クイズマジックアカデミーDS, 影舞, 黒歴史::ゲーム, 黒歴史::コンピュータ, くれよん〜空の芸術〜, 黒歴史::ゲームソフト, 楠大典, Continue?, 緊急発進セイバーキッズ, クロスボーン・バンガード, GitHub, カビチュウ, コンマイクオリティ, KompoZer, けつばん
JavaScript, 小数点NEW!, GTS, 沢木郁也, 世界樹の迷宮II 諸王の聖杯, 塩屋翼, Starbug1, ジャンライン, ジョン・スタージェス, 実践バグ管理, THERE_IS_A_BUG_AT_HERE, スチムー, sourceforge.jp, CID, SummerDays, Generics, それは仕様です, 正義警官モンジュ, スパイダーライダーズ 〜オラクルの勇者たち〜
ドラゴンクエストIX, トヘロス, トライエース, テイルズオブエターニア, テイルズオブファンタジア, デイナ・アンドルーズ, Trident, TestLink, デグる, デスクリムゾン, ダメタマゴ, チェルシーさんは7の魔神をブッ殺さねばならない。, w3m, Trac月
ニコニコ大百科, 二文字キーワード, ぬるぽ
発売延期, Final Fantasy IV, Brinks-3D6H-SD1B.ISO, Final Fantasy VIII, 浜崎慶美, はかぶさの剣, funnel, パンドラプロジェクト, はてなダイアリーへの要望(対応済み), バンプレスト, パンドラサーガ, はてな伝説, Pentium, ビックリマンシール, BTS
マビノギ, メタモン, マホトラ, 麦人, Mantis, マジック:ザ・ギャザリング, ミュウ, Miles Davis, MediaWiki, ムシウタ
ロードス島戦記-英雄騎士伝-, ラスト サムライ, リグル・ナイトバグ, Launchpad, リスト::世界遺産