Seriozní porovnání .NETu a Javy

anonym

Re:Seriozní porovnání .NETu a Javy
« Odpověď #105 kdy: 01. 02. 2018, 16:04:31 »
Zaprvé Swing má pokud vím problémy s tím, aby udělal na všech platformách úplně stejný grafický výstup. Další problém jsou zastaralé prvky, např. okno na procházení souborového systému je nic moc. Swing taky trpí problémy s výkonem, jednak se to v obecnosti píše jako jeho vlastnost, druhak jsem měl tu čest vyzkoušet tŕeba populární Jzy3d knihovnu na vykreslování grafu - je zo ve Swingu a seká se to opravdu dost i na silném stroji. Jednou v práci jsem pracoval na Swing aplikaci pro účetnictví a setkal jsem se touto nehorázností: potřeboval jsem do prvku tabulky (nevím jak se te komponentě říká) dát jiný prvek, checkbox. Klasická věc, která ve windorms je na 1 kliknutí, je naprostý nehorázný opruz ve Swingu, protože tam prostě nejdee do tabulky libolnou jinou komponentu přidat. Je to hnusná chyba návrhu a jak tady někdo psal, že Swing je z roku 1997, tak prosím, jde to vidět.


ava

Re:Seriozní porovnání .NETu a Javy
« Odpověď #106 kdy: 01. 02. 2018, 16:58:07 »

Spring a Java EE nedávno zakomponovali reaktívne programovanie do svojich knižníc; ale RxJava je tu už
dlho ako externý modul. Asi tak dlho, ako ten .NET. Takže určite Java nazaspala dobu.

...

Swing je to špičková technológia, ktorá má strmú krvivku učenia. Kto dobre pozná Swing, nepotrebuje
barličky vo forme klikacích nástrojov.

RxJava je docela dobrá, řekl bych, že lepší než Rx.NET, především umí řešit backpressure, což může být dost kritické.

Já dělal ve Swingu appky několik let, a myslím, že už je vidět, jak je ta technologie letitá. Velmi nepříjemné je např. nepodporování multitouch, v roce 2018 WTF? Oracle už na vývoj Swingu prdí a doporučuje přejít na JavaFX, s tím mám zkušeností minimum...

