Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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: Co je nejlepší? C/C++

Aktivity
Avatar
gripen wo.cz
Člen
Avatar
gripen wo.cz:4.10.2021 18:59

Zdravím, C je zastaralé?

A co je nejlepší? C++ anebo C#? Co mi tak říkala kámoška, C# je hybrid C++ a Javy, z obojího bere to lepší. C++ je vyšší dívčí. Myslíte, že céčko je všeobecně dobrý prostředek pro ovládání Woken?

Zkusil jsem: _

Chci docílit: _

 
Odpovědět
4.10.2021 18:59
Avatar
Patrik Valkovič:4.10.2021 20:00

Ahoj. C resp. C++ a C# jsou jazyky určené k něčemu jinému. C je dobré pro programování hardwaru, C++ na velmi výkoné aplikace a C# pro běžné programování aplikací. Pro ovládání Windows se používá WinAPI, které je nativně psáno v C, ale existují bindingy na C#, takže je to ve výsledku jedno. Pokud začínáš a chceš prostě dělat aplikace, zvolil bych C#. Pokud chceš vědět, jak to funguje na pozadí a vědět co se děje, zvolil bych C resp. C++. C++ je víceméně rozšíření C, takže lze začít s C a potom přejít na C++ (je tu zvlášť článek pojednávající o přechodu z C na C++).

Nahoru Odpovědět
4.10.2021 20:00
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
gripen wo.cz
Člen
Avatar
gripen wo.cz:4.10.2021 20:13

Děkuju... a kde bych ty tutorialy našel? :-)

 
Nahoru Odpovědět
4.10.2021 20:13
Avatar
Nahoru Odpovědět
4.10.2021 20:25
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
gripen wo.cz
Člen
Avatar
gripen wo.cz:4.10.2021 20:37

Ještě poslední otázka. Jakou učebnici na C# bys mi doporučil prosím? :)

 
Nahoru Odpovědět
4.10.2021 20:37
Avatar
Nahoru Odpovědět
5.10.2021 19:09
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
weverka
Člen
Avatar
Odpovídá na Patrik Valkovič
weverka:5.10.2021 19:59

Opravdu, základy C# je velmi kvalitní sekce, jsou to moc dobře napsané články, které jsou pochopitelné. gripen wo.cz já sám jsem se k C# dostal z Javy ve které jsem psal jednoduché aplikace. Nyní pracuji na větším projektu a C# je na to ideální. Stačí se podívat na metody výpisu textu Systém.out.println nebo Console.Write? :-D C# je velmi moderní jazyk, který má své výhody i nevýhody. Například není moc použitelný na Linuxu a Maců ale na Windows je to asi nejlepší jazyk.

Nahoru Odpovědět
5.10.2021 19:59
Weby jsou budoucnost IT
Avatar
Odpovídá na weverka
Patrik Valkovič:5.10.2021 20:09

To už btw není pravda, s .NET Core jde v pohodě programovat na Linuxu i Macu. Je fakt, že WPF apod. tam člověk nedostanu, ale jinak je to v pohodě.

Nahoru Odpovědět
5.10.2021 20:09
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
weverka
Člen
Avatar
Odpovídá na Patrik Valkovič
weverka:5.10.2021 20:50

Asi jsem trošku zaspal. :-D O .NET Core vím ale jak to spustím? V čem mám vyvíjet. Je tu mnoho věcí o kterých mi bylo dobré se zamyslet a vylepšit. Například VS pro Linux by byl dar z nebes. :-D

Nahoru Odpovědět
5.10.2021 20:50
Weby jsou budoucnost IT
Avatar
DarkCoder
Člen
Avatar
Odpovídá na gripen wo.cz
DarkCoder:5.10.2021 21:54

Pokud chceš psát vysoce výkonné aplikace, nauč se C. WinApi pro správu okna a vstupů, OpenGL popř. Vulcan pro grafické Api, OpenAL pro audio (vše psané v C). Výhodou je, že více porozumíš tomu jak to funguje. Naproti tomu Tě to bude stát více úsilí. Pokud Ti postačí psát "běžné" aplikace, kterých je většina, pak C# je postačující a dobrou volbou. Dále můžeš použít různé nadstavby jako GLFW, SFML, SDL, ALLEGRO, RAYLIB, které Ti v mnohem zjednoduší práci. Obvykle jsou psány v C/C++, ale existují bindingy pro další jazyky.

