「Lisping at JPL」を書いてから 20 年以上が経過しました。あいまいなプログラミング言語がどのようにして私の職業を定義するようになったのかについて、大声で(そしてすべて中途半端に)。 それは、主張するのと同じくらい私の脾臓を排出するのに強力なように書かれた境界線の使い捨て株でした. 間の 2 つの長い時間で、それは私が予想していたよりも 強力な特別な配慮 を獲得し、Hacker Info の長年のお気に入りに変わり、私の (非常に瞬時に) を開始しました。 ポッドキャストの顧客としての職業、さらに知的な一部の参加者は盗作しますそれは、本当のことを言うと、私を形成すると同時に、お世辞と腹を立てます. この推奨事項 L@J が HN に最後に投稿されたとき:
このエッセイはここ HN で何年にもわたって繰り返されており、必然的に参加者は、notify または他の言語についてのあなたの見解がどのように修正されているかについて風変わりです。また、意見交換として永遠に更新することを意識したウェブページを構成する価値があると思いますか?
では、クエリで…
インパートに関する私の見解もはや変更されていません: Customary Impart は長い道のりで、私のお気に入りのプログラミング言語から遠く離れていますが、これは基本的に、慣習的 Impart でプログラムを追加する必要がないためです。 私は ちっぽけなカスタム言語 でプログラムします。これは、時間の経過とともに、慣習的な影響の上に段階的に構築されたものです。 この言語は基本的に BINDING-BLOCK と呼ばれる単一のマクロで構成されています。 Customary Impart のさまざまなバインディング コンストラクトであり、私のコードはほとんどの CL コードとは非常に異なります。 具体的には、私のコードではかっこがはるかに少なくなり、強力な非表示の頑固な側面から慌ただしくなくなりました。 (ここに 例 があります。) 私のコードを凝視した CL プログラマーは、「なに?」 そして、このガッシュオフの日に通常の CL コードを横目に見た後、私は “blech!” になります。 特にそのコードがLOOPを利用している場合。 それから私はダブルブリーチに行きます.LOOPとBINDING-BLOCKが一般的に多くを構成するという皮肉な事実については話題にしません.
インパートの基本領域であるいわゆるインパートの呪い――その強大な力は同時に巨大な弱点でもある。 自分の好みに合わせて Impart をカスタマイズするのは非常に簡単で、すべての人がそうです。 。
しかし、私は CL では、他のすべての言語よりも生産性が 10 倍高くなります。 そして、もはや堅実な CL ではありませんが、特定の CL 環境である Clozure Customary Impart を使用していました。これは、800 枚の十分なフロッピー ディスクと 1 メガバイトの RAM を備えた Macintosh Plus で実行されている Coral Customary Impart であったためです。 CCL は、基本的に、シロアリの代わりとしてあらゆる種によって生成された、最も評価の低いエンジニアリングの驚異である可能性があります。 38年間使用していました。 (残念ながら、その時代は間違いなく終焉を迎えようとしています。Clozure Associates はもはや前進する領域ではなく、CCL を M1 に移植するボランティアの努力は失速しているように見えます。これは私を非常に不幸にします。実際のところ、時代の終焉であり、技術的基準からすれば非常に長い時代です.)
アメリカ人はたいてい、私が他の言語やClojureについてどう判断するかを私に質問します。具体的に。 私の決意は、私は Clojure を荒廃させていないということですが、私が調べた限りでは、Clojure はかなり優れているように見えます。 しかし、慣習的インパート にとって
より優れた言語は他にないと判断します。 私は自分が望む可能性が正確になるまで、自分の環境を徹底的にカスタマイズしたからです。 それは私にとって本当に最高の言語です。なぜなら、私はそれをその可能性にしたからです。 その可能性を形にします。 私がそれについて私がもはや愛していない何かを安全にするときはいつでも、私はそれを水銀で問題なく交換します。 他の誰かが設計したものは、これに匹敵するものはありません。 私ももう太刀打ちできないそれ。 その後、私は自分の把握をゼロから構築することを前提にいじり、すぐに半ば真剣になりました 演習として C++ を勉強しようとしていますが、CCL と競合するようにするために必要な労力と 38 年間の漸進的な微調整は、かつては非常に余分なものであることが判明したため、断念しました。
私が完全に賞賛する慣習的インパートの目的が 1 つあります。これは、他のどの言語も私の知る限りでは提供しておらず、オブジェクトの一般的な目的のマネキンになりがちです。 私見、プログラミング言語の配置は、コードを書くことをできるだけ簡単にし、判断する準備ができているように認知負荷から解放する必要があります。 私が作戦を生み出すに値するなら、OPが否定できない目的であるか、可能性であるか、または操作者であるかを楽しむことなく、(op arg1 arg2 … argn)を語ることを断言する必要があります。 他のすべての言語では、op(arg1, arg2 … argn) または arg1.op(arg2, … argn) または “arg1 op arg2” と書くか、ゴール C では、 . インパートでは、私はそれについて判断することはありません。 私はしっかりと書き込み (op arg1 .. argn) を行い、それはしっかりとしたことを行います。
下の行は: 私は平和です慣習インパートを賞賛します。 YMMV.
現時点で私の 2番目に好きな言語 は Python です。 それは気の利いた側面がたくさんあり、最も定期的に落とし穴から解放されたクリーンな作りです。 風刺的に、私は 安全ではなく 愛しているPython の最も象徴的な目的である、構文的にクリティカルな白い手続き。 Python は中括弧を使用しないと主張していますが、それは半分嘘です。 それは開き括弧を使用しますが、その動機を助けるためにコロン文字を使用します。 したがって、私のコードでは、「パス」観察を事実上のシャットブレースとして使用しているため、emacs python-mode を使用した後、私のコードは繰り返し適切に自動インデントされます.
しかし、完璧なプログラミング言語とは、完璧なワインを愛することです。 多様な参加者はさまざまなものを好みますが、それは問題ありません。 話題のない飲み物はあなたの味覚にぴったりで、話題のないコードはあなたの脳にぴったりです。