グレートプログラマは複雑な問題に簡単な解決策を見つける

2009年6月30日でプラシャント
報告Filed under: miscの

私は以下のソースを見つけることができる長い時間後に引用符

ジュニアプログラマは単純な問題にシンプルなソリューションを作成します。 シニアプログラマが複雑な問題に複雑なソリューションを作成します。 グレートプログラマは複雑な問題に簡単な解決策を見つける。

これはと呼ばれるエッセイですから美しいソフトウェアコンネルシャルル。

1つの鉱山の好きなもう1つのですPythonの禅-

美は醜いよりはましだ。
明示的、暗黙的なよりはましだ。
シンプルで複雑なよりはましだ。
コンプレックスは複雑よりも優れています。
フラットは、ネストされたよりも優れています。
疎は密よりも優れています。
読みやすさのカウントされます。
特殊なケースは十分に規則を破るに特別されていません。
実用には純度を打つが。
エラーが静かに渡すことはありません。
限り明示的に黙らせた。
あいまいさの顔で、誘惑を推測することを拒否します。
1つおよび好ましくは1つだけ明確な方法でそれを行う必要があります。
その方法は明らかまず、オランダでもない限りではないかもしれませんが。
今はないよりはましだ。
多くの場合より*右*は今はないが。
実装は説明しにくい場合は、それは悪いアイデアだ。
実装が簡単に説明された場合、それは良い考えかもしれません。
名前空間は、1つの警笛を鳴らす素晴らしいアイデア - それらの多くを行うのを聞かせている!
-------------------------
と、そこの古典であるタオプログラミングの

-

上のようにクレジットリンクサイト

ジェフリージェイムズ訳

デュークヒラード転写された

Sajitha大麻Anupamのトリベディ、、およびMeghshyamのジャガナート送信

再htmlの化された編集Kragenシトラーで

-

予約1 - サイレントボイド

したがって、マスタプログラマはspeakの過去形:

"いつトラップフレームからのエラーコードを奪うことを学んだこと
れることの時間を残しています。"

1.1

何かが神秘的な、サイレント無効に生まれ形成される。 一人で待っている
動かない、それは一度も、まだ一定の動きです。 これは、ソース
すべてのプログラム。 私は、その名を知らない、私はそれタオを呼び出すので
プログラミング。

タオ準教授は偉大なの場合、オペレーティングシステムは素晴らしいです。 場合、オペレーティング
システムは素晴らしいし、コンパイラが素晴らしいです。 コンパイラは、偉大な場合は、
次に、アプリケーションは素晴らしいです。 ユーザーが満足しているが存在する
世界の調和。

タオプログラミングの遠くを返します朝の風に流れている。

1.2

タオ準教授は機械語を生んだ。 マシンの言語を出産
アセンブラ。

アセンブラ、コンパイラを出産した。 今では万です
言語。

各言語は、しかし謙虚なその目的をしています。 各言語の表現
陰と陽のソフトウェア。 各言語にはタオ以内に、その場所がある。

COBOLでしかししないプログラムを、それを避けることができる場合。

1.3

初めにタオした。 タオ準教授は空間と時間を出産した。
したがって、空間と時間は、陰と陽は、プログラミングしています。

タオを理解しないプログラマは、常にタイムアウトの実行している
そのプログラムのスペース。 いつもタオを理解するプログラマ
十分な時間と空間をその目標を達成する必要があります。

どうしてそれがそれ以外の場合はできますか?

1.4

賢明なプログラマはタオについて語られていると、それに従います。 平均
プログラマはタオと検索に関するそれのために語られている。 愚かなプログラマー
タオについて語られている、それを笑う。

それは笑いがなければ、ないタオだろう。

最高の音が一番耳にしています。
行く転送方法撤退することです。
グレートの才能が人生の後半自体を示しています。
も完璧なプログラムはまだバグがあります。

-------------------------

2冊 - 古代マスターズ

したがって、マスタプログラマはspeakの過去形:

"プログラミングなしで3日後に、人生は無意味になります。"

2.1

古いものは神秘的で深いれたのプログラマー。 我々は理解できない
自分の考えなので、すべての私たちか、その外観を記述します。

