IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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: Jaký programovací jazyk by jste mi doporučili?

Aktivity
Avatar
Odpovídá na Neaktivní uživatel
Luboš Běhounek Satik:4.2.2015 18:48
Na tejto stránke mi príde C# a .NET neskutočne propagovaný, až sa mi niekedy zdá, že je to reklama.

Většina programátorů, co znám a umí Javu i C#, tak se jim líp dělá v C#, tak je prostě možná oblíbenější :)

Odpovědět
4.2.2015 18:48
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Neaktivní uživatel:4.2.2015 19:18

Ja nevravím, že C# je zlý, len mi príde pre začiatok nevhodný, ale to je môj názor, nemusíš s ním súhlasiť. Iste je to jazyk v ktorom ide robiť skoro všetko, programuje sa v ňom pohodlnejšie ako v Jave, je o dosť modernejší(linq, async, await, struct, properties, EF,...). Mne osobne najviac sedí Java, pretože ma núti viac rozmýšľať nad tým čo píšem a ako to píšem, ale je to je čisto individuálne.

Nahoru Odpovědět
4.2.2015 19:18
Neaktivní uživatelský účet
Avatar
David Novák
Tvůrce
Avatar
David Novák:4.2.2015 19:32

možná jsem stará škola, ale pro začátečníky C nebo Pascal.. ;)
takhle tu máme tunu "programátorů", co si přečetli tutoriál, nahážou za sebe pár funkcí v C#, PHP apod a mají hotový program.. ale většinou jim chybí základy, nemyslí jako programátoři a jsou pak v reálu na cokoliv složitějšího nebo kreativního nepoužitelní..
C# je moc jednoduchý a příjemný na používání (to zní vtipně :D ) pro začátečníky.. na všechno jsou funkce.. paměť to hlídá za tebe.. a hlavně je tam fakt hodně funkcí a postupů.. zkus se jako začátečník prolouskat dokumentací..
kdežto klasické C je malé, jednoduché a v porovnání s C# toho moc neumí.. ideální na naučení se myslet jako programátor.. když si musíš napsat na pokročilejší věci svoje funkce, donutí tě to přemýšlet jak to udělat... a jak to udělat dobře.. v těch vyšších jazycích prostě jen google a použiješ jednu fci, kterou ti ještě napoví IDE, takže si nepamatuješ syntax.. pak budeš chtít práci, tak ti dají fixu, postaví před tabuli a programuj.. a jsi v prdeli.
učením se vy vyšších jazycích a třeba rovnou v OOP znamená, že se ve většině případů zanedbají základy.. :/
takže pokud někdo chce IT brát vážně, ať začne ve svém zájmu s C.. a ideálně ASM.. pochopení základů a jak PC vlastně interně funguje změní jeho styl myšlení a jedině tak se stane ajťákem :)

Nahoru Odpovědět
4.2.2015 19:32
Chyba je mezi klávesnicí a židlí.
Avatar
Kafac
Člen
Avatar
Kafac:4.2.2015 19:33

Já doporučuji c#,dá se v tom napsat rozumná hra.A ohledně multiplatformos­ti,tak asi 90% lidí používá windows a teď s Microsoft Visual Studio 2015 můžeš psát aplikace pro všechno android x iOS,protože myslím bude podporovat xamarin (teda myslím).C# je třeba méně výkonný než c++,ale na hry je oproti javě lepší c#.Vem si třeba minecraft,díky javě katastrofa s výkonem.

Nahoru Odpovědět
4.2.2015 19:33
"Lepší, než předpovídat budoucnost, je vytvořit ji." Bill Gates
Avatar
Odpovídá na Kafac
Neaktivní uživatel:4.2.2015 20:13