Líbil by se mi nějaký reaktivní Java GUI framework (takový React pro JavaFX, třeba), ale když jsem hledal před dvěmi lety naposledy, nic pořádného aktivně vyvíjeného jsem nenašel :(

Jano7

Re:Seriozní porovnání .NETu a Javy
« Odpověď #107 kdy: 01. 02. 2018, 17:10:27 »
Zaprvé Swing má pokud vím problémy s tím, aby udělal na všech platformách úplně stejný grafický výstup. Další problém jsou zastaralé prvky, např. okno na procházení souborového systému je nic moc. Swing taky trpí problémy s výkonem, jednak se to v obecnosti píše jako jeho vlastnost, druhak jsem měl tu čest vyzkoušet tŕeba populární Jzy3d knihovnu na vykreslování grafu - je zo ve Swingu a seká se to opravdu dost i na silném stroji. Jednou v práci jsem pracoval na Swing aplikaci pro účetnictví a setkal jsem se touto nehorázností: potřeboval jsem do prvku tabulky (nevím jak se te komponentě říká) dát jiný prvek, checkbox. Klasická věc, která ve windorms je na 1 kliknutí, je naprostý nehorázný opruz ve Swingu, protože tam prostě nejdee do tabulky libolnou jinou komponentu přidat. Je to hnusná chyba návrhu a jak tady někdo psal, že Swing je z roku 1997, tak prosím, jde to vidět.

Swing default look and feel (Metal look and feel) je skvelý, jeden z mála skutočne čistých dizajnov.
Ak je potreba, môžu sa vytvoriť vlastné look and feels. Stačí si pozrieť IDE od JetBrains; oni si sami vytvorili
svoje vlastné vizuály.

Čo sa týka výkonu, tak ak niekto zle naprogramuje aplikáciu v C, tak to neznamená, že C je pomalé.
Swing bol úspešne využívaný pri komplexných, zložitých aplikáciách, takže nejaký trápny graf mu určite nerobí
problémy.

Komponenta sa volá JTable.

Pre pridanie JComboBox komponenty potrebujeme nasledovný kód (nič zložité):

Kód: [Vybrat]
   
private JTable createTable() {

        model = new DefaultTableModel(new Object[] {"Brands"}, 5);
        table = new JTable(model);
        table.setRowHeight(25);

        JComboBox box = new JComboBox();
        box.addItem("Nokia");
        box.addItem("Apple");
        box.addItem("Mercedes");
        box.addItem("Pepsi");
        box.addItem("Lenovo");
       
        TableColumn tc = table.getColumn("Brands");   
        tc.setCellEditor(new DefaultCellEditor(box));
       
        return table;
    }

Vyzerá to takto:



Swing je veľmi flexibilný a prepracovaný. Za dva týždne sa ho nenaučíte.

jpu

Re:Seriozní porovnání .NETu a Javy
« Odpověď #108 kdy: 01. 02. 2018, 18:26:27 »
Citace
Predpokladám, že bolo myslené Swing, nie Spring. Ktorý cvok? Všetci tí, ktorí nechcú customer lock-in,
ktorí potrebujú ozajstnú multiplatformovú GUI desktop aplikáciu. Ďalej vývojári z krajín ako sú Čína,
Rusko, Brazília, kde sa strategicky prechádza na open-source kvôli špionáži.
Tu si treba uvedomit jednu vec. Bavime sa o desktope, ano? A pokial mi dobre sluzia vsetky zmysly, tak na desktopoch je najviac rozsireny windows, takze nejaku multiplatformovost netreba riesit, ak budu vsetci uzivatelia windows-oriented. Pretlacat niekde mjltiplatformovost a argumentovat tym, to je asi dnes taky modny hit :)

Re:Seriozní porovnání .NETu a Javy
« Odpověď #109 kdy: 01. 02. 2018, 20:24:15 »
Tu si treba uvedomit jednu vec. Bavime sa o desktope, ano? A pokial mi dobre sluzia vsetky zmysly, tak na desktopoch je najviac rozsireny windows, takze nejaku multiplatformovost netreba riesit, ak budu vsetci uzivatelia windows-oriented. Pretlacat niekde mjltiplatformovost a argumentovat tym, to je asi dnes taky modny hit :)
„Nejvíc rozšířený“ je pěkný nesmysl. „Nejvíc rozšířený“ prohlížeč je Chrome, který má 60 % uživatelů. Opravdu hodíte 40 % uživatelů přes palubu? Windows mají na desktopu podíl okolo 85 %, Mac má kolem 10 %. Ani to není rozložení, nad kterým by bylo možné mávnout rukou a dělat vše Windows only. Zvlášť když klesá podíl desktopu jako takového.


FrantaPepa1

Re:Seriozní porovnání .NETu a Javy
« Odpověď #110 kdy: 01. 02. 2018, 21:04:01 »
Tu si treba uvedomit jednu vec. Bavime sa o desktope, ano? A pokial mi dobre sluzia vsetky zmysly, tak na desktopoch je najviac rozsireny windows, takze nejaku multiplatformovost netreba riesit, ak budu vsetci uzivatelia windows-oriented. Pretlacat niekde mjltiplatformovost a argumentovat tym, to je asi dnes taky modny hit :)
„Nejvíc rozšířený“ je pěkný nesmysl. „Nejvíc rozšířený“ prohlížeč je Chrome, který má 60 % uživatelů. Opravdu hodíte 40 % uživatelů přes palubu? Windows mají na desktopu podíl okolo 85 %, Mac má kolem 10 %. Ani to není rozložení, nad kterým by bylo možné mávnout rukou a dělat vše Windows only. Zvlášť když klesá podíl desktopu jako takového.