認識し、狐川を渡るように。 警告に関する一般的なように
戦場。 種類、ホステス彼女のゲストを迎えるように。 シンプルな
木のuncarvedブロック。 不透明、暗い洞窟の中に黒いプールのような。

誰が彼らの心と心の秘密を伝えることができる?

答えはタオにのみ存在します。

2.2

グランドマスターチューリングはかつて、彼はマシンが夢見ていた。 彼は彼が目を覚ました
叫んだ:

"私はどうか私は、マシン、または午前夢チューリングのか分からない
マシンは、私はチューリング午前夢!"

2.3

非常に大規模なコンピュータ会社からのプログラマは、ソフトウェアに行きました
会議して上司に報告に戻った、と言っ:"どのような
他の会社のプログラマーの仕事の? 彼らは行儀が悪いとされた
出演で無関心な。 自分の髪は長く、ボサボサとしたその
服はしわされ、古い。 彼らは、私たちのホスピタリティスイートをクラッシュも
私のプレゼンテーション中に行われた失礼なノイズ。"

マネージャーは言った:"私は会議に送信されることが必要です。 それらの
プログラマは、物理的な世界を超えて生きている。 彼らは人生は、不合理な考え
偶然の一致。 彼らが来ると限界を知ることなくしてください。
介護がなければ、彼らは彼らのプログラムのために生きる。 なぜ彼らはわざわざ必要があります
社会慣習と?

"彼らは生きているタオにあります。"

2.4

初心者がマスター質問:"ここのデザインはないプログラマは、
ドキュメントやテスト彼のプログラムを。 しかし、すべての人々、彼は彼の1つを考慮知っている
世界で最高のプログラマー。 これはなぜですか?"

マスターの返信:"それは、プログラマがタオをマスターしています。 彼が行っている
彼は怒ってならないデザインの必要性を超えて、ときにシステム
クラッシュが、気にせずに宇宙を受け入れます。 彼は超えている
他の誰彼のコードを見れば、ドキュメントの必要性が、彼はもはや心配。
彼はテストの必要性を超えてきがて、それぞれ彼のプログラムの最適です
自身、穏やかな、エレガントな中に、その目的は自明。 本当に、
彼はタオの謎に入っている。"

-------------------------

3冊 - デザイン

したがって、マスタプログラマはspeakの過去形:

"プログラムがテストされているが、それもデザインをするために遅れている
変更されます。"

3.1

かつてのコンピュータトレードショーに行った男がいた。 彼の毎日
入力された、男はドアガードを語った:

"私は偉大な泥棒、万引きの私の偉業のために有名です。 ください
あらかじめご了承、このトレードショーunplunderedエスケープしてはならないの。"

そこに何百万人のしたため、この演説は大きく、ガードを乱す
内部コンピュータ機器のドルは、彼は慎重に男を見た。 しかし
男だけでブースからブースへさまよい、静かに自分自身にハミング。

男が左に、ガードはさておき、彼を取り、彼の服を探したが、
何も発見された。

トレードショーの次の日、男が戻ってガードをたしなめた
と言って:"私は広大な戦利品昨日エスケープが、今日もされる
良い。"ガードがこれまで以上に密接に、彼を見ても無駄にだから。

トレードショーの最終日には、警備員は彼の好奇心を抑えることが
もはや。 "サー泥棒"と、彼は、"私は当惑、私は生きることはできないと述べた
平和。 どうか私を啓発する。 何があなたが盗んでいることですか?"

男は笑った。 "私のアイデアを盗んでいます"と彼は言った。

3.2

かつてのプログラムを構造化書き込みマスタプログラマがいた。
初心者プログラマは、彼を模倣し、求めても書くようになった
非構造化プログラム。 時初心者が評価するためにマスタを尋ねた彼
進歩は、マスタは非構造化プログラムを書くために、彼を批判
、"何がマスタに適していると言っ適切ではない
初心者。 あなたはタオ構造を超越する前に理解する必要があります。"

3.3

かつて武将の裁判所に添付されたプログラマがいた
呉。 武将は、プログラマを質問:"どの設計する方が簡単です:
会計パッケージまたはオペレーティングシステム?"

"オペレーティングシステム"プログラマが答えた。

武将は信じられないの叫び声をあげた。 "確かに会計
パッケージには、些細なオペレーティングシステムの複雑さの横に、"、彼
と述べた。

"そんなことない"と述べたプログラマー、"ときは、会計パッケージを設計する
プログラマは、人々の異なることの間の仲介として動作
アイデア:どのように動作する必要があります、どのようにそのレポートは、表示する必要が、どのようにする必要があります
税法に準拠。 対照的に、オペレーティングシステムが制限されていません
外部出演した。 時のオペレーティングシステムを、プログラマが設計
マシンやアイデアの間の単純な調和を目指しています。 これはなぜ
オペレーティングシステムの設計が容易です。"

呉の武将はうなずいたと微笑んだ。 "それはすべての良いともですが、
どのデバッグしやすいですか?"

プログラマはない返事をした。

3.4

マネージャは、マスタープログラマーに行って、彼に要件を示した
新しいアプリケーションのドキュメント。 マネージャはマスタ質問:"どのくらい
私はそれに5つのプログラマを割り当てる場合は、このシステムを設計することがかかりますか?"

"これは1年かかりますが、"マスター速やかに述べた。

"しかし、我々はすぐに、あるいは早くこのシステムを必要とする! 期間はどのくらいに
私が割り当てる場合かかるがそれにプログラマを10?"

マスタプログラマは眉をひそめた。 "そのような場合では、2年かかる"と述べた。

"そして、私はそれを100プログラマを割り当てるか?"

マスタプログラマは肩をすくめた。 "それから、デザインは決して
完了すると、"彼は言った。

-------------------------

予約4 - コーディング

したがって、マスタプログラマはspeakの過去形:

"よく書けたプログラムは、独自の天国です。にくいプログラムは
独自の地獄"。

4.1

プログラムは、光と機敏する必要があります、そのサブルーチンのように接続
真珠の文字列です。 精神とプログラムの目的は、保持する必要があります
全体。 そこもすぎたりしすぎると、少しする必要がありますも
不必要なループも無駄な変数、構造体ものどちらの欠如
圧倒的な剛性。

プログラムは、'最小驚きの`法に従ってください。 何がこの法律ですか?
これは単にそのプログラムは、常に方法でユーザーに対応するはずです
それは、少なくとも彼を驚かせる。

プログラムに関係なく、どのように複雑で、単一のユニットとして行動しなければならない。 プログラム
ロジックによって以内に監督する必要がありますむしろ外見よりも。

プログラムがこれらの要件に失敗した場合、それは国家のされる
障害と混乱。 唯一の方法は、これが書き換えている修正する
プログラムです。

4.2

初心者がマスターに尋ねた:"私はいつかと実行するプログラムを持って
時には中止されます。 私は、まだ私はプログラミングのルールに従っている
全く困惑。 これは何の理由ですか?"

マスターは答えた:"あなたはタオを理解していないため、混乱している。
のみ愚かな者は彼の仲間の人間から合理的行動を期待します。 なぜあなたは
マシンは、人間が構築してからそれを期待? コンピュータをシミュレート
決定論は、唯一のタオ準教授は最適です。

"プログラミングの規則は一時的です。のみタオは永遠です。 従って
あなたが悟りを受信する前に、タオを熟考する必要があります。"

"しかし、どのように私は私が悟りを受けて知っているのだろうか?"と聞か
初心者。

"あなたのプログラムは、正常に実行される、"マスターは答えた。

4.3

マスタは、彼の初心者へのタオの性質を説明した。 "
タオは、すべてのソフトウェアに組み込まれて - に関係なく、という方法を取るに足りない"
マスター。

"タオは、ハンドヘルド電卓のですか?"初心者を求めた。

"それは、"返信が来た。

"タオは、ビデオゲームのですか?"初心者を続けた。

"それも、ビデオゲームでは、"マスターは言った。

"そして、タオDOSでパソコンのですか?"

マスタは、咳、少し自分の立場を移した。 "授業が終わって
今日は、"彼は言った。

4.4

王子Wangのプログラマはソフトウェアをコーディングした。 彼の指がに踊った
キーボード。 プログラムがエラーメッセージを表示せず、プログラムコンパイル
穏やかな風のように走った。

"優秀な!"と王子は、"あなたのテクニックは非の打ち所のないです叫んだ!"

