IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – Prechod od C k C ++

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
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.

Odpovedať
19.1.2020 14:47
j.k.j
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá 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.

Odpovedať
19.1.2020 16:43
New kid back on the block with a R.I.P
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovedá 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.

Odpovedať
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).

Odpovedať
19.1.2020 17:07
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
DarkCoder
Člen
Avatar
Odpovedá 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.

Odpovedať
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 IT Redactor Gang
Avatar
Odpovedá na DarkCoder
Atrament:19.1.2020 20:17

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

 
Odpovedať
19.1.2020 20:17
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!