Article View: pl.comp.objects
Article #15025Re: Wyj?tki w konstruktorze
From: Aleksander Galicki
Date: Thu, 31 Aug 2006 00:04
Date: Thu, 31 Aug 2006 00:04
146 lines
7558 bytes
7558 bytes
Seweryn Habdank-Wojewódzki <habdank@gmail.com> napisał(a): > Witam > > Aleksander Galicki wrote: > > >> > No chyba nie powiesz ze ANSI C wprowadzil do uzycia enumy? > >> > >> A gdzie były pierwsze. Znam je z C, który znam od 1989. Jeśli coś miało > >> enumy wcześniej to mi powiedz, chętnie się czegoś dowiem. A napewno nie była > >> to oryginalna konstrukcja C++. > > > > No, np w Pascalu w 1970 roku. Typy algebraiczne w jezykach funkcyjnych tez > > istnialy od dawna. > > Tak, tylko że to w C się nazywają enum. Zreszta wszyscy wiedzą, że java > powstaja jako "bardziej user friendly C/C++" Nie. >. Nota bene C powstał na przełomie 1969-73, więc jakoś równolegle do > Pascala. Andrzej Lewandowski juz napisal, ze to C bylo reakcja na Pascal, nie odwrotnie. > >> Hehe, w szczególności notacja jest rżnięta. A może pomysł nie jest C++ owy, > >> aby tworzyć klasy parametryzowane typami. > > > > To sie nazywa parametric types i na pewno nie jest to pomysl c++. Istnialo to > > w Eiffel, Ada, jezykach funkcyjnych i pewnie gdzies jeszcze. > > Eifel powstał 1985, ciekawe czy od początku miał typy parametryzowane. Mial parametryczne typy od poczatku. > I > ciekawe czy jest możliwe metaprogramowanie za ich pomocą. Nie. Makrogeneracja jest bowiem pojeciem ortogonalnym to typow parametrycznych. > > Zachowujesz sie jak typowy c++'owy zealot - "wszystko co dobre pochodzi od > > c++". Ci to nawet sadza, ze GC zostal w C++ wymyslony. > > Nie. Nie wszystko, ale Java tak jest. Ponownie - nieuzasadniona megalomania. Java wywodzi sie ze Smalltalka, a jeszcze bardziej z Objective-C. Rowniez te wszystkie C-like kawalki skladni wywodza sie z Objective-C, nie z C++. > Ich własna inwencja to jest początkowy > porządek w drzewie klas, bo dziś w J2EE, jest burdel, klasy są popisane doś > kiepsko, w szczególności, są one bardzo ciężkie i jest trochę kodu > redundantnego. Ziew. Pisz o tym, na czym sie znasz. To, ze piszesz o czyms, o czym nie masz wystarczajacego pojecia jest zbyt oczywiste. Mozesz mi uwierzyc. Zeby pisac o tym co jest nie tak z J2EE, trzeba w tym J2EE popracowac. Zawodowo i przez pare lat. Dlaczego? Dlatego, ze starasz sie do tezy "cos musi byc z J2EE nie tak" dopasowac swoje z J2EE doswiadczenie, a poniewaz owe doswiadczenie ograniczaja sie do przejrzenia blizej niokreslonego "drzewka klas" to i argumenty wychodza takie jak "są one bardzo ciężkie i jest trochę kodu redundantnego". Pomoge Ci - JSR 277. Tam zobaczysz jedna z rzecz, ktora jest niezwykle wazna dla Javy i dla J(2)EE, a jest bardzo zle w tej chwili rozwiazana. > Jest wiele rzeczy, które w C++ są ściągnięte z języków > funkcyjnych. Co mi się podoba. W C++ obiektowość jest zapożyczona ze > Smalltalka. Jednego z tych jezykow (C++, Smalltalk) musiales na zywe oczy nie widziec. > Tylko, że to nikt się nie wstydzi, a światek Javistów jest taki > pyszny, że niechce się przyznać, że wziął całkiem sporo rzeczy z C++ włączając > składnię, którą C++ wziął z C. To nie zadna pysznosc, to megalomania i ignorancja tych ktorzy twierdza, ze Java cos tam od C++ wziela. Java ma korzenie w Objective-C i Smalltalku. Konkretnie te C-like klamerki i typy prymitywne pochodza z Objective-C, nie z C++. > > >> A realizacja > >> jest wykonana na imarę Javy, czyli odeszli od typizacji statycznej na rzecz > >> dynamicznej i dlatego ich funkcjonalność jest inna. > > > > Pomerdala Ci sie typizacja z implementacja generic class jedna zwyczajna > > klasa. > > Tego zdania nie rozumiem. Wiesz jakbyś nie wiedział to napisałem kilka > programików pisząc w nich klasy generyczne od zera, więc coś o tym wiem. > Był już na grupie z Javy taki jeden, który pisał, że nie znam Javy i nie mam > się co wypowiadać, poczym jak mu przykładowy kod pokazałem, to trochę zmienił > zdanie - nie mówię, że jestem expertem, ale proszę mi nie imputować, że nie > znam Javy, bo mam na swoim koncie kilka małych projekcików. A ja w poprzednim tygodniu widzialem goscia (na job interview) z 15 lat experience, ktory na pytanie "czy wie pan cos o MVC" skrzywil sie i powiedzial "tak, ale swojego czasu zaimplementowalem lepszy". Ja nie musze ogladac zadnego kodu, zeby widziec, kiedy piszesz od rzeczy. Nieco upraszczajac sprawe: na jezyk jak i na technologie sklada sie trzy rzeczy - skladnia, semantyka i pragmatyka. I to pragmatyka sie liczy najbardziej. Niestety aby krytykowac pragmatyke, najczesciej nie wystarczy pobieznie spojrzec na skladnie. To nie jest tak, ze nie ma co w Javie krytykowac - wrecz przeciwnie - jest tego w cholere, ale zeby cos z sensem krytykowac najczescie trzeba samemu tego bolesnie doswiadczyc. > > > Dziadzowski design - mowisz wiec o C++? :-) > > Zastanów się jaki design jest w Javie. co to jest niby dobry design? > > Popatrz się na klasy *Holder i *Helper. > > Czy nie lepiej było to napisac tak: > Holder < T > > Helper < T > ?? Ale o jakie klasy chodzi? > A może chodzi o zgodność w dół? Czyli za kilka lat Jva 9.0 będzie ośmiornicą, > która bazuje na Javie 1.4 i ma doszytą funkcjonalność na miarę możliwości javy > 9.0? > > Jest ich masa. Nie w Javie jest BooleanHelper i BooleanHelper i potem to samo > dla Byte itd. Jaki BooleanHelper? O czym Ty piszesz? > Jest jeszcze masa innych takich kwiatków. Wyimaginowanych, znaczy sie, kwiatkow? Ja nie moge patrzyc jak sie meczysz: i chcesz cos skrytykowac i nie wiesz co... Pomoge Ci znalezc jedna okropna klase w Javie - java.util.Calendar. Ta klasa - a takze kilka innych koszmarkow - wyladowala w Javie za sprawa najwiekszego specjalisty od koszmarkow - IBM. > > Trudno o lepszy przyklad > > dziadowskiego designu. No, moze WS-* ostatnio staje sie niezla konkurencja. > > Hehe. Zastanów się co mówisz zanim coś powiesz, bo chyba PHP nie znasz. Znam. PHP nie pasuje, bo PHP nie wykazuje zadnych objawow designu. A. -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Technical Details
Message-ID:
<ed591i$a5i$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<1156145142.606030.39100@m73g2000cwd.googlegroups.com> <ece4m4$88j$1@inews.gazeta.pl> <ecesvp$k3h$3@kujawiak.man.lodz.pl> <eci6qt$h30$1@inews.gazeta.pl> <ch3qe25s17dild5v1m7ei4c43b0n2tka4e@4ax.com> <ecm9eg$g71$4@kujawiak.man.lodz.pl> <a1l0f215rtj4kj6o35sora0fd2bl0qn0k9@4ax.com> <87lkpbs6yq.fsf@hector.domek> <ecs10b$795$1@srv.cyf-kr.edu.pl> <i0b3f25nvj9fr6ats7kjvntr20g3gsruiu@4ax.com> <ecsal7$vje$2@tkdami.pl> <lic3f2thihtcitu6eavf9p8q485e6n4aeg@4ax.com> <ecsg43$c0h$1@tkdami.pl> <ecsoqp$l6f$1@inews.gazeta.pl> <ect3d4$jg4$1@tkdami.pl> <ectapn$mcg$1@inews.gazeta.pl> <ecuen4$cra$1@tkdami.pl> <ecvh3d$24i$1@inews.gazeta.pl> <ed3lkl$ob0$1@tkdami.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Aleksander Galicki" <tretete.WYTNIJ@gazeta.pl> Newsgroups: pl.comp.objects Subject: Re: Wyj?tki w konstruktorze Date: Thu, 31 Aug 2006 00:04:03 +0000 (UTC) Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 146 Message-ID: <ed591i$a5i$1@inews.gazeta.pl> References: <1156145142.606030.39100@m73g2000cwd.googlegroups.com> <ece4m4$88j$1@inews.gazeta.pl> <ecesvp$k3h$3@kujawiak.man.lodz.pl> <eci6qt$h30$1@inews.gazeta.pl> <ch3qe25s17dild5v1m7ei4c43b0n2tka4e@4ax.com> <ecm9eg$g71$4@kujawiak.man.lodz.pl> <a1l0f215rtj4kj6o35sora0fd2bl0qn0k9@4ax.com> <87lkpbs6yq.fsf@hector.domek> <ecs10b$795$1@srv.cyf-kr.edu.pl> <i0b3f25nvj9fr6ats7kjvntr20g3gsruiu@4ax.com> <ecsal7$vje$2@tkdami.pl> <lic3f2thihtcitu6eavf9p8q485e6n4aeg@4ax.com> <ecsg43$c0h$1@tkdami.pl> <ecsoqp$l6f$1@inews.gazeta.pl> <ect3d4$jg4$1@tkdami.pl> <ectapn$mcg$1@inews.gazeta.pl> <ecuen4$cra$1@tkdami.pl> <ecvh3d$24i$1@inews.gazeta.pl> <ed3lkl$ob0$1@tkdami.pl> NNTP-Posting-Host: 203.109.151.60 X-Trace: inews.gazeta.pl 1156982643 10418 172.20.26.240 (31 Aug 2006 00:04:03 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Thu, 31 Aug 2006 00:04:03 +0000 (UTC) X-User: tretete X-Forwarded-For: 172.20.6.165 X-Remote-IP: 203.109.151.60 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit