Seriozní porovnání .NETu a Javy

mikrom

Re:Seriozní porovnání .NETu a Javy
« Odpověď #75 kdy: 31. 01. 2018, 00:30:04 »
Dělal jsem poslední 2 roky profesně v Javě a předtím na VŠ v :NETu. Teď uvažuju přejít na .NET ...
Mas smolu, je to tvoje zle rozhodnutie.
NET je primarne zamerany na Windows. Lenze Windows sa s kazdou verziou zhorsuje, napr Windows 10 je z hladiska administracie systemu katastrofa - nevhodna na korporatne pouzitie. Kazdy rozumny clovek/firma pouziva na server Linux a na Linuxe nema NET ziadnu buducnost.
Jasna volba pre buducnost je Java (alebo hociso ine - napr. aj COBOL ale nie .NET ) !!!

To už není úplně pravda, MS vydal .NET Core kompletně opensource.
OK, nech je NET opensource, ale aj tak si nemyslim, ze to bude niekto niekedy vo velkom pouzivat  :D
Kto a naco by sa tu s tym na Linuxu s**l, ked Java je tu overena a bezi tu bez problemu ?

MS technologie - na zaklade mojich skusenosti - dakujem - radsej nie.
Kolko tu toho uz bolo a ukazalo sa to ako zbytocna investicia pretoze to dlho nevydrzalo ?: MFC, COM, Visual Foxpro,  ADO, WSH, ... a vsetko MS zmenil/zrusil a teraz je to kazdemu kto do toho investoval a vyvijal v tom na h***o.
To su tie MS technologie - kto sa na tom v minulosti uz poriadne popalil, tak sa dnes tomu radsej vyhyba.

Treba si uvedomit, ze znes vsetko co je pokrokove bezi na aplikaciach, ktore su Linux  friendly.
Jednostranna orientacia na taku platformu ako je MS Windows uz fakt nema zmysel.


anonym

Re:Seriozní porovnání .NETu a Javy
« Odpověď #76 kdy: 31. 01. 2018, 00:52:49 »
Dělal jsem poslední 2 roky profesně v Javě a předtím na VŠ v :NETu. Teď uvažuju přejít na .NET ...
Mas smolu, je to tvoje zle rozhodnutie.
NET je primarne zamerany na Windows. Lenze Windows sa s kazdou verziou zhorsuje, napr Windows 10 je z hladiska administracie systemu katastrofa - nevhodna na korporatne pouzitie. Kazdy rozumny clovek/firma pouziva na server Linux a na Linuxe nema NET ziadnu buducnost.
Jasna volba pre buducnost je Java (alebo hociso ine - napr. aj COBOL ale nie .NET ) !!!

To už není úplně pravda, MS vydal .NET Core kompletně opensource.
OK, nech je NET opensource, ale aj tak si nemyslim, ze to bude niekto niekedy vo velkom pouzivat  :D
Kto a naco by sa tu s tym na Linuxu s**l, ked Java je tu overena a bezi tu bez problemu ?

MS technologie - na zaklade mojich skusenosti - dakujem - radsej nie.
Kolko tu toho uz bolo a ukazalo sa to ako zbytocna investicia pretoze to dlho nevydrzalo ?: MFC, COM, Visual Foxpro,  ADO, WSH, ... a vsetko MS zmenil/zrusil a teraz je to kazdemu kto do toho investoval a vyvijal v tom na h***o.
To su tie MS technologie - kto sa na tom v minulosti uz poriadne popalil, tak sa dnes tomu radsej vyhyba.

Treba si uvedomit, ze znes vsetko co je pokrokove bezi na aplikaciach, ktore su Linux  friendly.
Jednostranna orientacia na taku platformu ako je MS Windows uz fakt nema zmysel.

A co Java?

Mrtvé jsou AWS, Swing, teď je Java FX a už jsem zase někde četl, že se to nepoužívá.

Ve Springu jsou verze od verze velké rozdíly a ještě navíc to má bugy. Teď jsem zase četl, že Oracle kašle na Javu EE. Navíc Spring ani Java EE pořád nemá vyřešený redeployment, potřebuješ JRebel. Redeployment má vyřešený: .NET, PHP, Python, Play framework. Všechno, jen ne Java.

Co ty další frameworky? Vaadin, JSF, Struts,  GWT, Wicket... boože. X různých aplikačních serverů pro Java EE. Asi 5 různých logovacích frameworků, kdejaká knihovna používá jiný, protože ten ve standardní knihovně je shit.

Proč říkáš že ADO.NET je mrtvý? To je jako kdyby jsi řekl, že JDBC je mrtvý. Nad ADO.NET je postavený Entity Framework. To nechápu, jak někdo může říct, že je ADO.NET mrtvý. Entity Framework je stejně jako Hibernate pomalý, když chceš perfoemance, píšeš SQL ručně.




mikrom

Re:Seriozní porovnání .NETu a Javy
« Odpověď #77 kdy: 31. 01. 2018, 01:32:40 »
Ako spravne vystihujes aj Java ma svoje problemy ... ale ... furt je to lepsie ako NET.

Nehovorim, ze ADO.NET je mrtvy. Ale predtym tam bol iba ADO a ten je mrtvy. Pouzival sa napr. pri skriptovani z WSH (VBscript, JScript, ...) a bol nahradeny s ADO.NET, ktory je iny.

Trvalo mi urcity cas, kym som si na MS platforme navykol na ich jazyk VBScript a teraz by som mal pouzivat zase ich novy nepodarok PowerShell ?
Preto, prve co urobim,  si vzdy na windows nainstalujem MSYS, kde mam bash a ine tooly, aby sa v tom dalo vobec nieco robit.
Rozdiel v Linuxe a vo Windowse je v tom, ze ked si nainstalujes beznu ditribuciu Linux, tak tam mas vsetko, aby sa v tom dalo zmysluplne robit. Naproti tomu ked nainstalujes Windows nemas tam absolutne nic. Par dalsich dni ti zaberie, kym zistis co ti este chyba a nainstalujes si to.
Schvalne, skus si porovnat Windows a Linux ako rychlo na tom rozbehas bezne veci ako git, docker, elastic, ....

Windows uz nema buducnost. NET je pre windows a teda nema tiez  buducnost.

Radek Miček

Re:Seriozní porovnání .NETu a Javy
« Odpověď #78 kdy: 31. 01. 2018, 06:51:34 »
Ako spravne vystihujes aj Java ma svoje problemy ... ale ... furt je to lepsie ako NET.

Pokud srovnáváte virtuální stroje, tak JVM je z hlediska nabízených featur daleko za CLR.

CLR podporuje generika, hodnotové typy nebo tail call optimalizaci - to vše chybí na JVM a důsledkem je nižší výkon programů na JVM (bohužel to nedoženou ani optimalizace, které JVM dělá lépe než CLR).

Navíc jsou standardní knihovny .NETu a běhové prostředí pod svobodnější licencí než OpenJDK.

Citace
Windows uz nema buducnost. NET je pre windows a teda nema tiez  buducnost.

.NET Core a Mono jsou i pro jiné systémy.

jpu

Re:Seriozní porovnání .NETu a Javy
« Odpověď #79 kdy: 31. 01. 2018, 07:50:00 »
Lenze Windows sa s kazdou verziou zhorsuje, napr Windows 10 je z hladiska administracie systemu katastrofa - nevhodna na korporatne pouzitie.
A hovori on nieco o administracii systemu?
Citace
Kazdy rozumny clovek/firma pouziva na server Linux
Podla statistik je potom asi 90% ludi nerozumnych. Takisto firma, ked je ochotna si zaplatit za nastroje od MS, preco nie? Snad firma vie, co potrebuje, k comu to potrebuje a ci jej to vyhovuje. Taketo delenie ze rozumny-nerozumny si strc za klobuk. Jediny nerozumny si tu mozno ty.

Spomenul si tu okrajove technologie od MS. Ale take WinForms su tu od .NET 2.0 a udrziavaju sa stale. WPF je tu od roku 2007. Takisto WCF je dlhorocna technologia. A urcite tomu nic nenasvedcuje, ze to odstrihnu, nakolko v LOB maju tieto technologie velke zastupenie. MS prisiel s .NET Standard a rozsiruju api. Momentalne je tu UWP, uvidi sa, ako sa vyvinie tato technologia. MFC mrtve nie je, stale sa pouziva, ale kto by dnes robil GUI aplikaciu v C++, ked tu ma nastroje na rychlejsi a pohodlnejsi vyvoj.
Nebolo to tak nedavno, kedy zarezali nejaku verziu Angularu. Ochvilu zarezu aj istu verziu Pythonu a ti, ktori ju pouzivali maju teraz plne ruky prace.

Citace
Ale predtym tam bol iba ADO a ten je mrtvy
Cudujem sa, ze preco nepouzivas este stale pisaci stroj, ale pises na PC.

