Java - język głównie stosowany dla aplikacji Webowych a co z programami lokalnymi ?

0

Witam, ostatnio uczę się języka Java. Dokładniej mówiąc zaczytałem się w lekturze Thinking in Java, którą polecam. Ale do rzeczy, wszędzie, nie tylko w książce język Java zostaje głównie uznawany jako język dla aplikacji Webowych, programowanie klient-serwer, aplikacje internetowe, itd. Zastanawia mnie jak język Java sprawdza się w tworzeniu aplikacji lokalnych, mam na myśli nie związanych z internetem (może być jakaś funkcja webowa danej aplikacji), głównie aplikacja miała by działać lokalnie na komputerze użytkownika, np. odtwarzacz muzyczny, edytor tekstu. Z reguły mówi się o doskonałym rozwiązaniu webowym i wykorzystaniu języka Java, a jak to ma się do zastosowań lokalnych ? Czy lepiej skorzystać z języka C# czy język Java również doskonale radzi sobie także w aspekcie takich aplikacji jak to ma się dla języka C# typu WindowsForm ? Dlaczego tak bardzo Jave jako język programowania łączy się z technologiami internetowymi ?

0

W Javie robi się aplikacje desktopowe. Przykładowo pakiet Lotus jest napisany w Javie (Eclipse RPC). Często też w Javie pisane są narzędzia około javowe np. iReports, NetBeans, Eclipse, Oracle SQL Developer, Oracle Forms.

Javę łączy się z netem z trochę innych przyczyn. Kiedyś desktopowe programy Javowe były wolne. Bardzo wolne. Wynikało to ze spartolonej architektury zarówno AWT jak i Swinga. Później pojawił się pakiet SWT i Eclipse to i jakość się polepszyła. W tym czasie zauważono jednak, że Java jest świetnym językiem dla rozwiązań biznesowych. Stabilnym, prostym i dającym dużą elastyczność w doborze platformy. W dodatku sam język bez elementów GUI był szybki i znacznie mniej podatny na błędy w porównaniu do C++. Zatem biznes zajął się Javą i uczynił z niej swoje narzędzie. WebGUI było też naturalnym wyborem w epoce SAAS czy innych dotcomowych pomysłów. Html jest fajny, lekki, a po połączeniu z JavaScriptem i Javą po stronie serwera daje duże możliwości w tworzeniu UI.

0

Generalnie u mnie przy nauce języka java na politechnice mało mówiło się o tym, że java jest do webowych aplikacji.
Praktycznie wszystko co pisaliśmy w javie było desktopowe. Być może ze względu na, to że w aplikacjach desktopowych łatwiej przetestować konkretne algorytmy.

Co do C# to coś mi się obiło o uszy, że Sun z javą był pierwszy i to generalnie java miała ssać. Przykładem takich deklaracji jest np. zabawny filmik java 4ever.
Czy tak się stało ? Często słyszę głosy, że C# ma dużo więcej dostępnych bibliotek. To by było nawet logiczne w końcu wspiera ten język kolos co się nazywa microsoft.
Minus polega na tym, że C# krucho stoi pod względem wieloplatformowości. Java jest i na windowsa i na linuxa i na maca.
Kolejnym punktem spornym jest wydajność. C# jest ponoć wydajniejszy niż Java.

Co do aplikacji webowych w javie. Ostatnio google robi szkolenia na temat ich nowej biblioteki gwt (połączenie javy i ajaxa).
Ja miałem ostatnio przyjemność pracować na wickecie połączonym z springiem i hibernate. Tyle tylko, że ta technologia wydaje mi się nadal ociężała.
Przy generowaniu wielu linii (ok. 30) do tabeli na stronie internetowej trzeba czekać jakieś 30s, co jest nie do pomyślenia w aplikacji webowej.
Być może ja coś przeoczyłem. Czy java do stron internetowych naprawdę jest taka wolna? Gdzie tutaj jest wąskie gardło ? Serwer - glassfish ? Może problemy z samym wicketem ? Może za duża ilość kodu ? Bo generalnie, to co robiłem w zespole 4 osobowym przez ostatnie 3 miesiące kumpel w php zrobił w 3 noce i zawierało to 7 razy mniej kodu. W javie się dużo przyjemniej piszę, tylko ociężałość, to bardzo duży minus. Może jest na to jakaś rada ?

0
jezozwierzak napisał(a)

Praktycznie wszystko co pisaliśmy w javie było desktopowe. Być może ze względu na, to że w aplikacjach desktopowych łatwiej przetestować konkretne algorytmy.
wtf?

jezozwierzak napisał(a)

C# jest ponoć wydajniejszy niż Java.
Javie z przełącznikiem -server do pięt nie dorasta. Czasem nawet clientowy hotspot potrafi go wyprzedzić.. ale po dłuższym działaniu.

jezozwierzak napisał(a)

Przy generowaniu wielu linii (ok. 30) do tabeli na stronie internetowej trzeba czekać jakieś 30s, co jest nie do pomyślenia w aplikacji webowej.
Być może ja coś przeoczyłem. Czy java do stron internetowych naprawdę jest taka wolna?
Bez przesady... to powinno trwać kilka milisekund, coś zepsuliście.

