うーん...スーパー言語...私にC ++をください!



私は記事「 The Super Language Myth 」を支持し、プログラミング言語を議論する際に通常は見えなくなる2つの重要な点に注意を払うことにしました。



瞬間1.ライブラリ



実際のソフトウェアプロジェクトの開発について話している場合、それに付随するライブラリとは別に言語を検討することはできません。 言語自体は、デモンストレーションプロジェクトを作成する場合や学術研究の場合にのみ、面白くて自給自足になります。 異種機能を必要とし、数年間維持する必要がある商用プロジェクトに関しては、必要なすべてを実装できるライブラリ/パッケージ/古い開発を主に検討します。 そして、プログラミング言語について話すのが理にかなっています。



瞬間2.一定の複雑さ



私の個人的な意見を表明しますが、これは議論の余地があると思われますが、そのように感じます。 中規模または大規模なプログラムの複雑さは一定であり、変更は困難です。 この言語は、プログラムの記述を10〜20%の範囲で単純化/複雑化します。



ファッショナブルなC#をC ++と比較すると、メモリを自動的に解放するため、書面での時間を大幅に節約できると言えます。 ポインターを無限に制御したり、さまざまなauto_ptrを作成したり使用したりする必要はありません。 私は反対します。 おそらくこれは小さなプロジェクトには当てはまりますが、大きなプロジェクトではどこにも隠すことはできません。 例として、私はある知り合いから聞いた事例を語ります。



プロジェクトはもともと非常に大規模に考案されました。 C#が選択された理由は、すべての要件を満たし、C ++と比較して開発を簡素化したためです。 約2年で、開発はうまくいきました。 ただし、プロジェクトが一定レベルの複雑さとボリュームを超えると、非常に不快なアーティファクトが現れました。 メモリを解放するプロセスは制御できないため、アプリケーションの作業中に1〜2秒の一時停止があり、その間、システムはメモリを解放し、解放するものを解放しました。 キーボードからフィールドに情報を入力するだけで、インターフェイスが2秒間フリーズすると、非常に不快になります。 管理者は、この動作がユーザーを悩ませるので受け入れられないと判断しました。 多くのコピーが壊れていました。 開発者のせいではないようですが、何かする必要があります。 現在、彼らはプロジェクトを2つの相互作用する部分に分割することに取り組んでいます:インターフェース部分とそこからのリクエストを処理する部分です。 アイデアは、軽量のインターフェイスが常に生きているということです。



おそらく、私はプロジェクトの初心者なので、問題の本質を正確には伝えていません。 しかし、ポイントは、特にプログラミング言語を使用して複雑さを隠すのはそれほど簡単ではないということです。 1つの場所で簡略化すると、別の場所で横向きになる可能性が高くなります。



おわりに



新しいファッショナブルな言語に関連することは穏やかでなければなりません。 それらの長所と短所について議論することは意味がありません。 新しい機会に慣れるだけの価値はあります。 新しいプロジェクトを開始するには、特定の条件があり、古き良きC / C ++ / Fortranから選択する必要があるかもしれません。 そして、条件が幅広い選択を許可する場合にのみ、スーパーXまたはスーパーYを選択することを覚えて、考えることが理にかなっています。



PS



手の中の鳥は空のツルよりも良いと思います。 新しいことを学びたい場合は、Intelのツールを勉強することをお勧めします。 Parallel Studioをダウンロードしてください。 これにより、並列システム用のプログラムを簡単かつ簡単に作成できるようになります。 私たちにとって近い将来ではない近い将来は、並列処理です!



All Articles