C# .NET vs. Java?

andy

Re:C# .NET vs. Java?
« Odpověď #270 kdy: 28. 02. 2015, 12:53:10 »
Je dobre, ze groovy sa nepresadilo. Aj ja groovy obcas pouzijem, ale skor z donutenia a vzdy vo mne ostane ten dojem, ze to vobec nemalo vyhodu. Co by som v jave ocenil su tie properties - proste priradovat do membrov a mat moznost si dodefinovat get/set.
Inak si myslim, ze clr je lepsi ako jvm (ale je to asi ako porovnavat audi a bmw..) a ked potrebujem nejaku "forms" apku, tak radsej si to naklikam v .nete. Navyse je to tak nejako lepsie integrovane s OS a tie aplikacie lepsie zapadaju.
Ked si porovname ficurky, tak c# je lepsi jazyk, ale to nie je vzdy lepsie a podstatne. Napr ked robim nieco multiplatformove, tak prenositelnost javy skoro vzdy fungovala, more usetreneho casu... Takze cela tato diskusia je bezpredmetna, ako ostatne vsetky podobne..

ps: total commander je myslim v c++ builderi, ale co sa pascalu tyka, skor by som skusil ADU


andy

Re:C# .NET vs. Java?
« Odpověď #271 kdy: 28. 02. 2015, 12:55:14 »
hm, mozno delphi, ale aj tak je to offtopic

perceptron

Re:C# .NET vs. Java?
« Odpověď #272 kdy: 28. 02. 2015, 18:55:51 »
total commander bol v delphi teraz je v lazaruse.