0
jezozwierzak napisał(a)

Generalnie u mnie przy nauce języka java na politechnice mało mówiło się o tym, że java jest do webowych aplikacji.
Praktycznie wszystko co pisaliśmy w javie było desktopowe. Być może ze względu na, to że w aplikacjach desktopowych łatwiej przetestować konkretne algorytmy.

W takim wypadku pisano by wszystko w VS.NET. Po prostu Java jest dużo łatwiejszym i ładniejszym językiem i ucząc się algorytmu nie musisz kombinować z duperelami typu wskaźniki czy alokacja pamięci. Ułatwia naukę.

jezozwierzak napisał(a)

Co do C# to coś mi się obiło o uszy, że Sun z javą był pierwszy i to generalnie java miała ssać. Przykładem takich deklaracji jest np. zabawny filmik java 4ever.

Jak by to powiedzieć... Java powstała w czasach gdy Bill wymyślił, że zamiast kolejnych numerków windows będzie się lepiej sprzedawał jak mu damy numerek z roku wydania.

jezozwierzak napisał(a)

Czy tak się stało ? Często słyszę głosy, że C# ma dużo więcej dostępnych bibliotek. To by było nawet logiczne w końcu wspiera ten język kolos co się nazywa microsoft.

no to walnąłeś jak łysy grzywka o beton. Java była, jest i bedzie wspierana przez kolosa typu Sun, Oracle, IBM. W dodatku stoi za nią ogromna społeczność Free i Opec Source. Do tego jeszcze trzeba przyjrzeć się takiemu dziwnemu zjawisku jak przepisywanie (portowanie) bibliotek java na .net. Przykładowo Hibernate i nHibernate, Spring i Spring.Net. Poza tym... http://www.googlefight.com/index.php?lang=en_GB&word1=java+library&word2=CSharp+library

jezozwierzak napisał(a)

Minus polega na tym, że C# krucho stoi pod względem wieloplatformowości. Java jest i na windowsa i na linuxa i na maca.

Coś za coś. Skoro już kupujesz i płacisz to przecież nie trzeba być wieloplatformowym.

jezozwierzak napisał(a)

Kolejnym punktem spornym jest wydajność. C# jest ponoć wydajniejszy niż Java.

Najlepsze są proste testy... http://przemelek.blogspot.com/search/label/.NET i http://przemelek.blogspot.com/2009/10/java-okazaa-sie-szybsza-od-c-i-pythona.html (o ile wejdzie)

jezozwierzak napisał(a)

Co do aplikacji webowych w javie. Ostatnio google robi szkolenia na temat ich nowej biblioteki gwt (połączenie javy i ajaxa).

A korzystać waćpan z gmaila albo innych produktów Google?

jezozwierzak napisał(a)

Ja miałem ostatnio przyjemność pracować na wickecie połączonym z springiem i hibernate. Tyle tylko, że ta technologia wydaje mi się nadal ociężała.
Przy generowaniu wielu linii (ok. 30) do tabeli na stronie internetowej trzeba czekać jakieś 30s, co jest nie do pomyślenia w aplikacji webowej.
Być może ja coś przeoczyłem. Czy java do stron internetowych naprawdę jest taka wolna? Gdzie tutaj jest wąskie gardło ? Serwer - glassfish ? Może problemy z samym wicketem ? Może za duża ilość kodu ? Bo generalnie, to co robiłem w zespole 4 osobowym przez ostatnie 3 miesiące kumpel w php zrobił w 3 noce i zawierało to 7 razy mniej kodu. W javie się dużo przyjemniej piszę, tylko ociężałość, to bardzo duży minus. Może jest na to jakaś rada ?

To niech kumpel teraz wprowadzi kilka zmian, doda tranzakcyjność biznesową, webservices i całość przepnie na klaster. Z javą jest tak, że ona nie wybacza kiepskiego kodu. Program by był szybki i wydajny musi być po prostu dobrze napisany. Poza tym "strona internetowa" to tylko jakieś takie małe badziewie gdzieś na końcu wtyczki. Jeżeli będziesz chciał tylko do tego wykorzystać serwer aplikacji to rzeczywiście będzie to mulić. Wystarczył by zwyczajny kontener web np. Tomcat czy Jetty.

0

Koziołek dałeś mocne argumenty, będę je konfrontował ;)

P.S mam nadzieję, że "no to walnąłeś jak łysy grzywka o beton" to uwypuklenie z humorem moich błędnych założeń/ wiedzy, a nie lekceważenie ;P

0

@jezozwierzak, oczywiście, że uszczypliwe. Jedyne miejsce gdzie obrażam oponentów to forum onetu :DI jeszcze jedna rzecz. Patrz na wersję Glassfisha. Istnieją duże różnice pomiędzy 2 i 3, które mogą wpływać na wydajność. Z Javą jest tak, że trzeba posiedzieć pogłaskać, przypieprzyć młotkiem czasami i generalnie dostroić do wymagań.

1 użytkowników online, w tym zalogowanych: 0, gości: 1