A toto je to čo sa mi nepáči, pchať jeden jazyk do všetkého nasilu... áno MS používa 90% užívateľov, ale v reálnom svete neexistuje iba Windows, jazyky sa pri vytváraní programov často kombinujú, pretože každý je vhodný na iný účel... a podľa toho by sa mali jazyky používať, proste neobmedzovať sa iba na jeden jediný.. A výkon Javy v hrách je podobný tomu v C#, keď teda vieš trochu čo píšeš.

Editováno 4.2.2015 20:14
Nahoru Odpovědět
4.2.2015 20:13
Neaktivní uživatelský účet
Avatar
hanpari
Člen
Avatar
Odpovídá na David Novák
hanpari:4.2.2015 20:20

S tím si dovolím nesouhlasit. Programovací jazyk je jenom nástroj, a C/C++ jsou neobyčejně nepohodlné nástroje.
Je sice pravda, že většina lidí si plete programování s kódováním, ale pro programování je nejdůležitější znalost algoritmů. A pro začátečníky ještě nenechat se odradit. Algoritmy si lze osvojit pohodlněji než v C téměř kdekoliv jinde a co se týče míry odrazení, to nebudu komentovat.

 
Nahoru Odpovědět
4.2.2015 20:20
Avatar
sahlepik
Člen
Avatar
sahlepik:4.2.2015 20:21

Vím, že programovací prostředi DELPHI už je asi dneska mimo mísu (i když stále existuje a vyvíjí se), ale pokud si vzpomínám, tak právě Object Pascal mi v začátcích připadal docela jednoduchý na pochopení a přitom zde šly tvořit velmi zajímavé konzolové i okenní aplikace. Nutno dodat, že DELPHI jsem použil naposledy v době, kdy bylo ve verzi 7 a to už je dávno (někde kolem roku 2000 až 2003 tuším).

 
Nahoru Odpovědět
4.2.2015 20:21
Avatar
Odpovídá na sahlepik
Neaktivní uživatel:4.2.2015 20:25

Podobne jednoduchý je aj Python napríklad, a súhlasím Delphi(Pascal) je fajn na učenie základov (naučiť a osvojiť si syntax jazyka je otázka pár dní)

Nahoru Odpovědět
4.2.2015 20:25
Neaktivní uživatelský účet
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na sahlepik
David Novák:4.2.2015 20:27

taky jsem začínal v Delphi..
a ty nové verze jsou teda už o něčem jiném.. ;)
dokonce je to multiplatformní.. :D Mac, iOS, Android a Win.. od 2011.. dlouho před C# ;) :D
a taky konečně vychytali spoustu bugů.. a přidali nové featury.. když potřebuju rychle naklikat nějakou aplikaci pro sebe, tak rozhodně ji udělám v delphi.. jednoduché, rychlé.. ideální pro RAD ;)

Nahoru Odpovědět
4.2.2015 20:27
Chyba je mezi klávesnicí a židlí.
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na hanpari
David Novák:4.2.2015 20:30

právě otázka odrazení je vcelku klíčová.. a když máš stovky a tisíce fcí na vše.. kdo se v tom má vyznat? a vědět, čím začít a co na co je..?
čím jednodušší a primitivnější jazyk, tím líp.. rozptylovat se nějakým GUI je ze začátku zbytečné.. hezky konzole a jede se ;)

Nahoru Odpovědět
4.2.2015 20:30
Chyba je mezi klávesnicí a židlí.
Avatar
Odpovídá na sahlepik
Luboš Běhounek Satik:4.2.2015 20:35

Delphi bylo super na okenní aplikace, protože tam to GUI šlo jednoduše naklikat.

Nahoru Odpovědět
4.2.2015 20:35
https://www.facebook.com/peasantsandcastles/
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
David Novák:4.2.2015 20:36

jj.. a na učení je super klasický Pascal.. resp. v Delphi se můžeš dobře naučit OOP ;)

Nahoru Odpovědět
4.2.2015 20:36
Chyba je mezi klávesnicí a židlí.
Avatar
Kafac
Člen
Avatar
Odpovídá na Neaktivní uživatel
Kafac:4.2.2015 20:37

