現代世界のC ++





プログラミングの世界でのC ++の現在の状況に関する議論は、原則として、参加者を2つの面に分けます。一部の人々は、この言語が気に入らず、早期の死を予測しています。 それどころか、C ++で記述、記述、および記述を行うと主張する人もいます。 真実はどこかにあると言えますが、それは、C ++が、たとえばC ++ 03標準とC ++ 11標準の出力の間にあるような「中断」状態にあることを意味します。 実際、状況は少し異なります。 どうやって? これを理解してみましょう。





下に行きましょうか?







種類はありません。 おそらく、C ++はC#やJavaほど初心者プログラマーの学習という点ではあまり人気がなく、おそらく大企業がリリースした新しいテクノロジーはその下では磨かれておらず、同じMicrosoftとOracleによって促進されていないかもしれませんが、C ++は最後まで行きました-うそをつくことを意味する。 C ++を使用して作成されたソフトウェアは廃止されておらず、サポートが必要です。 たとえば、ゲームエンジンなどの新しいソフトウェアも、C ++とMightおよびMainを使用し、標準のC ++ 11、C ++ 14、および今後のC ++ 17は、このプログラミング言語で問題がないことを確認するだけです。 しかし、すべてについて順番に話しましょう。



C ++ 11、C ++ 14、C ++ 17 ...







前述のように、C ++ 11とC ++ 03標準の間では、言語は一種の「中断」状態にありました。 boost、Qtなどのライブラリが開発および補足され、C ++ / CLIが登場し、新しい公式標準は存在しなかったようです。



これはかなり前から続いており、2009年に公開が予定されていたC ++ 11標準は、わずか2年後にリリースされました。 しかし、それでも出てきました。 そして、残されただけでなく、多くの追加、拡張、「構文糖」をもたらしました。 新しい標準を使用した記述がより簡単で便利になり、プログラマーの生活を楽にする多くのツールが標準ライブラリに追加されました。 並列プログラミングの公式サポートが導入されましたが、これは重要な初期化リストであり、コードを明確にするために設計されており、おそらくファンを見つけたラムダ関数です...そしてもちろん、これはすべてではありませんが、記事は少し異なります-すべての革新をここにリストしても意味がありません。



すばらしい、C ++ 11標準が出てきましたが、それから何ができましたか? 再び8年間シンプルですか? しかし、ありません。 C ++ 14標準がすでにリリースされていることは誰にとってもニュースではありません。 いいえ、C ++ 11がもたらしたこのような拡張については疑問の余地はありませんが、追加と改善が行われています。



しかし、同じくらい重要なことは、トレンドが失われていないことであり、新しい標準であるC ++ 17の準備がすでに地平線上に見えています。



間違いなく、プログラマーが新しい標準のすべての魅力を学び、イノベーションを正しく適用する方法を学ぶまでには時間がかかります。 ただし、これらの革新は、コードとソフトウェアの品質にプラスの効果をもたらすはずです。



古いソフトウェアはどうですか?



既存のソフトウェア



多くのソフトウェアがC ++を使用して記述されています。 そして、もちろん、それはサポートされる必要があります。 実生活の例を見てみたいですか? 対応するリストを参考にしてください。 きっとおなじみの製品がたくさんあります。 誰かが急いで既存のC ++コードをC#やJavaで書き直すとは思わないが、それは将来的には「ガベージコレクター」などにより便利になるからだ。 など C ++の知識が再び必要であることがわかりました。 また、C ++が新しい標準のリリースでの作業ではるかに便利になったという事実を考慮すると、現代のC ++でのモジュール/追加の記述というアイデアは、夢中になれる場所であり、見た目ではありません。 将来的には、このようなコードは保守がはるかに簡単になります。 同時に、それはまだ同じ生産的なC ++であり、広範な機能セットを備えています。 また、補完された標準ライブラリにより、自転車の発明を必要とせずに既製のソリューションを使用できます。



初心者の間で人気







この点で物事はあまりスムーズに進んでいません。C++は初心者プログラマーの間ではあまり人気のある言語ではなく、C#やJavaなどの言語ではあまり意味がありません。 なんで? いくつかの理由があります。



