Čo programujete v Jave?

fail

Re:Čo programujete v Jave?
« Odpověď #45 kdy: 21. 07. 2014, 20:22:01 »
Protoze vsichni vime, ze v jave se prasi a jinde pise poradne. Tak urcite.
problem je jinde: Java je navrzena tak, aby dodavatel aplikace mohl prodat smejd a do nekonecna argumentovat nekonecnou potrebou navysovani provoznich zdroju a jeho zakaznik mu nemohl dat protiargument, ze lze.


Honťa

Re:Čo programujete v Jave?
« Odpověď #46 kdy: 21. 07. 2014, 20:58:45 »
Vůbec nic. Dělám v C# a to hlavně realtime systémy pro průmysl, ale dělal jsem v tom i rozsáhlé serverové systémy pro energetiku. A to jak pro windows, tak pro Linux.

Rozsáhlé serverové systémy pro energetiku pro Linux v C#? Rozumím tomu správně?

Ty serverove systémy pro energetiku to bylo psáno v C# pro Windows Server. Tam byly také realtime prvky, dá se říct, že přesun takových dat má klíčovu důležitost. Začali jsem dělat port na Linux, udělala se první verze, ale nakonec zákazník rozhodnul přejít na Windows.
Ty real-time systémy napsané v C# jsou dost běžné v automatizaci v průmyslu, tam už se to dá dost dobře udělat, že se jádro systému napíše tak aby to bylo kompilovatelné jak pod windows, tak pod Linuxem a Gui se udělá konkrétně tak aby to jelo pod Win, KDE, Gnome, ale většinou se to dělá pro Windows. Ale Linux to je fakt menšina je toho čím dál méně.
Proč se tak rozmáhá Windows, nevím, asi je to kvůli výrobcům HW, kteří snad ani drivery pro Linux nedělají (teď jsem ze zvědavosti kouknul na stránky jednoho výrobce HW a občas nějaký driver pro Linux tam je).

Re:Čo programujete v Jave?
« Odpověď #47 kdy: 21. 07. 2014, 21:07:12 »
Desktopových aplikací v Javě moc není, ale něco málo se najde:
http://project-x.sourceforge.net/
http://java-apps.org/
Jinak já si programuju (spíš patlám) malý blbůstky pro radost.

Re:Čo programujete v Jave?
« Odpověď #48 kdy: 21. 07. 2014, 21:18:37 »

Marek

Re:Čo programujete v Jave?
« Odpověď #49 kdy: 21. 07. 2014, 21:51:39 »
Ďakujem všetkým za užitočné informácie :) Zase som o niečo máličko múdrejší ;D


mikrom

Re:Čo programujete v Jave?
« Odpověď #50 kdy: 21. 07. 2014, 22:21:07 »
...praca s databazou cez jdbc api je natolko zla, ze sudny clovek rovno zoberie nejaku zmysluplnu kniznicu...
To podla teba znamena sudny clovek = clovek neznaly SQL ?
Sorry, ale ja mam na to opacny nazor. Pri JDBC aspon clovek vie co robi, lahko sa to debuguje a lahko sa to udrzuje.
A okrem toho pouzivas iba standardnu kniznicu a nie s zavisly od nejakych dalsich high-level frameworkov inych autorov.
Predpokladom pre pouzivanie JDBC ale samozrejme je, ze si ochotny zacat sa viac zaoerat aj databazou.
 

Mirek

Re:Čo programujete v Jave?
« Odpověď #51 kdy: 21. 07. 2014, 22:34:38 »
Vůbec nic. Dělám v C# a to hlavně realtime systémy pro průmysl, ale dělal jsem v tom i rozsáhlé serverové systémy pro energetiku. A to jak pro windows, tak pro Linux.

Rozsáhlé serverové systémy pro energetiku pro Linux v C#? Rozumím tomu správně?