groovy ma prave kilo syntaktickeho cukru: ma "def" namiesto typu premennych (prakticky c#ovske var), ma closures uz od davna, ma properties, ktore java nikdy mat nebude, vsetko je tam objekt, a dalsie ficury ako vynechavanie zatvoriek pri jednom parametri, neskor dodali volitelne staticke typovanie .. a tiez pomocne skriptovacie metody takze si mozete otvorit subor a precitat z neho riadky na tri riadky.

presne to co sa tu hadame ze c# ma a java nema

perceptron

Re:C# .NET vs. Java?
« Odpověď #273 kdy: 28. 02. 2015, 18:56:56 »
teda az na performance ktory ide trochu do kopru a neviem ci uz vyuzili invokedynamic na zrychlenie dynamickych veci. integracia s lambdami v jave 8 bude v neurcitej buducnosti

Kit

Re:C# .NET vs. Java?
« Odpověď #274 kdy: 28. 02. 2015, 19:03:32 »
presne to co sa tu hadame ze c# ma a java nema

Spíš se dohadujeme, zda je to dobře nebo špatně.


sadsa

Re:C# .NET vs. Java?
« Odpověď #275 kdy: 28. 02. 2015, 19:12:22 »
Groovy je vynikajuci jazyk na pisanie vlastneho DSL. Groovy je strasne flexibilne a daju sa v tom pisat veci o ktorych nemate ani potuchy, ale na druhej strasne je to jazyk neskutocne nachylny na prasaciny. V Groovy sa da tak prasit ze to musite lustit obcas aj sami po sebe - to nie je slabost programatora - ta vyjadrovacia schopnost Groovy si paradoxne berie svoju dan v podobe horsej citatelnosti.

V Groovy sa da pisat aj beztypovo a berie sa to ako jeho vyhoda, ale osobne sa mi v tom beztypovo pise strasne zle. Zaroven to kvoli beztypovosti nema taku dobru podporu v IDE. Co sa tyka typov tak to programujete "naslepo" a sami si musite v hlave strazit aky typ to ma a co na tom mozete zavolat ... je to zvlastny jazyk a aj ja som rad ze sa nepresadil viac, pretoze pisat denne v Groovy by som vnimal ako za trest. Avsak co sa tyka tych DSL a toho, ze si to mozete ohnut podla seba, je malo jazykov, ktore tomu mozu konkurovat.

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:C# .NET vs. Java?
« Odpověď #276 kdy: 28. 02. 2015, 20:19:55 »
S tim prasenim na tom Scala bude podobne. IMO prasit se da vsude, akorat v hodne vystiznych jazycich bude vyssi pomer prasecin na znak, coz je ale dano pouze tim, ze tyto jazyky jsou vystizne (i dobry kod bude kratsi a strucnejsi). Narozdil od Groovy* je ale Scala staticky typovana a podpora v IDE je slusna (Eclipse a predevsim IntelliJ IDEA).

Scala ma mnohem pokrocilejsi type inference nez C#, nekde drive v tomto vlaknu jsem i uvadel priklad (v porovnani s Groovy netusim). Uz ted jsou v Jave nejake naznaky zestrucneni, tusim vynechavani typu u generik pri vytvareni instance? Mozna se dockame i trochu pokrocilejsi verze.

* Jsem si celkem jisty, ze Groovy podporuje staticke typy uz nejaky cas (clanek z 2012). V nekterych pripadech neni prakticky zadne zpomaleni oproti Jave.

Radek Miček

Re:C# .NET vs. Java?
« Odpověď #277 kdy: 28. 02. 2015, 20:42:41 »
je ale Scala staticky typovana a podpora v IDE je slusna (Eclipse a predevsim IntelliJ IDEA).

Slušná pro jednoduchý kód. Bohužel se obě IDE chovají jinak než kompilátor - např. s následujícím kódem ještě nedávno ani jedno IDE pořádně nefungovalo Record and discriminated union type literals and concise value construction in shapeless-2.1.0-SNAPSHOT nicméně kód šlo normálně přeložit.

skriptovacijazyky

Re:C# .NET vs. Java?
« Odpověď #278 kdy: 28. 02. 2015, 20:54:18 »
Miluju ty nové bastly, které umožňují všechno, ale nikdo v tom nic nedělá, protože to nejde. To stejné Python. Ten uměl všechny cool věci dávno, ale na velké věci nepoužitelný. Dodnes nechápu, proč si třeba vybrat Python před Javou nebo C#.

whata

Re:C# .NET vs. Java?
« Odpověď #279 kdy: 28. 02. 2015, 20:58:44 »
sadsa to globálně zhrnul docela hezky, já to vezmu kus po kusu:

groovy ma prave kilo syntaktickeho cukru:
ma "def" namiesto typu premennych (prakticky c#ovske var),

Na houby, vede k nečitelnosti kódu. I když píšu v C#, var naprosto zásadně nepoužívám, stejně jako nevyužívám možnost nedeklarovat typ u lambda parametrů, ať už v Java nebo C#.

ma closures uz od davna,

Dneska má closures každý, irelevantní. Perl měl closures před 25 lety, je kvůli tomu lepší? (mimochodem nesrovnatelně lepší, než mají dnes populární ruby, php, python, u gradle bohužel neznám)

ma properties, ktore java nikdy mat nebude, vsetko je tam objekt, a dalsie ficury ako

properties jsou s otazníkem. Osobně radši vidím v kódu volání funkce (getter/setter), bo mi to dává jasnější představu, že se na pozadí může něco dít. Řekl bych, že i to je důvod, proč v Java stále nejsou.

vynechavanie zatvoriek pri jednom parametri, neskor dodali volitelne staticke typovanie ..

Za prvé nekonsistence, za druhé vede k hůře čitelnému kódu. Stejně jako nechápu například nepovinný středník u JavaScript.

a tiez pomocne skriptovacie metody takze si mozete otvorit subor a precitat z neho riadky na tri riadky.

FileUtils.readLines() v Java, C# má něco podobného taky, Perl taky, Php taky, ostatní jazyky předpokládám na tom budou podobně.

... obecně, už to dříve bylo napsáno, ale zopakuju - fakt, že můžu někde napsat o znak nebo o řádek míň, opravdu neznamená, že je daný jazyk lepší, často je to spíš naopak, protože tím často trpí čitelnost!

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:C# .NET vs. Java?
« Odpověď #280 kdy: 28. 02. 2015, 22:46:04 »
...Slušná pro jednoduchý kód. Bohužel se obě IDE chovají jinak než kompilátor...
Nemohu nez nesouhlasit. Nevyuzivam nejake moc pokrocile veci, ale uz se spray json jsem narazil. "Vyresil" jsem to presunutim problemoveho kodu do samostanych traitu v jinem souboru.

Ale tohle vse myslim souvisi s makry kompilatoru, coz zase v jinych jazycich casto vubec neni. Pomoci nich mohou vznikat knihovny, ktere v podstate spolupracuji s kompilatorem, takze napr. mohou omezit redundantni kod.

Miluju ty nové bastly, které umožňují všechno, ale nikdo v tom nic nedělá, protože to nejde. To stejné Python. Ten uměl všechny cool věci dávno, ale na velké věci nepoužitelný. Dodnes nechápu, proč si třeba vybrat Python před Javou nebo C#.
Pokud mluvite o Scale, tak moc nova neni 2003 - jen o 3 roky mladsi nez C#. A i velke projekty (i pres vyse zminene problemy) se bezne pisi ve Scale. Napr. Hootsuite prechodem z PHP na Scalu (Akka a Play) usetril naklady za provoz 80% serveru. Mam pocit, ze Twitter se Scalou take neco delal, ale nepamatuji si detaily.

Z tech par zbastlenych skriptu v Pythonu to na me take pusobi, ze je spise na mensi veci. A prestoze funkcionalni ficury ma, tak jejich pouziti se mi casto zda dost neohrabane.

... obecně, už to dříve bylo napsáno, ale zopakuju - fakt, že můžu někde napsat o znak nebo o řádek míň, opravdu neznamená, že je daný jazyk lepší, často je to spíš naopak, protože tím často trpí čitelnost!
Mit ale stale se opakujici radky kodu, ktere nejsou vyznamove taky, k nicemu neni. Kupr. trivialni gettery/settery v Jave by nemusely byt na tolik radku.
Kód: [Vybrat]
public int getFoo(){
  return foo;
}

// vs

def foo = _foo
Zadnou pridanou hodnotu v Java verzi nepozoruji.
Podobne jako bylo drive otresne prochazeni poli/mnozin - nekolik vnorenych cyklu, treba na deset radek (pochopitelne polovina jsou zavorky a tretina trivialni iterace nad kolekci/polem). Stejne tak jako nutnost uvadet typ, klidne na pul radku, u lokalnich promennych na miste, kde je rovnou instancujeme - tj. redundance, typ nalevo i napravo zavorky, zadnout informaci ani citelnost navic to neprinasi (metody ve Scale se doporucuji delat velmi kratke, idealne par radku).

Kit

Re:C# .NET vs. Java?
« Odpověď #281 kdy: 01. 03. 2015, 06:49:20 »
Mit ale stale se opakujici radky kodu, ktere nejsou vyznamove taky, k nicemu neni. Kupr. trivialni gettery/settery v Jave by nemusely byt na tolik radku.
Kód: [Vybrat]
public int getFoo(){
  return foo;
}

// vs

def foo = _foo
Zadnou pridanou hodnotu v Java verzi nepozoruji.

Tak ty triviální gettery/settery vůbec nedělej a místo toho přímo používej privátní atributy objektu.

JurP

Re:C# .NET vs. Java?
« Odpověď #282 kdy: 01. 03. 2015, 12:02:37 »
Hosi serte nato, vieme, ze C# je lepsi a Java mu urcite nerobi konkurenta. Tak radsej si uzite pokojny nedelny obed a zmierte sa s tym  8)

javaman

Re:C# .NET vs. Java?
« Odpověď #283 kdy: 01. 03. 2015, 12:04:47 »
Proto se v Javě dělají největší projekty a dostaneš tam nejvíc peněz? Dej si oběd, ale kdybys dělal v Javě, mohl být třikrát dražší  ;)

JurP

Re:C# .NET vs. Java?
« Odpověď #284 kdy: 01. 03. 2015, 12:13:24 »
najviac penazi? HAHAHA. Platovo je to rovnake ;) A podla ponuk, ked som si hladal pracu, tak bolo viacej .NET/C# nez JAVA. No hold, dnes uz javu "ovlada" aj opica.