Taky nemám rád,když každý obhajuje svůj jazyk,ale c# je aspoň na hry lepší,než java.Tak je mi jasný,že třeba java bude mít na androidu převahu.Ale programátoři i ve visual studiu budou moc hned programovat i pro android bez nějakýho toho mono developer atd.Nechci se dohadovat je to můj názor + pár lidí,jestli máš jiný názor,tak ho respektuji.

Nahoru Odpovědět
4.2.2015 20:37
"Lepší, než předpovídat budoucnost, je vytvořit ji." Bill Gates
Avatar
Odpovídá na Kafac
Neaktivní uživatel:4.2.2015 20:44

Ja neobhajujem žiadny jazyk, použijem ten, ktorý sa na daný problém hodí najviac a aj ja rešpektujem tvoj názor.

Nahoru Odpovědět
4.2.2015 20:44
Neaktivní uživatelský účet
Avatar
sorg
Člen
Avatar
Odpovídá na Neaktivní uživatel
sorg:6.2.2015 13:43

to, že se JAVA a C# moc neliší(oba jsou c-like jazyky, ale tady podbnost končí), to je pravda, až na to, že JAVA je jazyk interpretovaný, kdežto C# je JIT, JAVa je pomalý moloch, C# he rychlostně srovnatelné s C++ (v MS poslední léta moc pracovali na performance .NET). V C# není problém si sám sahnout do paměti (unsafe code), JAVA nic takového neumožňuje.
mimochodem .NET se používá bez nejmenších problémů na real time zpracování technologických dat. Jediné omezení se ktwerým jsem se setkal je rychlost procesoru, ale to není záležitost .NET.

 
Nahoru Odpovědět
6.2.2015 13:43
Avatar
Odpovídá na sorg
Neaktivní uživatel:6.2.2015 13:45
že JAVA je jazyk interpretovaný

ten bol dobrý ;) celkovo tvoj komentár nemá ani hlavu ani pätu a je plný nezmyslov

Editováno 6.2.2015 13:47
Nahoru Odpovědět
6.2.2015 13:45
Neaktivní uživatelský účet
Avatar
sorg
Člen
Avatar
Odpovídá na Neaktivní uživatel
sorg:6.2.2015 14:37

V čem se pletu? Konkrétně. Také obecné kecy cos mi tu napsal, můžou posloužit leda tvému pošramocenému sebevědomi. Fakta, co jsem napsal špatně

 
Nahoru Odpovědět
6.2.2015 14:37
Avatar
Odpovídá na sorg
Martin Vejvoda:6.2.2015 14:48

Java je stejně jako C# jazyk s virtuálním strojem
(viz http://www.itnetwork.cz/…et-framework)

Nahoru Odpovědět
6.2.2015 14:48
matika > informatika
Avatar
sorg
Člen
Avatar
Odpovídá na Martin Vejvoda
sorg:6.2.2015 15:49

Při kompilaci progamu napsaného v C# se program přeloží do IL. Při spuštění aplikace se při prvním zavolání metofy v IL kód přeloží do strojového kódu. Následně při dalším volání metody se metoda už nepřekládá do strojového kódu, ale už se bere již jednou přeložený úsek kódu.
Tomuto se dá vyhnou , kdež se použije prográmek ngen, který z kompilované assembly v C# udělá přímo nativní exe, nebo dll optimallizované pro daný procesor. S použitím .NET native (novinka z minulého roku) se kód napsan v C# hned kompiluje do strojového kódu.
Zdroj:
http://www.amazon.com/…p/0735667454
http://www.amazon.com/…p/0072224177
https://msdn.microsoft.com/…tnative.aspx
http://blogs.msdn.com/…preview.aspx

 
Nahoru Odpovědět
6.2.2015 15:49
Avatar
Odpovídá na sorg
Neaktivní uživatel:6.2.2015 17:55

Takže pekne po poriadku, podobnosť Javy a C# nekončí o podobnej syntaxe, oba jazyky využívajú na svoj beh virtuálny stroj (JVM alebo CLR). Java(Scala, clojure) je kompilovaná do bytekódu (podobne ako Python/Lua napríklad) a ten je následnej interpretovaný JIT-om. Podobne je to aj u C#, kde je kód compilovaný najskôr do IL a ten je následne interpretovaný JIT-om. Java nie je pomalý moloch (prečo by bol potom taký pomalý nepoužiteľný moloch jeden z najpoužívanejších jazykov toľké roky?) To, že je v C# možnosť unsafe kódu je síce pekné, ale povedz mi jedno reálne využitie v praxi, lebo mne žiadne nenapadá. Mimochodom pri JVM máš možnosť si ho nakonfigurovať ako len chceš (pomer veľkosti edenu a old generation v heape napríklad) neviem či sú také možnosť aj pri CLR.

Nahoru Odpovědět
6.2.2015 17:55
Neaktivní uživatelský účet
Avatar
sorg
Člen
Avatar
Odpovídá na Neaktivní uživatel
sorg:6.2.2015 18:26

Napíšu jen krátce, potom se trošku rozepíšu...skáčou tu po mně děti.
Unsafe kód používám celkem často při psaní algoritmů pro image processing, kdy obrázek musí být vyhodnocen do 5ms.
Já jsem nikde nepsla, že .NET nevyužívá virtuální stroj. Nakonec visrtuální stroje se využívají od doby prvního BASICu.
ano kód Javy a C# je překládán napřed do IL a potom do strojového kódu. Rozdíl je v tom jak je zpracován bytecode a jak IKL, ale o tom píšu výše. Kód u IL je přeložen do strojového kódu překládán v runtime MAXIMÁLNĚ jednou. Při prvním přeloženo, se do paměti uloží strojový kód a k při dalším volání dané metody se už z IL do strojového kódu nepřekládá. Toto značně urychluje běh aplikací. U JAVy je kód interpretován průběžně pořád znovu a znovu, což je jak sám uznáš trošku zbytečná práce pořád dokola. Ale budiž, prvni se objevila JAVA, při konstrukci CLR se využily zkušenosti z JVM a vylepšilo se to, to je přirozený proces. Vždy se určitý technologický, nebo vědecký pokrok staví na úspěších, nebo neúspěších z minulosti. i Isaac Newton, který posunul matematiku, fyziku i celý pohled na svět řekl, že na to nepřišel sám, ale "stál na ramenou obrů".
Je samozřejmě možné, že se někdy popletu, nejsem vševědoucí. Ale psát, že je C# podbný Javě, protože je C-like a používá virtuální stroj není nesprávné, ale trošku nepřesné. C-like jazyků znám (hlavně podle jména) kolem 30, interpretovaných jazyků je mnohem více než 30.
CLR jde zkonfigurovat také velmi přesně, jak samotný virtuální stroj, tak zdrojový kód na úrovní vykonávaní jednotlivých řádků. Sám jsem parkrát psal standartní kód v C# a na pár řádků jsem použil unsafe kód kvůlí rychlosti. Tj. nadefinaval jsem si ukazatale a pracovl jsem přímoc v paměti jako v C++.

Co se týká performance .NET, v posledních letech v Microsoftu tvrdé pracují na rychlosti CLR a jde to znát. KDysi se možna dalo říct, že C# je kopie JAVA, ale dnes už to neplatí.

S Javou jako pomalou, má pár hodně negatívních zkušebistí pár zákazníku firmy pro kterou jsem dělam (vlastně i v pár předchozích firmách kde jsem dělal) a ti kvůlli mnoha důvodům, a jedním z těchto důvodů je i rychlost nechtějí Javu, ale C#. Navíc sám jsem programoval pár čistě serverových systému v .NET.

Javě podle mně škodí taky velké množství ne vždy zpětně kompatibilních aktualizací. Tenhle problém v .NET není. Napíšu něco v .NET 2.0, tak to jede i na stroji kde je jen .NET 4.5. (u Silverlightu to až tak neplatilo, ale ten dal stejně MS k ledu).

 
Nahoru Odpovědět
6.2.2015 18:26
Avatar
Odpovídá na sorg
Neaktivní uživatel:6.2.2015 18:41

Len do toho, keď ma presvedčíš, rád zmením svoj názor, zatiaľ vyzerá, že vieš o čom píšeš, táto problematika ma zaujíma, rád sa dozviem nové veci. Dovolím si poznámku, že v JVM existuje niečo ako HotSpot Compilation.

Nahoru Odpovědět
6.2.2015 18:41
Neaktivní uživatelský účet
Avatar
Odpovídá na sorg
Luboš Běhounek Satik:6.2.2015 19:06

Java používá JIT stejně jako .NET, takže IL je před spuštěním zkompilován do nativního kódu (i když to nemusí platit na všech OS a HW, ale obvykle ano), takže je rychlost srovnatelná s .NET.

Unsafe se pro běžné programování nehodí, ale jak už tu bylo zmíněno, je super třeba pro urychlení práce s jednotlivými pixely nebo někdy pokud se používá nějaká nativní knihovna, ke které třeba nemáš zdrojáky a posílá ti pointery.

Nahoru Odpovědět
6.2.2015 19:06
https://www.facebook.com/peasantsandcastles/
Avatar
David.Landa
Člen
Avatar
Odpovídá na Luboš Běhounek Satik
David.Landa:6.2.2015 19:42

Jestli se nepletu C# kompiluje do nativního kódu hned, Java ne:

– bajtkód každé metody je tedy nejdříve relativně pomalu interpretován a teprve poté, pokud se daná metoda volá často nebo pokud se některá smyčka v metodě opakuje po zadanou mez, se metoda či jen její často opakovaná smyčka přeloží

http://www.root.cz/…nych-v-jave/

 
Nahoru Odpovědět
6.2.2015 19:42
Avatar
David.Landa
Člen
Avatar
Odpovídá na alexneti
David.Landa:6.2.2015 19:46

K výkonu povolání se nauč angličtinu, ale nikdo ti nezaručí, že si s ní vystačíš celý život. Na rovinu, vybírat si jazyk podle momentálního množství nabídek práce je trochu krátkozraké. F# může být stejně tak dobrý jako C#. Nevím co se ti na tomto názoru nelíbí.

Editováno 6.2.2015 19:47
 
Nahoru Odpovědět
6.2.2015 19:46
Avatar
David.Landa
Člen
Avatar
Odpovídá na Neaktivní uživatel
David.Landa:6.2.2015 19:54

To že je Java interpretovaný jazyk je vpodstatě pravda, vůbec to neodporuje tomu, že je i kompilovaný -- do bytecode a pak interpretovaný -- druhá věc je JIT -- pak už jde interpret stranou.

 
Nahoru Odpovědět
6.2.2015 19:54
Avatar
alexneti
Člen
Avatar
Odpovídá na David.Landa
alexneti:6.2.2015 20:03

Uplne vse.

 
Nahoru Odpovědět
6.2.2015 20:03
Avatar
paja
Člen
Avatar
paja:7.2.2015 0:06

No co se mne tyka tak jsme ve skole zacinali s C/C++ , je to sice tezke /alespon pro mne / ale pokud se naucis alespon zaklady, a napises v tom neco , tak Ti nebude delat problemy se naucit jiny jazyk.

Ja jsem potom presel na Javu ve ktery chvili/par let/ delal, me se na ni libi prenositelnost a univerzalnost.Je dost zadana...

Ted jsem trosku kvuli praci donuceny se naucit C# protoze se proste pouziva :-), takze tutorialy zde jsem velmi ocenil.

Tzn S Javou si vydelas na 100% a s C# docela taky. Takze nejlepe oboji.

 
Nahoru Odpovědět
7.2.2015 0:06
Avatar
coells
Tvůrce
Avatar
Odpovídá na sorg
coells:7.2.2015 1:18
  • Java je pomalá, protože si to myslí jeden zákazník (aka mají aplikaci, která neškáluje, takže Java musí být pomalá)
  • C# je rychlý, protože můžeš psát unsafe kód

Ale to jsou přece tak hrozné bláboly... ke zbytku se snad ani nebudu vyjadřovat, snad jen dodám, že při přechodu na vyšší verzi .NET jsem vždy musel řešit zpětnou kompatibilitu, která není až tak samozřejmá, viz https://msdn.microsoft.com/….110%29.aspx

Údajná "pomalost" C# a Javy přece není ve způsobu překladu, interpretaci ani provádění kódu, může za to garbage collector. Pokud bys mohl použít reference counting místo GC, bude výkonnost nerozpoznatelná. Jak .NET, tak Java běží sice běží na stack-based virtual machines, jenže potenciální overhead, který vzniká, řeší MIMD architektura moderních procesorů.

Před chvilkou jsem si napsal program pro výpočet 109 prvočísel, protože tam nemá GC nic práci a lepší zvýhodnění pro C bych stěží hledal. Výsledky:
C (gcc -O0) - 11.8s
C (gcc -O3 -m64) - 6.1s
C (gcc -O3 -m32) - 8.4s
Java (-Xmx=1024m) - 6.5s

Než začneš zase plácat nesmysly, dobře se nad těmi výsledky zamysli, říkají toho opravdu hodně. Ještě lépe, zkus si udělat vlastní testy, napsat DSP aplikaci s vyřazeným GC je práce na pár minut.

Také mě živí tvorba back-end systémů. Dělal jsem si řadu testů a C# mi v posledním roce vyšel o 10-30% pomalejší (v testech zvýhodňujících C++), než MS/VC++, což je skvělý výsledek. Navíc je C# rychlejší než GCC v řádech desítek procent.

Dále, unsafe kód v C# - psal jsem řadu testů, když jsem potřeboval vlastní BLAS knihovny a unsafe kód je stejně rychlý jako safe kód. Performance gain se získává přes cache-locality a minimalizaci výpadků stránek v L2 a L3. Správně navržený algoritmus s ohledem na lokalitu dat poběží v safe kódu řádově rychleji, než plain unsafe kód. Z toho důvodu se DSP algoritmy zpravidla píšou v C/C++, jenže nikoliv proto, že by bylo C rychlejší, ale aby bylo možné optimalizovat instrukční sadu. Intel, AMD, Apple a další mají vlastní knihovny specializované často na jedinou verzi z celé řady vlastních procesorů. Ale to už se dostáváme jinam.

Samotnou kapitolou je definice rychlosti. Jedna věc je aplikace běžící na řádově jednotkách CPU, druhá věc je škálovatelnost s ohledem na HW, třetí pohled nabízí rostoucí složitost aplikace. Také v oblasti cloud-computingu se Java s přehledem drží na předních příčkách.

Špatně napsaná aplikace poběží stejně pomalu v C, Javě i C#. Pokud si někdo vyvozuje rychlost platformy na základě nekoretního chování aplikace, je to ukazatelem nedostatku informací a nekorektních inferencí, ale jako matematik bys měl vědět, že to má daleko do rigorózní studie.

Na tohle téma bych mohl mluvit ještě dlouho, ale větší smysl by mělo, kdyby sis nastudoval relevantní a spolehlivé informace, místo aby "jedna bába povídala".

 
Nahoru Odpovědět
7.2.2015 1:18
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 29 zpráv z 79.