Ještě jedna poznámka, ta Java nebo C#, to je něco jako bys chtěl trávníček před domkem posekat kombajnem. Je to určitě jednodušší a rychleji proveditelné než míchat benzín s olejem do sekačky, startovat jí lankem, a půl odpoledne šmaťchat sem a tam. Ale ať chceš nebo nechceš, musíš sebou vláčet celý kombajn, i s jeho spotřebou a randálem. Je to opravdu potřeba?
Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?
Moderátor: Mods_senior
Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?
Také je tu ještě možnost použít Python a Pygame, takže to bude snadno přenositelné na jakýkoliv počítač, tablet, a spoustu mobilů 
Ještě jedna poznámka, ta Java nebo C#, to je něco jako bys chtěl trávníček před domkem posekat kombajnem. Je to určitě jednodušší a rychleji proveditelné než míchat benzín s olejem do sekačky, startovat jí lankem, a půl odpoledne šmaťchat sem a tam. Ale ať chceš nebo nechceš, musíš sebou vláčet celý kombajn, i s jeho spotřebou a randálem. Je to opravdu potřeba?
Ještě jedna poznámka, ta Java nebo C#, to je něco jako bys chtěl trávníček před domkem posekat kombajnem. Je to určitě jednodušší a rychleji proveditelné než míchat benzín s olejem do sekačky, startovat jí lankem, a půl odpoledne šmaťchat sem a tam. Ale ať chceš nebo nechceš, musíš sebou vláčet celý kombajn, i s jeho spotřebou a randálem. Je to opravdu potřeba?
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
- satik
- Level 6

- Příspěvky: 3509
- Registrován: 09 led 2015 12:49
- Bydliště: Krkonoše
- Kontaktovat uživatele:
Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?
C# / Javu dneska taky rozjedeš všude :)
U C# na Windows máš jistotu, že v PC už je .NET 3.5, dokonce mám pocit, že i 4.5, což je cca 80-90% všech PC, na Linuxu to lehce rozjedeš přes mono (a navíc MS chystá .NET pro Linux).
Navíc je i micro dot net framework, takže ho můžeš rozjet už i v různých přístrojích.
U C# na Windows máš jistotu, že v PC už je .NET 3.5, dokonce mám pocit, že i 4.5, což je cca 80-90% všech PC, na Linuxu to lehce rozjedeš přes mono (a navíc MS chystá .NET pro Linux).
Navíc je i micro dot net framework, takže ho můžeš rozjet už i v různých přístrojích.
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?
C# rozdejes na vsech mobilnich platformach treba pomoci Xamarinu. Faraon nema rad MS ani cokoli s nim spojene 
- satik
- Level 6

- Příspěvky: 3509
- Registrován: 09 led 2015 12:49
- Bydliště: Krkonoše
- Kontaktovat uživatele:
Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?
To je mi jasne podle jeho avatara :)
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?
Když už se tady tak krásně hádáme, tak přidám jeden trochu offtopic:
Což je totéž na jednom řádku, plus okamžitá kontrola chyb. Co se stane u tebe, když se soubor nenačte?
U některých počítačů, jako třeba Wang nebo Sinclair, se dokonce ty tokeny zadávaly z klávesnice přímo, tím že každé klávese byly přiřazené přímo konkrétní kódy, a pro vložení klíčového slova stačil jeden stisk, místo zdlouhavého vypisování po písmenkách a převádění z textu. Díky tomu se vešel do pár kilobajtů ROM.
Když si k tomu přidáš všechno co ten BASIC prováděl, od zpřístupnění periférií, práce s grafikou včetně spritů nebo zvukem, kompletně dynamickou správu paměti (samozřejmě to nesměl být ubohý M$ crippleware na Commodore 64, kde se všechno muselo dělat přes POKE), zjistíš že třeba .NET toho dnes neumí o moc víc... Jo, ten má prý být někdy v budoucnu i pro Linux, ale já ten program chci mít právě teď a potřebuji ho rozjet na Raspberry Pi pod Plan9!
Takže bych to uzavřel:
A tohle doporučuji důkladně prostudovat, vzniklo to dávno před mým avatarem:
https://web.archive.org/web/20111011140 ... icrosoft-1
https://web.archive.org/web/20111011130 ... icrosoft-2
https://web.archive.org/web/20111011202 ... icrosoft-3
No právě. Samozřejmě že v jazyce který má deset příkazů a nějaké dvě stovky funkcí ve standardních knihovnách (které najdu na kterékoliv platformě) si můžu načíst soubor do paměti jakýmkoliv způsobem si vymyslím, zatímco v jazyce obsahujícím v základu čtvrt milionu metod si prostě vygooglím nějakou, která aspoň vzdáleně připomíná to co bych chtěl udělat, tu tam plácnu, a ani zbla netuším co za bugy, prasárny a backdoory obsahuje. Hm, tak já radši udělám tohle:satik píše:Fuk to je co se týče výsledku, ale např. v C# načíst řádky textového souboru je jeden krátký příkazZkus si napsat kód se stejnou funkčností v C++, bude to nejspíš kolem 10 řádků, když se budeš hodně snažit, nacpeš to možná i do pěti :)Kód: Vybrat vše
List<String> lines = File.ReadAllLines("soubor.txt");
Kód: Vybrat vše
include "moje_werky.h"
char **lines;
if (( lines = file_read_all_lines("soubor.txt") ))
{ něco provedu }
else
{ Error, soubor nelze číst! }
Ale no tak, a co je to vlastně ten bytekód? Slyšel jsi někdy pojem tokenizovaný BASIC? Zdrojový kód programu se totiž sice zapisuje a zobrazuje v textové formě, ale v paměti je uložený v jakémsi "polopřekladu", tedy že pro každý příkaz a každý prvek existuje určitý kód, který se pak v interpretu provádí přímo, bez nějakého zdržování se porovnáváním řetězců. Takže BASIC je také bytekód pro virtuální stroj, jenom se mu tak před padesáti lety ještě neříkalo.satik píše:C# je přeložené do bajtkódu...
U některých počítačů, jako třeba Wang nebo Sinclair, se dokonce ty tokeny zadávaly z klávesnice přímo, tím že každé klávese byly přiřazené přímo konkrétní kódy, a pro vložení klíčového slova stačil jeden stisk, místo zdlouhavého vypisování po písmenkách a převádění z textu. Díky tomu se vešel do pár kilobajtů ROM.
Když si k tomu přidáš všechno co ten BASIC prováděl, od zpřístupnění periférií, práce s grafikou včetně spritů nebo zvukem, kompletně dynamickou správu paměti (samozřejmě to nesměl být ubohý M$ crippleware na Commodore 64, kde se všechno muselo dělat přes POKE), zjistíš že třeba .NET toho dnes neumí o moc víc... Jo, ten má prý být někdy v budoucnu i pro Linux, ale já ten program chci mít právě teď a potřebuji ho rozjet na Raspberry Pi pod Plan9!
Takže bych to uzavřel:
- Nauč se Lisp, ať pochopíš funkcionální programování.
- Nauč se Smalltalk, ať pochopíš objektové programování.
- Nauč se C, ať pochopíš strukturované programování.
- Nauč se Prolog, ať pochopíš logické programování.
A tohle doporučuji důkladně prostudovat, vzniklo to dávno před mým avatarem:
https://web.archive.org/web/20111011140 ... icrosoft-1
https://web.archive.org/web/20111011130 ... icrosoft-2
https://web.archive.org/web/20111011202 ... icrosoft-3
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
- satik
- Level 6

- Příspěvky: 3509
- Registrován: 09 led 2015 12:49
- Bydliště: Krkonoše
- Kontaktovat uživatele:
Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?
Použití máš sice na jeden řádek, ale nějak jsi pozapomněl, že nejdřív musíš napsat ty dva soubory moje_werky.h a moje_werky.c(pp) , takže je to ve výsledku třeba 15 řádků :)
A proč vynalézat kolo, když už to někdo napsal za mě? Samozřejmě si to můžeš napsat svým způsobem, pokud ti ten jejich nevyhovuje, ale to se stane málokdy.
Bugy a prasárny můžeš najít všude, opravdu si myslíš, že jsi lepší programátor než ti v Microsoftu? A backdoory? Tím myslíš co? Klidně se můžeš podívat na zdrojové kódy, jak mají co napsané, tady si můžeš najít třeba zmiňované File.ReadAllLines(): http://referencesource.microsoft.com/#m ... 59e8706c26
Stačí jen umět použít google, případně znát stránky microsoftu :)
Důvody, proč máš / nemáš rád tu či onu firmu jsou tvoje věc, já se snažím věci posuzovat objektivně (i když je to těžké a taky se mi to nedaří vždy :) ) podle produktů.
--- Doplnění předchozího příspěvku (23 Led 2015 08:13) ---
A ještě když tu byl zmiňován Wolfenstein v prohlížeči, tak přidám variaci na Wolfensteina psanou v C# včetně zdrojáků https://www.dropbox.com/sh/3bw53rf842qr ... jaywa?dl=0 (já psal hru, kámoš editor).
Má to asi 8000 řádků, kdyby jsi to psal v C++, tak bys byl rád, kdybys to nacpal pod 15 000 řádků :)
A proč vynalézat kolo, když už to někdo napsal za mě? Samozřejmě si to můžeš napsat svým způsobem, pokud ti ten jejich nevyhovuje, ale to se stane málokdy.
Bugy a prasárny můžeš najít všude, opravdu si myslíš, že jsi lepší programátor než ti v Microsoftu? A backdoory? Tím myslíš co? Klidně se můžeš podívat na zdrojové kódy, jak mají co napsané, tady si můžeš najít třeba zmiňované File.ReadAllLines(): http://referencesource.microsoft.com/#m ... 59e8706c26
Vyhodí se odpovídající výjimka, překvapivě, detailněji popsané to máš na webu, pro jistotu ti to linknu https://msdn.microsoft.com/en-us/librar ... .110).aspx :)Co se stane u tebe, když se soubor nenačte?
Stačí jen umět použít google, případně znát stránky microsoftu :)
Tvrdím snad někde něco jiného? :) Přečti si i druhou část toho mého souvětí, pro jistotu ti to důležité zvýrazním:Ale no tak, a co je to vlastně ten bytekód? Slyšel jsi někdy pojem tokenizovaný BASIC? Zdrojový kód programu se totiž sice zapisuje a zobrazuje v textové formě, ale v paměti je uložený v jakémsi "polopřekladu", tedy že pro každý příkaz a každý prvek existuje určitý kód, který se pak v interpretu provádí přímo, bez nějakého zdržování se porovnáváním řetězců. Takže BASIC je také bytekód pro virtuální stroj, jenom se mu tak před padesáti lety ještě neříkalo.
Použití bajtkódu samo o sobě neříká nic o tom, jestli je program interpretován nebo ne, to záleží až na tom, jestli ty tokeny jsou prováděny jeden po druhém a nebo je vygenerován a spouštěn až výsledný strojový kód.C# je přeložené do bajtkódu (MSIL - něco jako assembler, ale ještě nezávislý na procesoru) a ten je pak na počítači, kde se kód spouští, přeložen normálně do strojového kódu přímo pro daný procesor (a optimalizován) - tudíž může mít i výhodu optimalizace pro konkrétní procesor, zatímco aplikace napsaná v C++ ne.
Pak si to napiš v tom jazyce, který podporuje Plan9, pokud by nebyl podmínkou Plan9, pak na RaspBerry můžeš použít .NET Microframework http://blogs.msdn.com/b/laurelle/archiv ... art-1.aspx .Jo, ten má prý být někdy v budoucnu i pro Linux, ale já ten program chci mít právě teď a potřebuji ho rozjet na Raspberry Pi pod Plan9!
Důvody, proč máš / nemáš rád tu či onu firmu jsou tvoje věc, já se snažím věci posuzovat objektivně (i když je to těžké a taky se mi to nedaří vždy :) ) podle produktů.
--- Doplnění předchozího příspěvku (23 Led 2015 08:13) ---
A ještě když tu byl zmiňován Wolfenstein v prohlížeči, tak přidám variaci na Wolfensteina psanou v C# včetně zdrojáků https://www.dropbox.com/sh/3bw53rf842qr ... jaywa?dl=0 (já psal hru, kámoš editor).
Má to asi 8000 řádků, kdyby jsi to psal v C++, tak bys byl rád, kdybys to nacpal pod 15 000 řádků :)
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?
Ještě k Pure Basicu:
http://www.pc-help.cz/viewtopic.php?f=1 ... 5&start=22
Příkazy Pure Basicu >>> http://www.pc-help.cz/viewtopic.php?f=6 ... 4&start=36
Kniha o Pure Basicu (zhodnocení), 89 stran, česky >>> http://people.fsv.cvut.cz/~svobodal/pur ... eBasic.doc
Pure Basic lze použít pro cokoli, i 3D hry, objektové programování ... je mimochodem rychlejší než C#.
Upřesnění k C# (a obecně k #):
C# není intepretovaný jazyk, jede na virtuálním stroji: zkompiluje se do meziproduktu (CIL) a to pak šlape jako intepretr (rychlost je mezi interpretem a kompilerem):

http://www.pc-help.cz/viewtopic.php?f=1 ... 5&start=22
Příkazy Pure Basicu >>> http://www.pc-help.cz/viewtopic.php?f=6 ... 4&start=36
Kniha o Pure Basicu (zhodnocení), 89 stran, česky >>> http://people.fsv.cvut.cz/~svobodal/pur ... eBasic.doc
Pure Basic lze použít pro cokoli, i 3D hry, objektové programování ... je mimochodem rychlejší než C#.
Upřesnění k C# (a obecně k #):
C# není intepretovaný jazyk, jede na virtuálním stroji: zkompiluje se do meziproduktu (CIL) a to pak šlape jako intepretr (rychlost je mezi interpretem a kompilerem):

- satik
- Level 6

- Příspěvky: 3509
- Registrován: 09 led 2015 12:49
- Bydliště: Krkonoše
- Kontaktovat uživatele:
Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?
Nepřesné a zavádějící (stejně jako ten obrázek).C# není intepretovaný jazyk, jede na virtuálním stroji: zkompiluje se do meziproduktu (CIL) a to pak šlape jako intepretr (rychlost je mezi interpretem a kompilerem)
.cs zdrojáky jsou zkompilovány do MSIL který je pak uložený v managed .exe nebo .dll
Při spuštění se to načte do CLR, který to přeloží do nativního kódu přímo pro daný procesor a až to se pak spouští. Proto je rychlost téměř srovnatelná s C++.
Podrobněji zde:
https://msdn.microsoft.com/en-us/librar ... s.90).aspx
https://msdn.microsoft.com/en-us/library/z1zx9t92.aspx
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
-
Rutherther
- Level 2

- Příspěvky: 227
- Registrován: 10 říj 2014 13:01
Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?
Ještě jednou díky všem. Myslím, že není co řešit, takže lock.


