言語の新しい要素のための地獄の七つの輪

画像

新しい「動的」要素についての私の最後の投稿は、言語の新しい要素や機能を議論するために通常ではなかったレビューの波を引き起こしました。 多くの人は興奮し、幸せでしたが、彼らの言語が新しい要素と「結婚」することに怒っている人たちがいました。



C#は、過去にvar要素に対してこのような状況がありましたが、現在は動的に繰り返されています。 よくわからないが、お気に入りのプログラミング言語が新たな機会を得ると、地獄の輪が7つあるかもしれません。 (免責事項:実際、私が作成しているこのすべてのナンセンス)





1.ショックと拒否



新しい要素を追加すると、ショックと拒否の反応が観察されます。

「なぜこれらのラムダを追加したのですか? デリゲートを見つけました!」
「妄想構文。 彼に得点をつけます」
「ジェネリックは決して舵​​を取ることはありません! 言葉を覚えて


2.忘れられた祖先の影



新しい機能が登場する前から、開発者は過去にノスタルジックになり始めました。

「私は10年前に言語Xが大好きでした。


彼らは、過去には、厳しいメモリ制御や、泥沼のように動かされた他の多くの操作を導入する必要があったことを忘れていました。



3.怒りと恐れ、不確実性と疑い



後に、懐かしさは怒りと恐怖、不確実性と疑いに変わります。

PHPに「goto」 追加した場合の反応を見てください

「これは問題です。 真剣に、PHPには常にgotoがありませんでした。なぜ言語を公の脅威に変えるのですか?」


「はい、ロビン、PHPはゴッサムを恐怖に陥れる脅威です。 すぐにBetmobile!」



Dynamicは同様の怒りのシェアを獲得しました:

「C#は素晴らしい静的言語でした。 動的な言語が必要な場合は、別のものを使用します!」


または

「この機能は使用しません」


少し前に、怒りは恐怖、不安、疑いに変わります。 C#のvarは、これを直接証明しています。 多くの開発者は、コードが厳密に型指定されなくなると誤って書きました。これはすべて地獄に直結します。

「私の友人は彼のプログラムでvarを使用しましたが、それは彼女に夜明けを告げ、彼女は自分でハードドライブをフォーマットし、最近の経済危機の原因にもなりました。 お腹の上の十字架」


彼らは知らなかった、ダイナミックはすでに開発中であり、彼は本当にこれらの約束を守っていただろう;)

新しい機能は、地球上のすべての生命を破壊します。



4.うつ病、思考、生産性に関する占い



「ため息。 新しい機能を習得しなければならないことは知っていますが、パフォーマンスにどのように影響するのでしょうか?」


それで終わりです。 ほとんどの場合、開発者からこの言語の新機能に関する最初の質問があります。 「高速に動作しますか?」



それについて考えるのは時間の無駄だと思います。 1日100人の訪問者がいるサイトの場合、はい、十分なパフォーマンスがあります。



別の質問をする方が良いでしょう-「アプリケーションは私の要求に対して十分に高速ですか?」 そうでない場合は、ボトルネックを探して最適化する必要があります。 パフォーマンスの問題は言語機能とはまったく関係ありませんが、たとえばSelect N + 1の問題など、より高いレベルのエラーと関係があります。



5.トンネルの終わりの光



「ああ、新しいアイテムを使用しても、ハードドライブはフォーマットされませんでした。 それほど悪くないのかもしれません。」


開発者は、新しい機能が子猫を朝食に食べるわけではなく、悪魔の化身ではないことを理解し始めました。 おい! 合法的に使用する権利もあります。



開発者はそれがどこでうまく機能するか、またはその逆を理解しようとしているので、これは新しい機能の多くの実験を見る段階です。



6.コードが狂った



私たちは皆、このフェーズを時々通過すると思います。 ある時点で、新しい機能がクールで、象として満足していることに気づきます。 Thor's Hammerが手元にあり、コードの各行は釘のように見え、打たれる準備ができています。



この段階では、多くのことがわくわくします。 突然、すべてのオブジェクトは匿名であり、すべてのコールバックはラムダ式であり、すべてのメソッドは、いずれの場合でも、それが必要な場合と必要でない場合にジェネリックです。



おそらくこれに抵抗することをお勧めしますが、ある時点で自分に自由を与え、新しい言語機能を楽しむことができます。 コマンドは1つだけ覚えてください。



svn revert –R



または、お気に入りのバージョン管理システムからの別の代替コマンド。



7.承認と物忘れ。



この段階で、開発者は、クラスやパブリック要素など、言語の他の部分と同様に、言語の新しい機能を最終的に採用しました。 可能な限り、理由もなく使用する必要はありません。 開発者は、本当に必要な場合にのみ機能を使用し始めます。



All Articles