Kit:
Citace
Odchytávání výjimek s jejich následným ignorováním už nadělalo spoustu škod.
Vo vyspelom svete to funguje tak, ze vynimka sa odchyti, zaloguje sa chyba a posle sa napr. chybovy stav, na ktory nasledne reaguje GUI zobrazenim spravy, alebo pokial ide o webovu aplikaciu, tak sa naviguje na stranku o chybovom stave. A nie, ze sa necha vyhodit exception a padne aplikacia. V pripade vynimky ide o nekontrolovatelny stav, ale urcite to neplati v pripade, ked sa dopytujem na objekt od nejakej funkcie, ktora moze vratit null a ja aj napriek tomu pristupim na objekt bez predosleho overenia na null. To je cisty amatersky pristup a len tvoja blbost (popr. len trollis). Sam resharper, ktory pouzivam ako doplnok vo VS, nasepkava overenie objektu, aby sa predislo NullReferenceException.


jpu

Re:Seriozní porovnání .NETu a Javy
« Odpověď #80 kdy: 31. 01. 2018, 07:58:14 »
este doplnim, ze vynimky sa nepouzivaju na kontrolu flow programu. na to je tu prave ten if. taketo veci by mal clovek takych kapacit ako Kit davno ovladat.

Kit

Re:Seriozní porovnání .NETu a Javy
« Odpověď #81 kdy: 31. 01. 2018, 08:01:06 »
Kit:
Citace
Odchytávání výjimek s jejich následným ignorováním už nadělalo spoustu škod.
Vo vyspelom svete to funguje tak, ze vynimka sa odchyti, zaloguje sa chyba a posle sa napr. chybovy stav, na ktory nasledne reaguje GUI zobrazenim spravy, alebo pokial ide o webovu aplikaciu, tak sa naviguje na stranku o chybovom stave. A nie, ze sa necha vyhodit exception a padne aplikacia. V pripade vynimky ide o nekontrolovatelny stav, ale urcite to neplati v pripade, ked sa dopytujem na objekt od nejakej funkcie, ktora moze vratit null a ja aj napriek tomu pristupim na objekt bez predosleho overenia na null. To je cisty amatersky pristup a len tvoja blbost (popr. len trollis). Sam resharper, ktory pouzivam ako doplnok vo VS, nasepkava overenie objektu, aby sa predislo NullReferenceException.

Metody, které dělám, nikdy nevrací null místo objektu. Pokud tedy od ní očekávám objekt, tak ho dostanu.

jpu

Re:Seriozní porovnání .NETu a Javy
« Odpověď #82 kdy: 31. 01. 2018, 08:11:44 »
Aha, tak ty si vsetko robis sam. Ty vynachadzas koleso. A uz si konecne aj nieco naprogramoval, alebo si stale len pri tom kolese?

Kit

Re:Seriozní porovnání .NETu a Javy
« Odpověď #83 kdy: 31. 01. 2018, 08:51:27 »
Aha, tak ty si vsetko robis sam. Ty vynachadzas koleso. A uz si konecne aj nieco naprogramoval, alebo si stale len pri tom kolese?

PHP má dostatek koleček už v základní výbavě, takže další kolečka už vynalézat nemusím.

anonym

Re:Seriozní porovnání .NETu a Javy
« Odpověď #84 kdy: 31. 01. 2018, 09:05:53 »
Pasuju Kita za trolla. Dokud neukáže nějakou svou aplikaci, třeba jak má napsaný nějaký ten svůj slavný plugin do VIMu, tak na něj doporučuju nereagovat. Říká kraviny jak z nějaké příručky, přitom při jakémkoliv vystavení Kita konkrétní situaci v kódu se začne vytáčet a mlžit a ignorovat. To není poprvé, co se mi to v diskuzi s nim stalo a nejsem na Rootu sám. Naprostá marnost s ním diskutovat.

anonym

Re:Seriozní porovnání .NETu a Javy
« Odpověď #85 kdy: 31. 01. 2018, 11:38:26 »
Další nevýhody c#

