月給100,000の2人のLispプログラマー

2日前、同級生がポール・グラハムの「ハッカーと画家」を見て、ポールがプロモートしたリスプはとても興奮し、これが世界で最も素晴らしい言語だと感じました!

それから私はそれに冷水を注ぎました:Lispは本当に素晴らしいです、しかし基本的にそれをプロジェクト開発に使う人は多くありません。

彼は戸惑いました:何が起こっているのですか?

風変わりな構文が2番目だと言いました。重要なのは、現在の会社とプロジェクトの開発方法では、Lispのような言語を存在させることが難しいということです。

話をすると、ある会社の上司も「ハッカーと画家」を読み、毒殺され、ポールの奇跡を真似る準備をしていた。彼は個人的な関係を通じて2人のLispプログラマーを雇った。

これらの2人のLispプログラマーはスーパースターであり、伝説的な10倍速いプログラマーです!

2つ星のLispプログラマー= 20人の平凡なJavaプログラマー!

上司はこのLispプログラマーに驚異的な給与を与えました:月給100,000

PaulがTheHacker and Painterで説明したように、これら2人のLispプログラマーは、システムをボトムアップで構築して失望しませんでした。

2人はマクロで遊んで、昼夜を問わずLispマクロでプログラムしました。

わずか1か月で、2人は上司のビジネスドメイン用に特定の言語(DSL)を開発しました。

さらに1か月後、2人はこのDSLを使用して上司が望んでいたシステムを完成させ、競合他社を唖然とさせました。

上司は耳から耳へととても幸せでした:2つの才能は私に40万の費用がかかりました、それはとても香りがよいです!

Javaプログラマーを雇う場合は、少なくとも20人を雇う必要があり、月給は20,000、2か月で800,000です。2か月は不可能な場合があります。

その後、システムは安定したメンテナンス期間に入りました.2人のLispプログラマーの1人が立ち去って逃げ出し、もう1人はもうそれについて考えていませんでした。

上司がこれについて考えるとき、それは大丈夫ではありません。これらの2人のスーパープログラマーは、意図的すぎてコストが高すぎて、一般の人々はシステムを維持する必要があります。そのため、3〜4人の新規参入者がプロジェクトチームに加わりました。

新人はスーパープログラマーによって書かれたマクロを開き、すぐに唖然としました:私は行きます!これは何ですか?全然わからない!

「包括的な」Lispスーパープログラマーが新参者に説明し、誰もがようやくアクセスできるようになりましたが、新しい機能が追加されるたびに、カメのように薄い氷の上を歩くように、古い機能が恐怖で変更されました。

そのため、このシステムはすぐに時代遅れになり、競合他社に追い抜かれました。

私はこの話を作り上げましたが、これはかなり誇張されていますが、PaulがThe Hacker and Painterで説明したボトムアップのマクロベースの開発方法を反映していますスタープログラマーに依存しています

Lispマクロを使用した開発には、少なくとも2つのレベルの抽象化機能が必要です。通常のプログラミングのコードは、データを直接操作し、ファイル、データベース、およびネットワークデータを読み取ることです。比較的直感的で、クラス/インターフェイスを抽象化します。

ただし、Lispマクロはメタプログラミングであり、コードを操作/変換用のデータとして扱います。変換された新しいコードの動作と、データを操作したときに何が起こるかを考えたい場合、思考の次元は通常のプログラミングよりもはるかに高くなります。牛のプログラマーはいません。

Lispプログラマーと才能のあるプログラマーはほとんどいません。採用するのは簡単ではありません。マネージャーは「休暇中に何をしますか?辞任はどうですか?比較すると、Java移民労働者のグループを採用する方が良いです!」と考えるでしょう。

Paulは、The Hacker and Painterで、彼と彼の同僚がLispを使用してオンラインストアViaWebを開発したと述べました。これは非常に成功し、競争に打ち勝ちました。その後、多額の金額でYahooに売却され、YahooStoreに名前が変更されました。 

実際、Yahooは後でそれをPerlとC ++で書き直しました。その理由は、Lispプログラマーが見つからなかったためです。

だから問題は、私はLispを学ぶべきですか? 

もちろん、月給10万のプログラマーになる必要があるので、そうする必要があります。

よりエキサイティングなテクニカルコミック、すべてのプログラマーが立ち上がる

おすすめ

転載: blog.csdn.net/coderising/article/details/109213283