NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Přechod od C k C++

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Nositelka Změny:19.1.2020 14:47

Je vlastně vůbec nějaký důvod, proč dneska ještě používat C? C++ nemá v podstatě žádné omezení oproti C až na řídké výjimky, se kterými se nikdo nikdy nesetká, protože se již ani v C dávno nepoužívají. A protože se oba jazyky kompilují až na šrot (tedy do strojového kódu), tak vzniklý program bude stejně rychlý. Jenom ta kompilace bude pomalejší, ale to nikomu nevadí, protože C++ obsahuje tólik nových možností, že se za to vyplatí něco obětovat.

Odpovědět
19.1.2020 14:47
j.k.j
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Nositelka Změny
David Hartinger:19.1.2020 16:43

V céčku je vytvořeno hodně velkých projektů, které už nikdo přepisovat nebude (hlavně jádro Linuxu a nebo třeba programovací jazyk PHP), což je důvod, proč se ještě používá. Jinak máš pravdu, že dělat nové projekty v céčku moc nedává smysl.

Odpovědět
19.1.2020 16:43
New kid back on the block with a R.I.P
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Nositelka Změny
Martin Dráb:19.1.2020 16:58

Pořád ještě existují místa, kde je C v zásadě preferováno, protože běhové prostředí tam prostě neumožňuje C++ plně využít.

I jádro Windows je z drtivé většiny napsáno v C a ovladače se často v tomto jazyce píší dodnes. Pravda, některé prvkyz C++ se využívají (třídy, jmenné prostory, virtuální metody), ale celkem v omezeném rozsahu. Díky nim je kód o něco přehlednější. V jádru například příliš nefunguje obsluha výjimek (existuje, ale jen za určitých okolností) a situace, kdy selže alokace, protože není dostatek paměti, patří mezi naprosto validní stavy (což C++ moc neřeší). Také je tu samozřejmě argument, že programování v jádře je samo o sobě dost složité, takže není úplně žádoucí jej ještě ztěžovat použitím složitého jazyka.

Pak tu máme samozřejmě mikrokontrolery a la Arduino. Jistě, spousta C++ knihoven zde existuje, ale pokud opravdu chceš využít jejich omezené prostředky efektivně,těmto knihovnám se vyhneš. To tedy platí i pro "dospělé" počítače – ač jeho překladač opravdu optimalizuje, co se dá, pořád je velikost výsledné binárky vyšší než u C.

Odpovědět
19.1.2020 16:58
2 + 2 = 5 for extremely large values of 2
Avatar
Patrik Valkovič:19.1.2020 17:07

Naopak bych řekl, že je C obecně preferovanější pro knihovny. C lze totiž snadno napojit na libovolný programovací jazyk. To v C++ není možné, protože ve výsledné knihovně není známý přesný název funkce (tedy je, ale až po kompilaci) - viz name mangling. Takže bych naopak řekl, že se knihovny píší v C++ a popřípadě se nad nimi postaví C++ wrapper (a stejně jednoduše wrapper na libovolný jiný jazyk).

Odpovědět
19.1.2020 17:07
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Nositelka Změny
DarkCoder:19.1.2020 17:36

Je vlastně vůbec nějaký důvod, proč dneska ještě používat C?

For infrastructure technology, C will be hard to displace. - Dennis Ritchie

Jazyk C umožňuje a poskytuje způsob, jak řešit to co jiné jazyky nedokáží. Elegantně a efektivně. Jazyk C je nesrovnatelně jednodušší a přímočařejší nežli C++. Pomáhá programátorovi pochopit co a jak funguje a udržuje ho v pozornosti. Díky tomu dává programátorovi schopnost snáze řešit úlohy. Ano, použití ukazatelů je efektivní stejně jako nebezpečné. To je zkrátka cena efektivity, ale stojí to za to. Chceme-li udržovat nebo vylepšovat cokoli na úrovni jádra, bez C se neobejdeme. C je také v mnoha ohledech lepší než a rychlejší než C++. C je branou k ostatním programovacím jazykům.

A že jazyk C vznikl v 80. letech minulého století neznamená, že je zastaralý a nepoužitelný. Jazyk C se stále vyvijí (viz. standarty C89, C90, C95, C99, C11 a zatím poslední C18) a přizpůsobuje se moderním stylům a požadavkům. V C se používá víceméně vše od jeho vzniku, snad jen parametrizovaná makra jsou od C99 nahrazena inline modifikátorem z důvodu jednoduchosti. Nicméně zůstávají stále v platnosti.

Odpovědět
19.1.2020 17:36
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Atrament
Člen
Avatar
Odpovídá na DarkCoder
Atrament:19.1.2020 20:17

C vzniklo v roce 1972, to jenom pro upřesnění...

 
Odpovědět
19.1.2020 20:17
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.