高いエントリーしきい値







おそらく、C ++の複雑さについて聞いていないようなプログラマーはいないでしょう。 もちろん、言語は広大で、数え切れないほどのニュアンスがあります。 しかし、見返りは何ですか? パフォーマンス+進行中のプロセスの詳細な監視(特にC ++から純粋なCに少し移行する場合)。 繰り返しになりますが、C ++ 11標準は、初心者にとってより使いやすく、便利な構文、さまざまなコンテナ、アルゴリズム、その他の便利な機能を提供し、コードを記述しやすくしています。



それにもかかわらず、この可能性は非常に低くなりますが、必要に応じて自分で足元を撃つことができます。



不十分な昇進



オーナー企業であるMicrosoftやOracleがC#やJavaなどの言語をどのように宣伝しているのかは誰にも秘密ではないと思います。 Javaについては、この分野の動向に詳しくないので、確かに話をしませんが、Microsoftの進歩は非常に顕著です。 ほとんどのMicrosoftテクノロジーは、特にC#の下で強化されています。 マイクロソフトがホストするハッカソンは、再びC#を使用して合格します。 いいえ、これは悪いことではなく、単なる事実の表明です。



このようなC ++のサポートはありません。 はい、彼が仕事とアプリケーション作成のプロセスを容易にするためのさまざまなツールがリリースされています。 ここでは、JetBrainsから最近リリースされた同じQtReSharper C ++を思い出す価値があります。 Visual Studio 2015では、最新の標準からのいくつかの革新に加えて、いくつかの追加機能のサポートが導入され、作業がより便利になりました。



しかし、前述の進歩の規模では、これはまだ比較できません。



専門化



C ++が開発者に提供する言語であるにもかかわらず、彼らが言うように、すべてのカードを手に入れているにもかかわらず、そのアプリケーションの範囲は包括的ではなく、特定のニッチを占めています。 競合他社が存在しますが、これには効果もあります。 たとえば、モバイル開発を考えてみましょう。 主なプラットフォームは特定の言語で占められています:Windows Phone-C#、Android-Java、iOS-Objective-C。 そして、これは、これらのプラットフォーム用のC ++を記述する方法がないことを意味するものではありません。唯一の質問は、それがどれほど便利で、効果的かどうかです。 毎年ますます人気が高まっているWebの場合、C ++もあまり適していません。 ソケットを操作する機能は、Wtのようなライブラリです。 しかし、C ++で実行されているWebアプリケーションについて多くのことを聞きましたか? ここにいます。 モバイルおよびWeb開発が非常に人気があり、勢いが増していることを考えると、他の言語を好む初心者の選択は明らかです。



TIOBEインデックス



言葉は言葉ですが、彼らが言うように、100回聞くよりも1回見る方が良いです。



それで、私は現状を見てみることをお勧めします。 この点で非常に人気のあるのは、言語の評価、評価表の変更、およびその他の指標を反映するTIOBEインデックスです。







ご覧のように、昨年と比較して、C ++は失敗しなかっただけでなく、上位3位に入ることができました。 さらに、上位5か国の2つの言語の1つであり、その評価はわずかではありますが、上昇しています。



おわりに







あなたはすでに現代世界のC ++の現在の状況について意見を形成していると思います。 私自身を表現させてください。



これは嘘だから、C ++がすべての生き物よりも生きていると叫ぶことは不可能です。 また、C ++が死んでいると言うこともできません。これはまだ大きな嘘です。

C ++は生きており、独自の特定のニッチを占めています。 発信標準により、言語に革新が加えられ、より便利で使いやすくなりました。 この言語で書かれたソフトウェアも廃止されておらず、サポートが必要です。 特定の分野では、C ++がソフトウェアの作成に最適であり、これは上記と一緒に1つのことを意味します-C ++は関連性があり、開発や地盤を失うつもりはありません。









この記事を英語圏の聴衆と共有したい場合は、翻訳へのリンクを使用してください:Sergey Vasiliev。 現代世界のC ++



All Articles