🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
14 messages
14 total messages Started by Bartek Tue, 08 Oct 2013 11:16
Przesiadka z Delphi
#153899
Author: Bartek
Date: Tue, 08 Oct 2013 11:16
25 lines
1859 bytes
Witam
Przymierzam się do przejścia z Delphi na Jave, ale powiem szczerze że nie 
wiem od czego zacząć w tej Javie.

Na początku odstrasza mnie to że tu się robi wszystko na konsoli, chyba że 
się myle?

W delphi, układam sobię komponenty na Formatce, kod jest do tych elementów 
generowany automatycznie, mi pozostaje właściwie oprogramowanie zdażeń.
Czy w Javie też tak można? Wiem że jest Eclipse, Netbans, ale czy to mniej 
więcej działa tak samo?

Kolejna rzecz, a właściwie kilka rzeczy:
1. Jak wygląda sprawa samego przejścia z Delphi na Jave, składnia, język 
itd. dużo czasu zajmnie przesiadka?

2. Jak wygląda sprawa obsługi baz danych w Javie, jak to zrobić np. program 
kliencki w Javie obsługuje baze na serwerze w Postgresql.

3. W Delphi mam komponent TeeChart, mogę tam dworzyć dowolne wykresy na 
ekranie komputera 2D i 3D, czy w Javie też da się zrobić coś takiego, czy 
raczej nie?

Pozdrawiam
Bartek
Re: Przesiadka z Delphi
#153900
Author: Arivald
Date: Tue, 08 Oct 2013 12:06
62 lines
3191 bytes
W dniu 2013-10-08 13:16, Bartek pisze:
> Witam
> Przymierzam się do przejścia z Delphi na Jave, ale powiem szczerze że nie
> wiem od czego zacząć w tej Javie.
>

> Na początku odstrasza mnie to że tu się robi wszystko na konsoli, chyba że
> się myle?

Mylisz się.
Choć umiejętność pracy z konsola pomaga.


> W delphi, układam sobię komponenty na Formatce, kod jest do tych elementów
> generowany automatycznie, mi pozostaje właściwie oprogramowanie zdażeń.
> Czy w Javie też tak można? Wiem że jest Eclipse, Netbans, ale czy to mniej
> więcej działa tak samo?

Zupełnie inaczej.
Zależy to głównie od środowiska docelowego aplikacji, biblioteki GUI 
jeśli to ma być apka z GUI, i dostępnych narzędzi dla tej biblioteki. 
Niektóre mają możliwość pracy podobnie jak w Delphi.


> Kolejna rzecz, a właściwie kilka rzeczy:
> 1. Jak wygląda sprawa samego przejścia z Delphi na Jave, składnia, język
> itd. dużo czasu zajmnie przesiadka?

...Co za pytanie... Prosta apkę w jeden dzień zrobisz, jest pełno 
tutoriali w sieci.

Jak masz praktykę w programowaniu czegokolwiek poza Delphi (Javascript, 
C++, nawet C#) to składnię opanujesz szybko.
Biblioteki standardowe Javy są spore, zajmie czas się wszystkiego nauczyć.
Będziesz miał początkowo problemy ze Stringami, bo działają zupełnie 
inaczej.
Plus problemy z zaboksowanymi intami/floatami.

A na generykach stracisz kupę czasu i szacunek dla twórców Javy ;-)
Niestety Java ma jedną z najgorszych implementacji generyków, już od 
narodzin zepsutą przez wsteczną kompatybilność.


> 2. Jak wygląda sprawa obsługi baz danych w Javie, jak to zrobić np. program
> kliencki w Javie obsługuje baze na serwerze w Postgresql.
>

Wygląda zupełnie inaczej niż w Delphi. Nie ma czegoś takiego jak 
TDataSet, czy kontrolki bazodanowe.

Wypadnie Ci się nauczyć jakiegoś ORMA, np. Hibernate.


> 3. W Delphi mam komponent TeeChart, mogę tam dworzyć dowolne wykresy na
> ekranie komputera 2D i 3D, czy w Javie też da się zrobić coś takiego, czy
> raczej nie?

Na pewno jest. Java ma znacznie większą bazę użytkowników niz Delphi. 
Tylko czy znajdziesz coś takiego w internecie?

-- 
Arivald
Re: Przesiadka z Delphi
#153901
Author: Borneq
Date: Tue, 08 Oct 2013 19:10
7 lines
1292 bytes
Użytkownik "Arivald" <arivald_@AT_interia_DOT_.pl> napisał w wiadomości 
news:l30sgq$i0o$1@news.dialog.net.pl...
> A na generykach stracisz kupę czasu i szacunek dla twórców Javy ;-)
> Niestety Java ma jedną z najgorszych implementacji generyków, już od 
> narodzin zepsutą przez wsteczną kompatybilność.