Jinak dívejte se, do jaké sekce píšete a na co se ptáte. Dva úplně stejné dotazy za sebou (na knihu o C#) vložené do sekce C/C++. Ať se tu pak zbytečně nerozvíjí debata o něčem, co v dané sekci nemá co dělat.

Nahoru Odpovědět
5.10.2021 21:54
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
weverka
Člen
Avatar
Odpovídá na DarkCoder
weverka:5.10.2021 22:10

O C se nedá říct že by bylo zastaralé, ale přeci jen dnes dělat v céčku je zvláštní, ale pokud někdo chce vytvořit nové Windows tak se céčko určitě hodit. Jinak jazyky jsem přezkoušel všechny a céčko asi není špatné, ale poslechne tě na slovo, takže můžeš zničit PC, C++ je dost podobné, ale trošku složitější a pokročilejší. Dalo by se říci že C a C++ jsou v podstatě to samé, ale C++ má třídy. Rozhodně ani jeden z těchto jazyků nejsou špatné spíše primitivnější. Rozhodně pokud někdo zvládne C++ tak s ostatními jazyky problém mít nebude protože to bude zjednodušení. Do začátku jsou Java či C# asi nejideálnější jazyky na naučení. Ale rozhodně žádný jazyk není špatný. Btw kdyby někdo chtěl pomoc s C# tak do mého projektu hledám lidi nebo kdybyste jen potřebovali pomoc, tak pište do PM. V céčku jde v podstatě cokoliv. Kdyby někdo vyvíjel operační systém tak se rád připojím.:-D Takže nejjednodušší C# a pak C a C++.

Editováno 5.10.2021 22:11
Nahoru Odpovědět
5.10.2021 22:10
Weby jsou budoucnost IT
Avatar
Ladislav Šafránek:6.10.2021 13:40

https://ibb.co/6n72zpx

Otázka: co z toho vybrat, když chci udělat appku s grafickým rozhraním? Nabízí mi to tam jen konzolové aplikace. Děkuju.

 
Nahoru Odpovědět
6.10.2021 13:40
Avatar
DarkCoder
Člen
Avatar
Odpovídá na weverka
DarkCoder:6.10.2021 15:24

Posuzovat programovací jazyky dle toho, jak dlouho jsou vývojářům k dispozici, je pro mě bezpředmětné. Pojem "zastaralý" ve mě evokuje význam, že něco je nahrazeno něčím jiným, což se o jazyku C rozhodně říci nedá. Právě blízká spojitost s hardwarem, schopnost řešit daný problém silou, pružně, elegantně a zejména efektivně mu dává vysokou exklusivitu nad ostatními jazyky. Programovací jazyky posuzuji podle mnoha kritérií, zejména dle toho co poskytují a co vývojáři umožňují.

přeci jen dnes dělat v céčku je zvláštní...

Proč zvláštní? Nebudu zacházet úplně do detailu, to by obsáhlo několik článků, ale ve stručnosti:

  • Možnost vyvíjet aplikace pro všechny nejvýznamnější OS (Windows, Linux, Android, Mac a další..)
  • Možnost vyvíjet aplikace pro všechna možná zařízení (desktopy, notebooky, tablety, mobilní telefony, televize, hodinky, domácí spotřebiče, herní konzole, platební terminály a další...)
  • Možnost vyvíjet za použití multimediálních knihoven (OpenGL, Vulcan, atd) aplikace ve všech možných oblastech činnosti (lékařství, věda, bankovní průmysl, vojenský průmysl, herní průmysl, obchod, bezpečnost a další)
  • Možnost vytvářet vysoce výkonné aplikace pro vícejádrové procesory, síťové aplikace, webové aplikace, visuální aplikace, multimediální aplikace, operační systémy, AAA hry a mnoho dalších)

Nástroj je dostupný, neustále se rozvijí, umožňuje dílčí problém zapsat čitelnou a jasnou formou a mnoho mnoho dalších aspektů.

Samozřejmě ani to, co jsem zde vypsal, nemusí znamenat, že je to nejlepší nástroj pro všechny. Každý preferujeme něco jiného. Obvykle to bývá komfort který je vývojáři poskytnut při používání toho daného nástroje (např. automatická správa paměti, apod).
Většinu z toho co jiné nástroje poskytují lze v C nahradit. Ano, vyžaduje to v lecčem více úsilí. Ale výkon, který C poskytuje, nahradit nelze. Samozřejmě ne vše si vyžaduje takový výkon abychom nutně používali C, od toho tu jsou další programovací jazyky, se kterými si lze vystačit.

Až něco z toho co jsem zde uvedl nebude možné a bude to pro mě stěžejní, pak mohu začít uvažovat o používání jiného nástroje.
V současnosti si však nedokáži představit, že bych vyvíjel vysoce výkonné, extrémně bezpečné a uživatelsky přátelské aplikace v něčem jiném než v C.