Jenže na desktopu hodíš přes palubu jen 10%, né 40%. Záleží na zastoupení OS v oboru, pro kterej je aplikace určená, ale dost často to neni problém. Namátkou se koukni, kolik třeba existuje multiplatformních učetních systémů..

Co se týče GUI na desktopu, Java má oproti .NET opravdu výhodu v multiplatformnosti. Ale mrzí mě, že na JavaFX Oracle docela sere. A všechny známý aplikace běží na starym Swingu.

Jano7

Re:Seriozní porovnání .NETu a Javy
« Odpověď #111 kdy: 01. 02. 2018, 21:26:03 »
Tu si treba uvedomit jednu vec. Bavime sa o desktope, ano? A pokial mi dobre sluzia vsetky zmysly, tak na desktopoch je najviac rozsireny windows, takze nejaku multiplatformovost netreba riesit, ak budu vsetci uzivatelia windows-oriented. Pretlacat niekde mjltiplatformovost a argumentovat tym, to je asi dnes taky modny hit :)
„Nejvíc rozšířený“ je pěkný nesmysl. „Nejvíc rozšířený“ prohlížeč je Chrome, který má 60 % uživatelů. Opravdu hodíte 40 % uživatelů přes palubu? Windows mají na desktopu podíl okolo 85 %, Mac má kolem 10 %. Ani to není rozložení, nad kterým by bylo možné mávnout rukou a dělat vše Windows only. Zvlášť když klesá podíl desktopu jako takového.

Presne tak. Treba tiež vziať do úvahy, kto sú tí 10%. Trebárs vezmime si štatistiky podielu server-side
jazykov. PHP 83.1%, ASP.NET 14.1%, Java 2.4%, static files 1.5%, ColdFusion 0.6%, Ruby 0.5%,
JavaScript   0.4%, Perl   0.3%, Python 0.2%, Erlang   0.1%.
https://w3techs.com/technologies/overview/programming_language/all

Java má minimálny podiel na celkovom trhu, točia sa však tam najväčšie peniaze. Odráža sa to aj
tým, že Java vývojári majú vo všeobecnosti vyššie mzdy ako majú PHP programátori.
Multiplatformovosť je dôležitá; z Windows MFC prešli v segmente grafických a animačných softwérov
mnohí na Qt knižnicu. Pretože v ich branži sa často pracuje s Mac a Unix systémami.

Re:Seriozní porovnání .NETu a Javy
« Odpověď #112 kdy: 01. 02. 2018, 22:01:25 »
Presne tak. Treba tiež vziať do úvahy, kto sú tí 10%. Trebárs vezmime si štatistiky podielu server-side
jazykov. PHP 83.1%, ASP.NET 14.1%, Java 2.4%, static files 1.5%, ColdFusion 0.6%, Ruby 0.5%,
JavaScript   0.4%, Perl   0.3%, Python 0.2%, Erlang   0.1%.
https://w3techs.com/technologies/overview/programming_language/all

Java má minimálny podiel na celkovom trhu, točia sa však tam najväčšie peniaze. Odráža sa to aj
tým, že Java vývojári majú vo všeobecnosti vyššie mzdy ako majú PHP programátori.
Multiplatformovosť je dôležitá; z Windows MFC prešli v segmente grafických a animačných softwérov
mnohí na Qt knižnicu. Pretože v ich branži sa často pracuje s Mac a Unix systémami.
To jste ovšem zatajil takovou drobnost, že jde o statistiku programovacích jazyků webových stránek. Na aplikačních serverech bude nejspíš Java převládat. To dělá tu většinu podílu na celkovém trhu, ne nějaké webové stránky.

jpu

Re:Seriozní porovnání .NETu a Javy
« Odpověď #113 kdy: 02. 02. 2018, 09:28:34 »
riesit multiplatformovost, ked aplikacia je urcena pre windows uzivatelov? To je co za nezmysel. Ak budem vlastnit IT firmu, kde budu kvalitni C#/WPF programatori a budeme mat riesit desktop aplikaciu, tak samozrejme nepojdeme cestou javy, lebo to bude drahsie a riesit "co ak mozno o 20 rokov ta appka bude nutna aj na linuxe", bude pre firmu nepodstatne. Ja nie som proti multiplatformovosti, ale nadobudam pocit, ze dnes to zacina byt nejaky buzzword.

v

Re:Seriozní porovnání .NETu a Javy
« Odpověď #114 kdy: 02. 02. 2018, 10:08:45 »
riesit multiplatformovost, ked aplikacia je urcena pre windows uzivatelov? To je co za nezmysel. Ak budem vlastnit IT firmu, kde budu kvalitni C#/WPF programatori a budeme mat riesit desktop aplikaciu, tak samozrejme nepojdeme cestou javy, lebo to bude drahsie a riesit "co ak mozno o 20 rokov ta appka bude nutna aj na linuxe", bude pre firmu nepodstatne. Ja nie som proti multiplatformovosti, ale nadobudam pocit, ze dnes to zacina byt nejaky buzzword.
IMHO moc aplikací, které by měly smysl jen na windows, nebude

Kit

Re:Seriozní porovnání .NETu a Javy
« Odpověď #115 kdy: 02. 02. 2018, 10:17:43 »
riesit multiplatformovost, ked aplikacia je urcena pre windows uzivatelov? To je co za nezmysel. Ak budem vlastnit IT firmu, kde budu kvalitni C#/WPF programatori a budeme mat riesit desktop aplikaciu, tak samozrejme nepojdeme cestou javy, lebo to bude drahsie a riesit "co ak mozno o 20 rokov ta appka bude nutna aj na linuxe", bude pre firmu nepodstatne. Ja nie som proti multiplatformovosti, ale nadobudam pocit, ze dnes to zacina byt nejaky buzzword.
IMHO moc aplikací, které by měly smysl jen na windows, nebude

Ber to tak, že dělat aplikace i pro další platformy se jim z krátkodobého hlediska prostě nevyplatí.

harrison314

Re:Seriozní porovnání .NETu a Javy
« Odpověď #116 kdy: 02. 02. 2018, 11:08:17 »
Ja si tiez myslim, ze na strane klienta je multiplatfromovost precenovana.
Hlavne sa mi paci to neustale vyzdvihovanie multiplatformovosti, no ked ju uz .Net Core dosiahol, zas fnukaju nad dacim inym.

Re:Seriozní porovnání .NETu a Javy
« Odpověď #117 kdy: 02. 02. 2018, 11:47:34 »
riesit multiplatformovost, ked aplikacia je urcena pre windows uzivatelov?
Otázka je, jak jste přišel na to, že je aplikace určená pro uživatele Windows.

Ja si tiez myslim, ze na strane klienta je multiplatfromovost precenovana.
Hlavne sa mi paci to neustale vyzdvihovanie multiplatformovosti, no ked ju uz .Net Core dosiahol, zas fnukaju nad dacim inym.
Já si zase myslím, že je přeceňované .NET Core, pokud jde o aplikace na straně klienta, zejména o aplikace pro desktop.

Tomáš Roll

Re:Seriozní porovnání .NETu a Javy
« Odpověď #118 kdy: 02. 02. 2018, 11:56:26 »
Přenositelnost je dobrá jen pro plážová lehátka. Programy je třeba psát na míru platformě, jinak vznikne slabý hybrid.

harrison314

Re:Seriozní porovnání .NETu a Javy
« Odpověď #119 kdy: 02. 02. 2018, 12:15:00 »
Já si zase myslím, že je přeceňované .NET Core, pokud jde o aplikace na straně klienta, zejména o aplikace pro desktop.
.Net core je primarne urcene pre servrove aplikacie, na dektop sa netlaci.
Imho java na dektope tiez nejde ako teple rozky, ked vidim nejaku shcopnu OSS aplikaciu pre dektop a je multiplatformova je to vzdy v Qt.