Ty serverove systémy pro energetiku to bylo psáno v C# pro Windows Server. Tam byly také realtime prvky, dá se říct, že přesun takových dat má klíčovu důležitost. Začali jsem dělat port na Linux, udělala se první verze, ale nakonec zákazník rozhodnul přejít na Windows.
Ty real-time systémy napsané v C# jsou dost běžné v automatizaci v průmyslu, tam už se to dá dost dobře udělat, že se jádro systému napíše tak aby to bylo kompilovatelné jak pod windows, tak pod Linuxem a Gui se udělá konkrétně tak aby to jelo pod Win, KDE, Gnome, ale většinou se to dělá pro Windows. Ale Linux to je fakt menšina je toho čím dál méně.
Proč se tak rozmáhá Windows, nevím, asi je to kvůli výrobcům HW, kteří snad ani drivery pro Linux nedělají (teď jsem ze zvědavosti kouknul na stránky jednoho výrobce HW a občas nějaký driver pro Linux tam je).
Aha, takže jste začali ty serverové systémy pro energetiku dělat v C# pro Linux. Zákazník si toho naštěstí včas všimnul, zarazil vás a dodšělali jste to na Windows. To mi spadnul kámen ze srdce, alespon ti zákazníci v energetice mají soudnost.

Ale teď se nám rýsuje další nejasnost - můžeš prosímtě vysvětlit co si mám představit pod pojmem "real-time systémy napsané v C#"? Na jakém OS to běží? Jak je to tam zhruba s časy a vytížením systému? Co se s tím řídí?

Díky.

andrej

Re:Čo programujete v Jave?
« Odpověď #52 kdy: 21. 07. 2014, 23:22:06 »
A teď ješte takový menší dotaz -  C# vs. Java co so hodi na co víc ? webové aplikace, nejaké realtime programy, práca s pamäťou a podobné veci..
Vedel by mi to niekto zrovnať trochu ? :)

Noname

Re:Čo programujete v Jave?
« Odpověď #53 kdy: 22. 07. 2014, 03:43:07 »
To máš prašť jak uhoď. C# je podstatně progresivnější jazyk, ale zase není zrovna moc multiplatformní.

Napsat se dá v obou v podstatě cokoliv, samozřejmě ne na všechno je každý jazyk vhodný. To by ale bylo na delší povídání, stačí trochu zagooglit. Každopádně pro "realtime" aplikace bych osobně nevolil ani jeden z nich.

Práce s pamětí, to je v Javě spíš takový oxymoron. Jde to, ale je to pořád něco jako hack a ani bych to nedoporučoval. V C# se s tím počítá, dá se to pomocí "unsafe" operací. To má zase svoje, výkonem to zaostává za C++ a troufám si tvrdit, že většina C# programátorů u takového kódu ani nebude tušit, která bije. Rozhodně ale pořád 100x lepší, než v Javě.

DK

Re:Čo programujete v Jave?
« Odpověď #54 kdy: 22. 07. 2014, 07:33:42 »
To máš prašť jak uhoď. C# je podstatně progresivnější jazyk, ale zase není zrovna moc multiplatformní.

Napsat se dá v obou v podstatě cokoliv, samozřejmě ne na všechno je každý jazyk vhodný. To by ale bylo na delší povídání, stačí trochu zagooglit. Každopádně pro "realtime" aplikace bych osobně nevolil ani jeden z nich.

Práce s pamětí, to je v Javě spíš takový oxymoron. Jde to, ale je to pořád něco jako hack a ani bych to nedoporučoval. V C# se s tím počítá, dá se to pomocí "unsafe" operací. To má zase svoje, výkonem to zaostává za C++ a troufám si tvrdit, že většina C# programátorů u takového kódu ani nebude tušit, která bije. Rozhodně ale pořád 100x lepší, než v Javě.
V Jave je taky unsafe balicek, ktery obsahuje metody pro primy pristup k pameti (ale pouzivat by se nemel)

podlesh

Re:Čo programujete v Jave?
« Odpověď #55 kdy: 22. 07. 2014, 09:46:31 »
Jenom mě tak napadá: všimli jste si, že 90% obsahu této diskuse je přesně to, co původní tazatel explicitně nechtěl?

publikk

Re:Čo programujete v Jave?
« Odpověď #56 kdy: 22. 07. 2014, 11:07:08 »
naposled toto:
http://forum.root.cz/index.php?topic=9013.msg100916#msg100916

a jinak android (java?!) a nejake tools

perceptron

Re:Čo programujete v Jave?
« Odpověď #57 kdy: 22. 07. 2014, 11:57:52 »
Citace
Pri JDBC aspon clovek vie co robi, lahko sa to debuguje a lahko sa to udrzuje.
A okrem toho pouzivas iba standardnu kniznicu a nie s zavisly od nejakych dalsich high-level frameworkov inych autorov.
nemyslel som prave hibernate, ci jpa, myslel som prave java.sql.*.

kym clovek napise obsluhu pre jeden select, napise asi tak 5x tolko boilerplatu (otvaracky connectionov, preparedstatementov, resultsetov, a hlavne zatvaracky toho vsetkeho, co je naslapna mina pre zabudnuty close pri nejakej vynimke)

projekty, kde som robil, si vzdy urobili nejaky wrapper nad jdbc: bud pouzili onen spring jdbc alebo napr. mybatis alebo si napisali jeho variant, ktory haluze so spravou resourcov (nehovoriac o sprave samotnych sql dotazov) urobili za nich.


Sten

Re:Čo programujete v Jave?
« Odpověď #58 kdy: 22. 07. 2014, 12:56:22 »
Citace
Pri JDBC aspon clovek vie co robi, lahko sa to debuguje a lahko sa to udrzuje.
A okrem toho pouzivas iba standardnu kniznicu a nie s zavisly od nejakych dalsich high-level frameworkov inych autorov.
nemyslel som prave hibernate, ci jpa, myslel som prave java.sql.*.

kym clovek napise obsluhu pre jeden select, napise asi tak 5x tolko boilerplatu (otvaracky connectionov, preparedstatementov, resultsetov, a hlavne zatvaracky toho vsetkeho, co je naslapna mina pre zabudnuty close pri nejakej vynimke)

projekty, kde som robil, si vzdy urobili nejaky wrapper nad jdbc: bud pouzili onen spring jdbc alebo napr. mybatis alebo si napisali jeho variant, ktory haluze so spravou resourcov (nehovoriac o sprave samotnych sql dotazov) urobili za nich.

Jeden z nejsilnějších nástrojů v Javě jsou anotace, protože ty mohou generovat vcelku libovolný kód. Ale není zrovna jednoduché annotation processor napsat.

Jinak já pro implementaci RAII (hlavně pro zdroje z nativního kódu) používám takový malý hack: ve finalize javovského objektu pošlu pomocí JNI do fronty funktor, který umí zdroj uklidit. To zavání deadlockem, protože finalize nemá moc záruk, kdy probíhá, nicméně jedna, která se dá využít, tam je. Ostatní vlákna totiž buď běží (tj. k deadlocku nemůže dojít) nebo jsou v synchronizovaném stavu. Takový stav v JVM může být celkem kdykoliv (tedy fronta může být zamčená a dojde k deadlocku), ale v JNI nastává pouze při přechodu mezi nativním kódem a JVM, takže pokud nativní kód během jednoho volání JNI příslušnou frontu zamkne i odemkne (bez volání JVM mezi tím), tak to vlákno nemůže být zastaveno se zamčenou frontou a tedy nemůže dojít k deadlocku.

podlesh

Re:Čo programujete v Jave?
« Odpověď #59 kdy: 22. 07. 2014, 18:07:10 »
Jinak já pro implementaci RAII (hlavně pro zdroje z nativního kódu) používám takový malý hack: ve finalize javovského objektu pošlu pomocí JNI do fronty funktor, který umí zdroj uklidit.
Hmm, zajímavé, ale... proč? Obdobný mechanismus nahrazující finalize přeci byl přidán již v JDK 1.2 (PhantomReference a ReferenceQueue).

Druhá věc je označení RAII, ale na to tady určitě naběhne zásahová jednotka, takže to raději nechám stranou :-)