Nahoru Odpovědět
6.10.2021 15:24
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
weverka
Člen
Avatar
Odpovídá na DarkCoder
weverka:6.10.2021 15:26

Neříkám že C je špatně, ale spíše jednodušší a kód v C dokáže nadělat paseku.

Nahoru Odpovědět
6.10.2021 15:26
Weby jsou budoucnost IT
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Ladislav Šafránek
DarkCoder:6.10.2021 15:36

Jak postupovat při vytváření Windows aplikace v C++ je uvedeno na následujícím odkazu:
Návod: Vytvoření tradiční Windows Desktopové aplikace (C++)

Ale abys mohl začít vytvářet grafické aplikace pod Windows v C++, je třeba už mít patřičné znalosti.
Je tedy dobré začít postupně, psaním konzolových aplikací. Každá cesta začíná prvním krokem...

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

Hele pupíčku otázka je čím se chceš živit ... jako programátor v Javě v bance v praze si mužeš vydělat i 150tis měsíčně ...
Ta nejdůležitější otázka je 1/ Chci být programátor PLC (např. Siemens Simatic S7) nebo 2/ chci být WEBový programátor a musím se naučit HTML5+CSS3+Ja­vaScript což je základ pro vše ostatní 3/ chci být WEBový programátor v MS VS ASP C# .NET5 Razor/Blazor nebo 4/ chci být WEBový programátor v PHP + MySQL nebo 5/ chci být databázový programátor v MS SQL, PostgreSQL, MySQL, OpenSQL atd. nebo 6/ Chci být programátor her v C#+Unity a proto se musím přestěhovat do Brna nebo 7/ Chci být programátor pro MS VS C++ x64 + WinAPI + DirectX12 a proto se musím přestěhovat do USA nebo do Brna, nebo 8/ chci být programátor her pro mobilní telefony a proto se musím naučit Android Studio C++ a VULKAN (nebo OpenGL) nebo 9/ chci být embedded programátor a proto se usím naučit jazyk C a C++ nebo ... atd ...atd ... každopádně v dnešní době bych se nenápadně vetřel do nějaký firmy a učil bych se to za co ti někdo zaplatí ... protože ... život utíká hrozně rychle ... jenom abych tě připravil předem tak WEB programátor se zaučuje cca 3 roky a herní programátor v DirectX cca 6-7 let :)

C# je jak na hry s použitím Unity (2D/3D) tak i na desktopový aplikace. Mužeš použít jak starší knihovnu .NET 4.7.2 WinForms
nebo novější .NET5 WinForms nebo .NET5 WPF. Starší knihovna .NET 4.7.2 (a nižší číslo) se už nebude vyvíjet a proto bych doporučoval přejít od listopadu 2021 na .NET5. Základem pro C# je stáhnout si MS Visual Studio 2019 (KEY najdeš někde na netu).

https://1lib.cz/…0mathematics

https://www.programming-book.com/cpp/

 
Nahoru Odpovědět
9.10.2021 17:33
Avatar
JerryM
Člen
Avatar
JerryM:9.10.2021 17:40

ještě taková drobnost .. desktopovou aplikaci v C++ ? máš několik možností
1/ MS VS 2019 C++ s WinAPI + knihovnou MFC (to je stará knihovna z 90 let ale pořád se používá převážně v německu)
2/ MS VS 2019 C++ / Qt (což je moderní multiplatformní knihovna pro desktop i mobilní aplikace) můžeš používat překladač GCC nebo Clang nebo ten v MS VS
3/ MS VS 2019 C++/CLI pro starý .NET1.x, 2.x, 3.x, 4.x nebo i nový .NET5/6 ale bez !!! podpory knihoven WinForms nebo WPF takže se s tebe stane konzolový C++ programátor wrapperů z C/C++ do řízeného kodu Windows
4/ MS VS 2019 C++/Cx - do toho bych nešel je to odepsaný C++ jazyk od MS
5/ MS VS 2019 C++/WinRT nový prog. jazyk C++ od MS ještě se neví co z toho bude...
6/ No a pak je tady taky Intel Parallel C++ Studio pro vysoce výkonné počítače a výpočty .. ale to asi chcít nebudeš ...

a pak sem zapomněl na programátory v NVidia CUDA a AMD Khronos pro paralelní výpočty na grafických kartách ... to je taky v C++

 
Nahoru Odpovědět
9.10.2021 17:40
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 17 zpráv z 17.