it-swarm-eu.dev

Jaká je dnes role C ++?

V současné době jsem studentem IT a zajímalo by mě, co je v C++ stále důležité, pro co se používá? Na své univerzitě jsem absolvoval základní kurz C++, ale neumím si představit, kde mohu své znalosti využít a jakým směrem bych se měl učit C++.

Jinými slovy, co bych se měl naučit stát se úspěšným programátorem C++?

V současné době se učím Java jen proto, že nevidím jasně, v které oblasti C++ by dnes mohl být užitečný, ale jasně vím, jakou práci budu dělat jako Java programátor.) Stále ale doufám, že C++ není mrtvý.

41
hades

Zabijáckou funkcí C++ je správa zdrojů vázaná na rozsah , SBRM (běžněji známá jako „ RAII " ). Je to pouze průmyslový programovací jazyk, který je postaven na tomto konceptu. V C++ jsou doby života všech objektů přesně známy a (dobře napsané) programy C++ zaručují, že zdroje jsou získávány a uvolňovány zcela deterministickým způsobem. Oproti tomu jazyky odebrané nebo jinak spravované jazyky takové záruky neposkytují; ve skutečnosti objekty v těchto jazycích mohou přetrvávat i po skončení jejich životnosti.

To je důvod, proč je C++ používán ve financích, videohrách, vysoce výkonných vestavěných systémech a systémech v reálném čase, v dopravě, výrobě a dalších odvětvích, kde je důležitý determinismus a přesnost. Neexistují žádné alternativy.

Je pravda, že byl použit pro mnohem více úkolů, než je tento, a tyto úkoly jsou ztraceny do C # a Python a dalších vhodnějších jazyků, ale to neovlivňuje jeho základní výklenek).

57
Cubbi

Existuje několik trhů pro C a C++ (podle mého omezeného porozumění)

  1. Existující kód. C a C++ mají některé z největších existujících kodebáz kolem. Kód této velikosti nelze jednoduše vyhodit jen proto, že se objevil „nový horký nový jazyk“. Vazby C jsou ve většině platforem standardem interanglungové interakce, takže je užitečné vytvářet (přinejmenším) knihovny obalů v C nebo C++.
  2. Vysoce výkonné aplikace (např. Vysokofrekvenční financování). C a C++ stále dosahují lepšího celkového výkonu než většina ostatních programovacích jazyků. A co je nejdůležitější v C++, jeden často staví abstrakce s kompilátory, jako jsou například šablony, které přesouvají výpočet z běhu do kompilačního času (čímž se celková aplikace zrychlí).
  3. (Podobné 2) Aplikace s nízkou latencí. Jazyky, které běží např. CLR nebo JVM mohou být v závislosti na aplikaci často téměř stejně rychlé jako C++, ale ještě před spuštěním programu je třeba do paměti načíst CLR nebo JVM. Pokud máte náročné požadavky na spuštění, je to důležité. ÚPRAVA Z KOMENTÁŘE: V tomto ohledu je třeba poznamenat, že požadavky na jakýkoli popis tvrdé latence jsou zde uvedeny. Jazyky, které běží na virtuálních strojích, zřídka nabízejí pevné časové limity, protože běží např. sběr odpadu není deterministický proces.
  4. Vestavěné systémy. Některé vestavěné systémy mají spuštěný hardware, např. JVM (Google's Android (Dobře, není to ve skutečnosti JVM, ale je to blízko), RIM's Blackberry) nebo CLR (Windows Phone), ale většina vestavěných systémů nemá moc spouštět jazyky, které vyžadují více běhové podpory, než je požadováno pro C nebo C++ (což je téměř žádná běhová podpora).
  5. Aplikace s omezeným nasazením. Někdy vyžadující instalaci JVM nebo CLR je masivní nadměrné množství, pokud je celý váš program jen několik set KB. (Například většina programů, na kterých pracuji , musí být nasazena jako jedna .EXE soubor bez jakéhokoli druhu instalačního programu nebo takového; proto neexistují žádné alternativy)
40
Billy ONeal

C++ je stále velmi užitečná a v žádném případě mrtvá. Pokud si chcete přečíst seriózní srovnání mezi některými různými programovacími jazyky, podívejte se na článek Empirické srovnání C, C++, Java, Perl, Python, Rexx a Tcl . Nejde o nejaktuálnější, ale věřím, že většina věcí stále trvá.

3
sakisk