Zacít s C nebo c++? Je to vůbec dobré rozhodnutí? Vyřešeno

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?

Příspěvekod faraon » 22 led 2015 20:31

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?
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Reklama
Uživatelský avatar
satik
Level 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?

Příspěvekod satik » 22 led 2015 20:42

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.
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

Uživatelský avatar
Oxxid
člen BSOD týmu
Master Level 8
Master Level 8
Příspěvky: 6194
Registrován: prosinec 12
Pohlaví: Muž
Stav:
Offline

Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?

Příspěvekod Oxxid » 22 led 2015 21:14

C# rozdejes na vsech mobilnich platformach treba pomoci Xamarinu. Faraon nema rad MS ani cokoli s nim spojene :lol:

Uživatelský avatar
satik
Level 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?

Příspěvekod satik » 22 led 2015 21:24

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

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?

Příspěvekod faraon » 22 led 2015 21:36

Když už se tady tak krásně hádáme, tak přidám jeden trochu offtopic:
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říkaz

Kód: Vybrat vše

List<String> lines = File.ReadAllLines("soubor.txt");

Zkus 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 :)

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:

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! }

Což je totéž na jednom řádku, plus okamžitá kontrola chyb. Co se stane u tebe, když se soubor nenačte?

satik píše:C# je přeložené do bajtkódu...

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.
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:
  1. Nauč se Lisp, ať pochopíš funkcionální programování.
  2. Nauč se Smalltalk, ať pochopíš objektové programování.
  3. Nauč se C, ať pochopíš strukturované programování.
  4. Nauč se Prolog, ať pochopíš logické programování.
Ten zbytek už pak tak nějak přijde sám.

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)

Uživatelský avatar
satik
Level 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?

Příspěvekod satik » 23 led 2015 08:01

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/#mscorlib/system/io/file.cs,675b2259e8706c26

Co se stane u tebe, když se soubor nenačte?

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/library/s2tte0y1(v=vs.110).aspx :)

Stačí jen umět použít google, případně znát stránky microsoftu :)

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.

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:
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.

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.

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!

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/archive/2013/06/21/net-microframework-on-raspberrypi-part-1.aspx .

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/3bw53rf842qra9u/AACZSaC3WCGEfChgaIqfjaywa?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

Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: květen 07
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?

Příspěvekod X » 23 led 2015 10:08

Ještě k Pure Basicu:

viewtopic.php?f=11&t=50135&start=22

Příkazy Pure Basicu >>> viewtopic.php?f=61&t=130784&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):

Obrázek

Uživatelský avatar
satik
Level 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?  Vyřešeno

Příspěvekod satik » 23 led 2015 10:35

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)

Nepřesné a zavádějící (stejně jako ten obrázek).

.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/library/k5532s8a(v=vs.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

Rutherther
Level 2
Level 2
Příspěvky: 227
Registrován: říjen 14
Pohlaví: Muž
Stav:
Offline

Re: Zacít s C nebo c++? Je to vůbec dobré rozhodnutí?

Příspěvekod Rutherther » 23 led 2015 22:08

Ještě jednou díky všem. Myslím, že není co řešit, takže lock.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů