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í.
Avatar
martinkobelka
Tvůrce
Avatar
martinkobelka:12.8.2012 14:13

Zdravím
Už cca rok programuji webové stránky, a myslím si, že to zvládám dobře. Nyní bych chtěl začít dělat i desctopové aplikace, a nevím jaký jazyk zvolit. Vybírám si mezi javou, a c#. Chtěl bych jazyk, který má nejlepší budoucnost.
Když vidím, jak uživatelé reaguji na windows 8, tak nevím, jestli má smysl se c# učit. Co si myslíte vy, co bych měl vybrat?

 
Odpovědět
12.8.2012 14:13
Avatar
Odpovídá na martinkobelka
Drahomír Hanák:12.8.2012 14:33

Jsou to srovnatelné jazyky. C# má oproti Jave vše již vyřešené (XNA, WPF, ASP .NET MVC a další). Tím myslím, že vše již dodal výrobce, kdežto v javě si programátoři museli některé věci napsat sami, a tak existuje spousta (externích) knihoven, které danou funčknost zajišťují i v javě. V té zas můžeš vyvíjet pro android, což v C# nelze (alespoň co já vím). Na druhou stranu C# je jediný programovací jazyk pro Windows Phone nebo xbox. Co jsem se tak koukal, poptávka po obou těchto jazycích je velmi velká a určitě se uplatníš ať už si vybereš cokoli. Osobně mi přijde jednodušší začít v C#, ale to je jen můj názor. Java se také učí velmi rychle. Ohledně Windows 8 toho moc nevím, ale snad to nebude tak hrozné, ale to uvidíme později.

 
Nahoru Odpovědět
12.8.2012 14:33
Avatar
martinkobelka
Tvůrce
Avatar
martinkobelka:12.8.2012 14:44

Díky. Zatím pro mě vede java, protože bych mohl používat netbeans, který používám i pro php, ale ještě se může vše změnit.

 
Nahoru Odpovědět
12.8.2012 14:44
Avatar
matesax
Tvůrce
Avatar
matesax:12.8.2012 14:48

Pardon, ale Javu používat na descop? (vím že to jde) Naprostý nesmysl nad tím váhat - Java = web, C# = obojí... Proto jsem se zaměřil na C# - jde v něm všechno - Desop - WF/WPF, Web - ASP a hry - XNA - není důvod váhat...

 
Nahoru Odpovědět
12.8.2012 14:48
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na martinkobelka
David Hartinger:12.8.2012 14:49

C# je lepší jazyk, Java má větší komunitu. Obojím se uživíš, oboje má budoucnost.

Nahoru Odpovědět
12.8.2012 14:49
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na matesax
matesax:12.8.2012 14:49

Pardon za ty zkomoleniny - samozřejmě je to Desktop...

 
Nahoru Odpovědět
12.8.2012 14:49
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Drahomír Hanák
matesax:12.8.2012 14:50

NN android v C# jde...

 
Nahoru Odpovědět
12.8.2012 14:50
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na martinkobelka
David Jančík:12.8.2012 14:50

Tjo NetBeans nepoužívej. Je to hrozně pomalé IDE. Eclipse je o mnoho rychlejší. Dá se tam stáhnout i plugin na PHP.
Chtěli jsme v NB dělat novou verzi Islandsoftu ale načtení projektu trvalo asi 2 minuty a když jsme chtěli něco přidat nebo modifikovat, trvalo to další minutu.
Od té doby upe používám Eclipse a dělám, že jsem spokojenej uživatel Javy :D

Nahoru Odpovědět
12.8.2012 14:50
Zapomeň, že je to nemožné a udělej to ;)
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na matesax
David Jančík:12.8.2012 14:51

Jde ale projekt mono for android není tak úplně freeware ostatně jako další mono projekty. Nwm ale v tomhle u mě vede Java.

Nahoru Odpovědět
12.8.2012 14:51
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Fugiczek
Tvůrce
Avatar
Odpovídá na martinkobelka
Fugiczek:12.8.2012 14:51

Ještě bych dodal že u Javy program spustíš na jakémkoliv OS (Windows, Linux, Mac) jediný rozdíl je pak vzhled aplikace, protože java na každém OS má jiný Look&Feel ale jinak funkčnost zůstává. Samozřejmě C# jde na Linuxu spustit také ale potřebuješ na to knihovny a je to složité.

 
Nahoru Odpovědět
12.8.2012 14:51
Avatar
Fugiczek
Tvůrce
Avatar
Odpovídá na matesax
Fugiczek:12.8.2012 14:55

S tímhle nesouhlasím, že je Java je jenom na web aplikace. Sice je pravda že díky tomuhle vzrostla u ní popularita ale jinak v ní jdou dělat plnohodnotné desktopové aplikace. Tak jako hry, vem si populární hru Minecraft, taky je v Javě.

 
Nahoru Odpovědět
12.8.2012 14:55
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Fugiczek
David Jančík:12.8.2012 14:57

Multiplatformost bych takto neřešil. Pokud děláš nějaký program a chceš aby bylo možné jej používat na více OS tak ve většině případů jej budeš muset navrhnout jinak nebo několik částí změnit aby ti tam chodil korektně.
Jen obecné algoritmy lze jednoduše přemigrovat na všechny platformy.

C# jde v monu na linuxech spustit docela hezky. Jen je pomalejší spouštění a občas není tak svižný. Ale vzhledem k tomu, že 99% uživatelů používá Windows a nerozumí tomu, tak vývojáři upřednostňují vývoj pro tuto platformu, aby program rozšířili a používalo jej více lidí.

Vše záleží na návrhu programu. Toto by si měl programátor zvolit před tím, než započne něco nesmyslně "bušit". K čemu ten program má být, jak má fungovat, v čem ho bude dělat a jestli jej potřebuje rozjet na dalších OS případně jiných zařízeních.

Nahoru Odpovědět
12.8.2012 14:57
Zapomeň, že je to nemožné a udělej to ;)
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na martinkobelka
David Hartinger:12.8.2012 14:58

Jako můžeme se tu dohadovat celý den, ale ve finále je to úplně jedno :). Java i C# vycházejí ze stejného konceptu, fungují na stejném principu a po obou je velká poptávka a bude ještě větší.

Já bych na C# nenechal dopustit, protože jazykem je mnohem modernější, než Java, je tam opraveno mnoho chyb v návrhu Javy. Java je zase zadarmo, ale o to je v ní větší bordel :)

Nahoru Odpovědět
12.8.2012 14:58
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:12.8.2012 14:59

A nikdo tu nezmínil .NET framework :)

Nahoru Odpovědět
12.8.2012 14:59
New kid back on the block with a R.I.P
Avatar
Fugiczek
Tvůrce
Avatar
Odpovídá na David Hartinger
Fugiczek:12.8.2012 15:02

Mrkvosoft jen počkal až byla Java opensource a ukradl to. Možná něco vylepšil a změnil ale origál zůstává originál :)

 
Nahoru Odpovědět
12.8.2012 15:02
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Fugiczek
David Hartinger:12.8.2012 15:10

Ale vůbec :) MS vyvíjel od začátku svou Javu, poté se pohádal s Oracle a navrhl C#.

Nahoru Odpovědět
12.8.2012 15:10
New kid back on the block with a R.I.P
Avatar
Fugiczek
Tvůrce
Avatar
Odpovídá na David Hartinger
Fugiczek:12.8.2012 15:13

Jak jsi říkal takovéhle diskuze jsou na dlouho, každý má svůj názor a martinkobelka si vybere jazyk který mu bude nejvíce sympatický :)

 
Nahoru Odpovědět
12.8.2012 15:13
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Fugiczek
David Hartinger:12.8.2012 15:15

Ať si klidně vybere Javu, je to dobrý jazyk. Já jen říkám, jak to bylo s Microsoftem, on si Javu dělal trochu po svém a Oracle se s ním soudil, že nerespektuje jeho standard, proto MS od Javy upustil a udělal C#.

Nahoru Odpovědět
12.8.2012 15:15
New kid back on the block with a R.I.P
Avatar
Don
Člen
Avatar
Odpovídá na martinkobelka
Don:12.8.2012 16:12

Pokud chceš vyvíjet pro linux/andorid/web java/python. Pokud chceš být omezen produkty Microsoft tak C#.
Je blbost používat mono na Linuxu. Většina distribucí od něho opouští. Jediný větší projekt který běží nativně pod monem je Benshee. Linux uživatelé nemají zájem o mono tak jak o javu.

 
Nahoru Odpovědět
12.8.2012 16:12
Avatar
sotek
Člen
Avatar
sotek:12.8.2012 16:31

Pokud vidíš výhodu v používání NetBeans nebo nedejbože Eclipse, tak si asi ještě nepřičichl k Visual Studiu. Ostatně pro Javu jsem zatím neviděl rozumné, rychlé vývojové prostředí.
Multiplatformita je častý zaklínadlo Javy, ale těch aplikací, který se skutečně používají víc než na jedný platformě, je minimum (nepočítám weby).
Z osobní zkušenosti (3 roky Java, půl roku .NET) ti můžu doporučit .NET, jestli C# nebo třeba VB, to už je celkem jedno.

 
Nahoru Odpovědět
12.8.2012 16:31
Avatar
Kit
Tvůrce
Avatar
Kit:12.8.2012 17:38

Už tady bylo řečeno, že Java a C# jsou srovnatelné jazyky. Jsou srovnatelné i výkonově. Na serveru se lépe uplatní Java, na desktopu Windows zase lépe vypadá C#.

V Javě se mi líbí lépe vyřešené výjimky. Možná proto, že vypadají stejně jako v PHP. Naopak se mi nelíbí roztříštěnost knihoven, což je zároveň dobře i špatně.

V obou jazycích se dají psát rychlé i pomalé aplikace. Značně záleží na schopnostech programátora.

Nahoru Odpovědět
12.8.2012 17:38
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
sotek
Člen
Avatar
Odpovídá na Kit
sotek:12.8.2012 19:52

A v C# je snad nějakej problém s výjimkami?

try {
// ...
} catch {
// ...
}

Naopak je práce s nimi příjemnější (vynechání typu exception & proměnné) a dovedou totéž.
Výkonově z pohledu výpočtů asi ano, z pohledu GUI vede rozhodně C# (jo, překvapivě na Windows).

 
Nahoru Odpovědět
12.8.2012 19:52
Avatar
sotek
Člen
Avatar
Odpovídá na sotek
sotek:12.8.2012 19:54

se mi tady něak vyrojily hvězdičky, ty tam samo nemaj co dělat.

 
Nahoru Odpovědět
12.8.2012 19:54
Avatar
Kit
Tvůrce
Avatar
Odpovídá na sotek
Kit:12.8.2012 20:04

V C# jsem ještě nedělal, tak jsem si ty výjimky popletl s jiným jazykem. Koukám, že je to stejné.

V obou jazycích je problém s destruktory, oba to mají stejně špatně. Proto je nutná sekce final, která se mi nelíbí. V PHP by byla zbytečná, protože tam destruktor funguje správně.

Nahoru Odpovědět
12.8.2012 20:04
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Kit
Kit:12.8.2012 20:14

Tou sekcí "final" jsem měl na mysli blok "finally".

Nahoru Odpovědět
12.8.2012 20:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
sotek
Člen
Avatar
Odpovídá na Kit
sotek:12.8.2012 21:24

Destruktory v C# (ne)řeším tak:

try {
  using (MujObjekt o1 = new MujObjekt()) {
    // neco delam s objektem
    o1.whatever();
  }
} catch {
  // zachyceni vyjimky
}

K dispose dojde i při zachycení výjimky a co víc chtít.

 
Nahoru Odpovědět
12.8.2012 21:24
Avatar
Kit
Tvůrce
Avatar
Odpovídá na sotek
Kit:12.8.2012 21:37

Právě že nedojde. Destruktor se volá až s voláním garbage collectoru. A to je někdy pozdě.

Nejde o uvolnění paměti, ale například o uzavření souboru otevřeného objektem. V C# a Javě se to musí řešit mimo objekt a to je špatně.

Nahoru Odpovědět
12.8.2012 21:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
sotek
Člen
Avatar
Odpovídá na Kit
sotek:12.8.2012 21:42

IMHO se mýlíš nebo nevím, o co ti konkrétně jde.
Teď jsem si to krokoval v C# a implementuje-li objekt interface IDisposable s metodou Dispose(), tak k uzavření (tzn. zavolání metody Dispose(), která může uzavřít třeba otevřené připojení k databázi) samozřejmě dojde hned při opuštění using bloku, ještě před catch.

 
Nahoru Odpovědět
12.8.2012 21:42
Avatar
Kit
Tvůrce
Avatar
Odpovídá na sotek
Kit:12.8.2012 22:16

Zkus si zavolat funkci, která vytvoří lokální objekt. Ten objekt bude mít konstruktor pro vytvoření a otevření souboru. Také bude mít destruktor, který ten soubor uzavře.

Po opuštění funkce by měl být její lokální objekt zlikvidován, tedy i soubor by měl být uzavřen. Zkus následně (stále v programu, hned po opuštění té funkce) ten soubor smazat. Pokud smazání proběhne v pořádku, je vše OK.

Na Linuxu to proběhne OK vždy, protože je možné smazat i otevřený soubor, ale na Windows to podle mne nepůjde. Zkus to.

Nahoru Odpovědět
12.8.2012 22:16
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Michael Olšavský:6.9.2012 16:57

Já programuji radši v c#. U javy je super, že funguje téměř na všem. c# je zato modernější, má docela dobrou podporu.....
Jinak jsou skoro stejné. I syntaxe, takže by neměl být problém pozdějipřejít.

 
Nahoru Odpovědět
6.9.2012 16:57
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michael Olšavský
Kit:6.9.2012 20:49

To je v pořádku. U mne by bylo C# bezvýznamné, protože bych to neměl na čem spustit. Javu z určitých důvodů také rád nemám. Hlavně proto, že není interaktivní.

Nahoru Odpovědět
6.9.2012 20:49
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 31 zpráv z 31.