1. Slabší oodpora pro Enumy
2. Nepodporuje kovariantní návratové typy, to jsem vcelku čuměl, nemůžu odělat override metody a vrátit potomka návratového typu. To je dost velký problém, jak mám udělat abstraktní oop návrh když tohle nejde.
3. Metody nejdou overridnout, pokud nejsou definované jako virtual. Další problém. Budu chtít upravit nějakou třídu v knihovně a nebudu moct, protože nebude mít virtual metody.
4. Visual Studio 2017 sice podporuje Live unit testy, tzn. pouští se mi automaticky unit testy k dané tříďě, ale pořád nemůžu ihned spustit upravovaný unit test. Často potřebuju experimentovat v unit testu s nějakou třídou a potřebuju, aby se ten test spustil okamžitě. V .NETu to trvá a navíc je tam problém s výpisem do outputu: zaprvé klasický Test output okno neumí vypisovat výstup z Trace, to umí Debug okno. Jenže v tom je Trace zase nepožitelný, protože je output zasviněný garbagem z inicializace test framewoku či co to je. Takže tohle je velká pruda.
5. V Javě nemusím řešit verze VM knihovny jako v .net, prostě mám nainstalované poslední jdk a na tom spustím úplně všechno.

harrison314

Re:Seriozní porovnání .NETu a Javy
« Odpověď #86 kdy: 31. 01. 2018, 12:04:20 »
Citace
1. Slabší oodpora pro Enumy
V com konkretne?

2. Nepodporuje kovariantní návratové typy, to jsem vcelku čuměl, nemůžu odělat override metody a vrátit potomka návratového typu. To je dost velký problém, jak mám udělat abstraktní oop návrh když tohle nejde.
Ale podporuje, to co si napisal je polymorfizmus, vies vratit potomka. Ak myslis kovariantne a intravariantne genericke typy, tak tie sa v generiksoch definuju pomocou Foo<in T>, Foo<out T>.

Citace
3. Metody nejdou overridnout, pokud nejsou definované jako virtual. Další problém. Budu chtít upravit nějakou třídu v knihovně a nebudu moct, protože nebude mít virtual metody.
Toto je ako .Netista a C++ -kar povazujem za velku vyhodu, hlavne z pohladu navrhu OOP kodu.

Citace
5. V Javě nemusím řešit verze VM knihovny jako v .net, prostě mám nainstalované poslední jdk a na tom spustím úplně všechno.
Plny .Net umoznuje referncovat kniznice s nizsou verziou .net frameworku.
pri net core sa pouziva .Net standard, ktory toto riesi.
 

Radek Miček

Re:Seriozní porovnání .NETu a Javy
« Odpověď #87 kdy: 31. 01. 2018, 12:15:08 »
2. Nepodporuje kovariantní návratové typy, to jsem vcelku čuměl, nemůžu odělat override metody a vrátit potomka návratového typu. To je dost velký problém, jak mám udělat abstraktní oop návrh když tohle nejde.
Ale podporuje, to co si napisal je polymorfizmus, vies vratit potomka. Ak myslis kovariantne a intravariantne genericke typy, tak tie sa v generiksoch definuju pomocou Foo<in T>, Foo<out T>.

Skutečně nepodporuje, je na to pouze návrh: Champion "Covariant Return Types"

anonym

Re:Seriozní porovnání .NETu a Javy
« Odpověď #88 kdy: 31. 01. 2018, 12:35:33 »
Co se .NET Core týče, jak Microsoft zajistí, že mu komunita neukrade jeho vlastní platformu, do které valil miliony možná miliardy dolarů? Já teď třeba zkouším JetBrains Rider IDE. S tím nepotřebuju ani Windows. Co bude Microsoft dělat, když to tak uděla ledaskdo? Nějak se mi nechce věřit, že by si nechal ujít zisk.

Radek Miček

Re:Seriozní porovnání .NETu a Javy
« Odpověď #89 kdy: 31. 01. 2018, 12:52:25 »
Co se .NET Core týče, jak Microsoft zajistí, že mu komunita neukrade jeho vlastní platformu, do které valil miliony možná miliardy dolarů?

To nevím a nevím, jestli to hrozí. Spíše bych řekl, že na tom MS dost vydělal, protože na některých projektech komunita přispívá větším množstvím kódu než lidé od MS (konkrétně třeba F#), přičemž MS stále všechno řídí.

Díky tomu je rozvoj .NETu a C# otevřenější než rozvoj JVM a Javy.

Já teď třeba zkouším JetBrains Rider IDE. S tím nepotřebuju ani Windows. Co bude Microsoft dělat, když to tak uděla ledaskdo? Nějak se mi nechce věřit, že by si nechal ujít zisk.

IMO, to že člověk nepoužívá Windows, neznamená, že nemůže používat jiné produkty a služby od MS. Koneckonců MS přispívá i do Linuxu, řada jeho produktů je pro Mac. Sám třeba již několik let vyvíjím v F# bez Windows.