A co jest złego w generykach Javy? czego nie można na nich zrobić? 
Re: Przesiadka z Delphi
#153902
Author: Arivald
Date: Tue, 08 Oct 2013 19:51
45 lines
2570 bytes
W dniu 2013-10-08 21:10, Borneq pisze:
> Użytkownik "Arivald" <arivald_@AT_interia_DOT_.pl> napisał w wiadomości
> news:l30sgq$i0o$1@news.dialog.net.pl...
>> A na generykach stracisz kupę czasu i szacunek dla twórców Javy ;-)
>> Niestety Java ma jedną z najgorszych implementacji generyków, już od
>> narodzin zepsutą przez wsteczną kompatybilność.
>
> A co jest złego w generykach Javy? czego nie można na nich zrobić?


Podstawowa wada - zacieranie typu klasy generycznej.

Np w Delphi TList<klasaA> i TList<klasaB> to są dwa różne typy. Podobnie 
jest w większości języków. w C++ te typy są nawet osobno kompilowane, z 
różnymi optymalizacjami.

A w Javie List<klasaA> i List<klasaB> to jest dokładnie ten sam typ. 
Zresztą dokładnie ten sam kod jest wykonywany (nie "taki sam", ale 
dokładnie "ten sam").

Gdzie to przeszkadza? A na przykład przy przeciążeniu funkcji. W Jawie

function void fun(List<klasaA> list);
function void fun(List<klasaB> list);

Mają tą samą sygnaturę, i przeciążenie jest niemożliwe.

Albo mając function fun(List<T> list) nie jesteś w stanie stwierdzić 
jaką klasą jest T bez użycia refleksji. Dlatego używa się form z 
obowiązkowym przekazaniem klasy, np:

function void fun(List<T> list, Class<?> clazz);


A to wszystko tylko po to żeby generyczne kolekcje były kompatybilne ze 
starszymi niegenerycznymi API... Tak, do funkcji:

function void fun(List list);

... możesz przekazać zarówno List<klasaA> jak i List<klasaB> i będzie 
działać.


-- 
Arivald
Re: Przesiadka z Delphi
#153903
Author: Borneq
Date: Tue, 08 Oct 2013 21:42
7 lines
1332 bytes
Użytkownik "Arivald" <NOSPAMarivald@interia.pl> napisał w wiadomości 
news:l31ntb$uae$1@news.dialog.net.pl...
> A w Javie List<klasaA> i List<klasaB> to jest dokładnie ten sam typ. 
> Zresztą dokładnie ten sam kod jest wykonywany (nie "taki sam", ale 
> dokładnie "ten sam").

Ale to ma i zalety,. W Delphi po wprowadzeniu generyków kod bardzo spuchł 
Re: Przesiadka z Delphi
#153909
Author: Roman W
Date: Wed, 09 Oct 2013 07:14
13 lines
1919 bytes
On Tue, 08 Oct 2013 14:06:54 +0200, Arivald 
<arivald_@AT_interia_DOT_.pl> wrote:
> > 2. Jak wygląda sprawa obsługi baz danych w Javie, jak to zrobić 
np. program
> > kliencki w Javie obsługuje baze na serwerze w Postgresql.
> >
> Wygląda zupełnie inaczej niż w Delphi. Nie ma czegoś takiego jak 
> TDataSet, czy kontrolki bazodanowe.
> Wypadnie Ci się nauczyć jakiegoś ORMA, np. Hibernate.

Wcale nie "wypadnie". Wielu ludzi wręcz odradza ORM-y.

RW
Re: Przesiadka z Delphi
#153904
Author: Roman W
Date: Wed, 09 Oct 2013 07:15
18 lines
1914 bytes
On Tue, 8 Oct 2013 23:42:06 +0200, "Borneq" 
<borneq@antyspam.hidden.pl> wrote:
> Użytkownik "Arivald" <NOSPAMarivald@interia.pl> napisał w 
wiadomości 
> news:l31ntb$uae$1@news.dialog.net.pl...
> > A w Javie List<klasaA> i List<klasaB> to jest dokładnie ten sam 
typ. 
> > Zresztą dokładnie ten sam kod jest wykonywany (nie "taki sam", 
ale 
> > dokładnie "ten sam").


> Ale to ma i zalety,. W Delphi po wprowadzeniu generyków kod bardzo 
spuchł

W C++ też puchnie.

RW
Re: Przesiadka z Delphi
#153905
Author: Arivald
Date: Wed, 09 Oct 2013 07:28
33 lines
2260 bytes
W dniu 2013-10-09 09:15, Roman W pisze:
> On Tue, 8 Oct 2013 23:42:06 +0200, "Borneq" <borneq@antyspam.hidden.pl>
> wrote:
>> Użytkownik "Arivald" <NOSPAMarivald@interia.pl> napisał w
> wiadomości
>> news:l31ntb$uae$1@news.dialog.net.pl...
>> > A w Javie List<klasaA> i List<klasaB> to jest dokładnie ten sam
> typ.
>> > Zresztą dokładnie ten sam kod jest wykonywany (nie "taki sam",
> ale
>> > dokładnie "ten sam").
>
>
>> Ale to ma i zalety,. W Delphi po wprowadzeniu generyków kod bardzo
> spuchł
>
> W C++ też puchnie.
>