"テクニックは?"プログラマが自分の端末から、"転換とは何
に従ってタオです - すべてのテクニックを超えて! 私が最初にプログラムを始めた私
私の前に1つの質量の問題全体を見るでしょう。 3年間、私は後
もはやこの質量を見た。 代わりに、私はサブルーチンを使用します。 しかし、今私は何をしてください。
私の全体がされて混沌無効に存在します。 私の感覚がアイドル状態です。 私の精神は、
計画なしで動作し、自由に独自の本能に従う。 一言で言えば、私のプログラム
自分自身を書き込みます。 確かに、時にはある困難な問題があります。 私はそれらを参照してください
来て、私は遅く、私は黙って見て。 それから私は1行のコードを変更する
や困難がアイドル状態の煙のパフのように消える。 私はそれをコンパイル
プログラムです。 私はじっと座っていると仕事の喜びは私の健康を埋めることができます。 私は近い私
一瞬目をして、ログオフします。"

王子王は、"かは、すべての私のプログラマとして賢明された"と言った。

-------------------------

予約5 - メンテナンス

したがって、マスタプログラマはspeakの過去形:

"プログラムには3行の長さが、いつかそれはする必要があります
維持した。"

5.1

よく使用されるドアは、ヒンジには石油が必要です。
迅速に流れているストリームが停滞することはありません。
どちらもサウンドも思いは真空を通過することができます。
ソフトウェアの腐敗は、使用しない場合。

これらは大きな謎です。

5.2

マネージャは、どのくらいの期間が終了するまで、彼を取ると、プログラマを要請
プログラム、彼が働いていたどの。 "これは明日、"完成される
プログラマは、速やかに答えた。

"私はあなたが現実されていると思う"とマネージャーは、"正直に言った方法
くらいの時間がかかりますか?"

プログラマはしばらく考えた。 "私はしたいいくつかの機能を持って
を追加します。 これは、少なくとも2週間"と、彼はついに言ったかかります。

"たとえそれがあまりにも期待するくらいです""私はされるマネージャを主張
プログラムが完了したときは、単に教えている場合に満足。"

プログラマはこれに合意した。

数年後、マネージャは引退した。 引退する方法で
昼食は、彼は彼の端末眠っているのプログラマーを発見しました。 彼がされていた
一晩中プログラミング。

5.3

初心者プログラマは1回、単純な金融パッケージをコードに割り当てられていた。

初心者が激しく、多くの日が、働いていた時、主人の見直し
彼のプログラムは、彼はそれが画面のエディタをセットに含まれる発見
一般のグラフィックルーチンは、人工知能のインターフェイスが、
何かのわずかな言及は、金融はありません。

マスタがこのことについて聞くと、初心者が憤慨した。 "はしないでください
せっかち"と彼は、"私は金融もので、最終的に置く"と言った。

5.4

良い農家を無視は、彼が植えられています作物ですか?
良い先生も、最も謙虚な学生を見過ごすか?
いい父親には、単一の子供が餓死することができますか?
よいプログラマは自分のコードを維持することを拒否するか?

-------------------------

予約6 - 管理

したがって、マスタプログラマはspeakの過去形:

"プログラマーは多くは管理者が - 、すべてれる数とする
生産。"

6.1

いつ管理者は、プログラマがゲームを書く無限会議を開催。
会計士は四半期利益の話は、開発予算は約です
カットする。 時の上級科学者たちは青空の話、雲はロールバックしている
インチ

本当に、これがタオのプログラミングではありません。

いつ管理者がコミットメントを行うと、ゲームのプログラムは無視されます。
会計士は約される長期的な計画、調和と秩序を作る
復元されます。 時の上級科学者たちは手で問題を解決する、
問題は間もなく解決されます。

本当に、これがタオプログラミングのです。

6.2

なぜプログラマは非生産的ですか?
自分の時間は会議で無駄だからです。

なぜプログラマは反抗的ですか?
経営陣はあまりにも干渉するため。

なぜプログラマは1つ1つを辞任ですか?
彼らは燃え尽きているので。

経営不振のために勤め、彼らはもはや価値が仕事。

6.3

マネージャーは解雇されるだったが、彼のために働いてプログラマ
人気も販売になった新しいプログラムを発明した。 その結果、
マネージャーは彼の仕事を維持した。

マネージャはプログラマにボーナスを与えることを試みたが、プログラマ
と言い、"私はプログラムを私はそれだと思ったので、書き込み、それを拒否
興味深いコンセプト、つまり私は何の報酬を期待する。"

これは、"これは、プログラマと話した聞いてマネージャー、彼が保持しているも
小さな自尊心の位置は、井戸の適切な義務を理解して
従業員。 私たちは経営の高貴な位置に彼を促進させましょう
コンサルタント!"

しかし、このように述べた、プログラマは1回以上、と言って、"私は存在して拒否
私ができるプログラム。 私が昇進した場合、私は何も廃棄を行うと
みんなの時間。 することができますは今行くか? 私はプログラムを私が働いているている。"

6.4

マネージャーは彼のプログラマーに行って、彼らに言った:"としてあなたの仕事に関して
時間:あなたは9日の午前中に来て、去るているとしている
5午後には"この時点で、すべての人が怒って、いくつかのになった
その場で辞任した。

だからマネージャーは言った:"内のすべての権利は、この事件はあなた自身のを設定すること
限り、あなたはスケジュール通りにプロジェクトを終えると労働時間。"
プログラマは、今満足して、昼に来てとおしっこに仕事を開始
朝の時間。

-------------------------

予約7 - 企業の知恵

したがって、マスタプログラマはspeakの過去形:

"あなたは企業経営者のためのプログラムを示すことができますが、することはできません
彼は文芸コンピュータを確認します。"

7.1

初心者がマスターに尋ねた:"で東が大きなツリー構造である
男性が呼ぶ`本社'。 これは、図形の肥大化をしています
副社長と会計士。 これは、メモ、それぞれの多数の発行
と言っ`、したがって、移動! や`、あちらへ! 誰もが何を意味を知っている。 すべての
今年新しい名前は枝に、しかし、無駄のすべてに配置されます。 どのようにすることができます
このような不自然なエンティティはできますか?"

マスターは答えた:"あなたはこの巨大な構造を感知している
それは合理的な目的を持って邪魔。 ことができますではないから遊園地を取る
その無限の曲折? あなたはしないでくださいプログラミングの要望によりベビーシッターやすさをお楽しみください
その避難枝の下? なぜあなたは悩んでいるの
無駄?"

7.2

東は他のすべての魚より大きいサメで。 それは
翼雲空を充填のようなもの鳥に変更されます。 この
土地の間で鳥の動きは、それが企業からのメッセージをもたらす
本部。 このメッセージは、プログラマーの中に、しました
カモメは、ビーチには、マークを作るように。 その後、鳥が上にマウント
その後ろに青い空と風と、帰宅した。

鳥で不思議で初心者プログラマ視線、彼はそれを理解して
れていません。 平均的なプログラマは、鳥の到来を恐れて、彼は恐れている
そのメッセージ。 マスタプログラマは自分の端末での活動を続けて
彼は鳥が来ていると行って分かっていない。

7.3

象牙の塔の魔術師は彼の最新の発明をもたらした
マスタプログラマは検討する。 手品師は大規模なブラックボックス輪
マスターのオフィスマスターは無言で待っている。

"これは統合された、汎用のワークステーション"が始まった分散です
魔術師は、"人間工学的に独自のオペレーティング設計
芸術ユーザーのシステム、第6世代の言語、複数の状態
インターフェイス。 これは、構築に私のアシスタントを数百人の年を要した。
それは素晴らしいことですか?"

マスターは少し眉を上げた。 "これは確かに素晴らしい"、彼
と述べた。

"本社が命じて、"魔術師を、"続いていること
誰もが新しいプログラムのプラットフォームとして、このワークステーションを使用します。 あなたが同意しない
これに?"

それはに運ば"確かに、"マスターは答えた、"私は必要があります
データはすぐにセンタ!"とマジシャンは自分の塔、ウェルに返される
満足。

数日後、初心者は、マスターの事務所に迷い込んだ
プログラマは言った、"私は私の新しいプログラムのリストを見つけることができません。
あなたはどこにするかもしれませんご存知ですか?"

"はい"マスターは答えた、"リストは、プラットフォーム上で積まれている
データセンター。"

7.4

恐れることなく、プログラムにプログラムからマスタプログラマに移動します。 ノー
経営の変化は、彼に害を加えることができます。 彼は、解雇されない場合でも、
プロジェクトがキャンセルされます。 これはなぜか? 彼はタオで満ちている。

-------------------------

予約8 - ハードウェアとソフトウェア

したがって、マスタプログラマはspeakの過去形:

"風がなければ、草は移動しません。 ソフトウェアがなければ、ハードウェアが
役に立たない。"

8.1

初心者がマスターに尋ねた:"私は1台のコンピュータ会社が多くいることに気づきました
他のすべてのよりも大きい。 それは巨大な間のような競争上の塔
小人。 その部門のいずれかがビジネス全体を構成することができます。 のはなぜです
このように?"

マスタは、"なぜ、このような愚かな質問を答えた? その会社
それが大きいので大きいです。 それが唯一のハードウェアをした場合は、誰も買って
それは。 それはソフトウェアのみを加えた場合、誰もそれを使用します。 それだけで維持する場合
システムは、人々はしもべのように扱っていました。 しかし、それはすべての組み合わせのため
これらのこと、人々はそれを1つの神を考える! を求めることで
努力、それは努力もせずに打ち勝つ。"

8.2

マスタプログラマは、初心者プログラマが1日可決した。 マスターは指摘する
ハンドヘルドコンピュータゲームで初心者の関心事。 "すみません"
彼は、"私はそれを調べることができますか?"

初心者が注意するボルト、マスターデバイスを手渡した。 "私は
デバイスが遊びの3つのレベル:イージー、ミディアム、と主張している参照してください
ハードは、"マスターと述べた。 "しかし、すべてのこのようなデバイスは、別のレベルを持っています
デバイスは、人間を征服すること目指して遊び、また征服する
人間が。"

"祈りは、偉大なマスター、"、"どのように1つは、これを見つけることは初心者を懇願
神秘的な設定?"

マスタは地面にデバイスを削除し、足元に押しつぶさ。
突然初心者は賢明だった。

8.3

かつてのマイクロプロセッサに働いて、プログラマがあった。 "を見てどのように
よく私はここにいるから"と彼は言った訪ねてメインフレームのプログラマに、
"私は自分のオペレーティングシステムを持ち、ストレージデバイスをします。 私が持っていない
誰とでも共有私リソース。 ソフトウェアは、自己と一致している
簡単に使用できます。 なぜあなたは、あなたの現在の仕事を辞めていないと私をここに参加する?"

メインフレームのプログラマは、友人に自分のシステムを記述するようになり、
言って"メインフレームは、古代の賢人真っ只中に瞑想のように座っている
データセンターの。 そのディスクドライブは、素晴らしい海のようなエンドツーエンドうそをつく
機械。 ソフトウェアは、ダイヤモンドとして、多面的に複雑
原始のジャングルである。 プログラムは、それぞれ固有の、システムを介して移動する
迅速に流れる川のように。 だからこそ、私は幸せここで私は午前です。"

マイコンプログラマは、これを聞いて、時は静まり返った。 しかし、2つ
プログラマはその日の終わりまで友達のまま。

8.4

ハードウェアはChangtseへの道をソフトウェアに会った。 ソフトウェアは言った:"あなたは
陰と私はヤンをしています。 一緒に私たちは有名になるし、獲得旅行する場合
巨額の"そしてセットには、規定一緒に、征服を考えて
世界。

現在彼らはファームウェアを、ぼろぼろぼろ服を着ていたと苦しむ会った
に沿って厄介な棒で支え。 ファームウェアは彼らに言った:"タオがあるの
陰と陽を超えて。 それは沈黙している、まだ水のプールです。 それはない
したがって、誰も名声を求めることはその存在を知っている。 それは求めてはいません
幸運、それは、完全に自分自身にあります。 それは空間とを超えて存在する
時間。"

ソフトウェアとハードウェア、恥ずかしい、自宅に戻った。

-------------------------

予約9 - エピローグ

したがって、マスタプログラマはspeakの過去形:

"これは時間を残している。"

-------------------------

これらの場合は好きにする場合は、読み取ることができますしたいも悪い優れている

コメント

    ディスカスブログによって供給コメント