"puchnie"... A jak być ręcznie zakodował kilkadziesiąt odrębnych klas 
listy dla tych kilkudziesięciu typów przechowywanych w listach, to kod 
by nie "spuchł"? Oczywiście spuchnie, gdzieś ten kod musi się podziać.

Generyki to jest meta-programowanie, robisz klasę raz, kompiluje się ona 
dla każdego typu osobno. Nie przez przypadek w C++ nazywa się to 
"wzorce" (templates).

Oczywiście można korzystać z niegenerycznych kontenerów... Tylko po co? 
Ramy i dysku dostępne jest teraz dużo, a wygoda i bezpieczeństwo z 
generykami jest dużo większe.

-- 
Arivald
Re: Przesiadka z Delphi
#153910
Author: Piotr Rezmer
Date: Wed, 09 Oct 2013 09:23
10 lines
1113 bytes
Roman W pisze:

> Wcale nie "wypadnie". Wielu ludzi wręcz odradza ORM-y.

Możesz rozwinąć dlaczego?

-- 
pozdrawiam
Piotr
XLR250&bmw_f650_dakar
Re: Przesiadka z Delphi
#153911
Author: John Q Public
Date: Wed, 09 Oct 2013 12:05
14 lines
1328 bytes
Piotr Rezmer <p.r@bezbzdur.pl> wrote:
> Roman W pisze:
> 
>> Wcale nie "wypadnie". Wielu ludzi wręcz odradza ORM-y.
> 
> Możesz rozwinąć dlaczego?
Lepiej nie, wyjdzie flamewar i ogólnie ntg.
http://seldo.com/weblog/2011/08/11/orm_is_an_antipattern

-- 
_     _     _     _
 =-_-= =-=-= =-_-=  
=-=_=- J Q P -=_=-=
_=- -=_=-=-=_=- -=_ <xxx> mas w jape
Re: Przesiadka z Delphi
#153912
Author: Michal Kleczek
Date: Thu, 10 Oct 2013 08:56
13 lines
1595 bytes
W dniu 2013-10-09 11:23, Piotr Rezmer pisze:
> Roman W pisze:
>
>> Wcale nie "wypadnie". Wielu ludzi wręcz odradza ORM-y.
>
> Możesz rozwinąć dlaczego?
>

Z bardzo prostego powodu. ORM dodaje pracy (ergo podnosi koszty) nie 
dajac nic w zamian.

--
Michal
Re: Przesiadka z Delphi
#153906
Author: Roman W
Date: Fri, 11 Oct 2013 23:26
13 lines
1966 bytes
On Wed, 09 Oct 2013 09:28:24 +0200, Arivald 
<NOSPAMarivald@interia.pl> wrote:
> "puchnie"... A jak być ręcznie zakodował kilkadziesiąt odrębnych 
klas 
> listy dla tych kilkudziesięciu typów przechowywanych w listach, to 
kod 
> by nie "spuchł"? Oczywiście spuchnie, gdzieś ten kod musi się 
podziać.

Ale w C++ jest tak śmiesznie ze mozesz miec więcej niz jedna kopię 
szablonu dla tej samej klasy.

RW
Re: Przesiadka z Delphi
#153907
Author: Arivald
Date: Sat, 12 Oct 2013 10:09
28 lines
2177 bytes
W dniu 2013-10-12 01:26, Roman W pisze:
> On Wed, 09 Oct 2013 09:28:24 +0200, Arivald <NOSPAMarivald@interia.pl>
> wrote:
>> "puchnie"... A jak być ręcznie zakodował kilkadziesiąt odrębnych
> klas
>> listy dla tych kilkudziesięciu typów przechowywanych w listach, to
> kod
>> by nie "spuchł"? Oczywiście spuchnie, gdzieś ten kod musi się
> podziać.
>
> Ale w C++ jest tak śmiesznie ze mozesz miec więcej niz jedna kopię
> szablonu dla tej samej klasy.
>
> RW

Kopię w jakim sensie? Skompilowanego kodu?
Tai i nie.
Tak, bo każda jednostka kompilacji kompiluje osobno.
Nie, bo linker wywala duplikaty, więc ostatecznie zlinkowany program 
będzie miał tylko jedną kopię.

Oczywiście dodatkowe "kopie" fragmentów kodu mogą się pojawić w każdym 
miejscu które używa danego template, jeśli jego metody mają atrybut 
"inline". Ale to już stare i dobrze znane przehandlowanie rozmiaru 
aplikacji na szybkość jej działania.

-- 
Arivald
Re: Przesiadka z Delphi
#153908
Author: Roman W
Date: Sun, 13 Oct 2013 11:10
10 lines
1931 bytes
On Sat, 12 Oct 2013 12:09:07 +0200, Arivald 
<NOSPAMarivald@interia.pl> wrote:
> Tak, bo każda jednostka kompilacji kompiluje osobno.
> Nie, bo linker wywala duplikaty, więc ostatecznie zlinkowany 
program 
> będzie miał tylko jedną kopię.

A Ty wiesz ile to trwa w dużym projekcie? 

RW
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads