Article View: pl.comp.objects
Article #16805Re: Groovy
From: Piotr Kobzda
Date: Mon, 14 May 2007 19:50
Date: Mon, 14 May 2007 19:50
97 lines
5325 bytes
5325 bytes
Seweryn Habdank-Wojewódzki wrote: >> Z innej odnogi wątku widzę, że nie rozumiesz! > > A czy ja Ci coś powiedziałem o JNI? Jako, że skomentowałeś mój tekst odnośnie JNI, tak uznałem. A wniosek wysnułem ma podstawie tego: > Nie musi Pan życzyć powodzenia. Piotr Kobzda wyraźnie napisał, że jak Pan > poprosi się o lanie i pogrzebie w JNI (a Pan w swoich przykładach robi coś > dokładnie na tym poziomie), to Pan może wszystko zrobić. > >>> W sumie to jest jedyna rzecz którą znam która to może wywalić JVM. >>> Ale jak to powiadam zazwyczaj o C używanym w C++ - "Jak ktoś przecina >>> przewody paliwa w samochodzie co niech nie płacze, że nie jedzie." >> W Javie jest różnica taka, że nawet jeśli będziesz próbował poprzecinać, >> to jedynie może Cię prąd kopnie, kable zostaną całe!! > > Prąd nie płynie w przewodach paliwowych ;-) Tak. O przewodach myślałem, a o kablach napisałem... :-) (Lekko rozpraszające otoczenie miałem wokół siebie przez chwilę... dzieci czasem nagle dużo pytają... ;) ) > >>> Tu też to odnoszę więc JNI nie podaję jako przykład. >> Bo to nie jest żaden przykład! > > Wiesz przestałem Cię rozumieć. Po co ten wykrzyknik? Wykrzyknik, by zwrócić uwagę na Twój, w moim odczuciu istotny, błąd w rozumowaniu. JNI nie możesz podać jako przykład, bo nie jest to dziura Javy. A nie dlatego, że tak nie powinno się robić, co właśnie sugeruje Twoja przypowieść o przewodach (do której odnosisz). > >> To, że z natywa możesz rozwalić wszystko, to już nie >> jest problem Javy, a natywa własnie (napisanego np. w C++)! > > Widzisz. Ja nie pokazuję dziur w Javie. Chociaż Ty to tak zinterpretowałeś. Nie, nie zinterpretowałem tak Twoich słów. > Powiedziałem, że jak ktoś się stara, to każdy kod wywali. No i właśnie w tym tkwi błąd, że nie każdy! (Tu te same emocje, co z poprzednim wykrzyknikiem). > Uwaga, którą > piszesz na początku zapewne odnosi się do mojej odpowiedzi do Pana A.K. Również. > Sam mówiłeś, że pisałeś w C++ (dawno temu). Zatem trochę go znasz i dobrze > wiesz co Pan A.K. pokazał w swoim kodzie. Oczywiście, że wiem. M.in. dlatego przestałem bawić się w szczegółową ochronę w C++, zanim jeszcze pożegnałem się z tym językiem na dobre... > Praca z #define to jest jak dłubanie w JNI i sed'owanie kodu i to na bardzo > niskim poziomie. Otóż nie. W Javie najniższy poziom to bajtkod. Wszystko poniżej, to już nie Java, a maszyna, na której ów kod działa. Na poziomie JNI nie podłubiesz, ani w źródłach Javy, ani nawet w bajtkodzie. > Bo jak przejadę kod programu Javy sedem i zamienię private > na public, to też wszystko walnie w łeb. Nie, nic nie "walnie". Co najwyżej skompilujesz wadliwie swój kod, który i tak weryfikator bajtkodu odrzuci w runtime, ze względu na binarną niekompatybilność z kodem, do którego się odwołuje (nawiasem mówiąc, na to już wcześniej Pan A.L. zwrócił uwagę...). > A tak właśnie działa #define, > tylko, że lokalnie. Podobnie oszukuje kompilator, tyle, że oszustwo w przypadku binariów C++ najczęściej przechodzi płazem. > Szkoda, że nie rozumiesz mojej postawy, bo nie pokazuje, że Java jest > dziurawa, tylko pokazuje, że w każdym języku możesz zrobić badziewie z kodu > jak się postarasz, a tak właśnie robi Pan A.K. A no widzisz, po to właśnie jest cała ta ochrona kodu w Javie, aby nawet jeśli ktoś się uprze i napisze, jak to nazwałeś "badziewie", to i tak ja mogę być bezpieczny, że nie ma dostępu do chronionych spraw mojego kodu, choćby i tylko w opcode-ach pisał. Mam nadzieję, że teraz rozumiesz skąd mój wykrzyknik? ;) piotr
Technical Details
Message-ID:
<f2aej2$hk4$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<f1tdl6$2s4$1@inews.gazeta.pl><f1todc$8s5$1@inews.gazeta.pl> <f1tss8$iq3$1@inews.gazeta.pl> <f1u2qu$1pm$1@inews.gazeta.pl> <1178922714.630317.141500@y80g2000hsf.googlegroups.com> <f22v79$3gu$1@inews.gazeta.pl> <f246sk$b8s$1@news.vectranet.pl> <f24i4s$6pe$1@inews.gazeta.pl> <f24s89$vs3$1@news.vectranet.pl> <f24u05$nnf$1@inews.gazeta.pl> <f24uor$39e$1@news.vectranet.pl> <f2586r$asf$1@inews.gazeta.pl> <f258o1$bn7$2@news.onet.pl> <f259i3$gqe$1@inews.gazeta.pl> <1179070935.984018.56140@p77g2000hsh.googlegroups.com> <f27u3n$q7k$1@inews.gazeta.pl> <f299h0$b63$4@news.vectranet.pl> <f29dle$8p7$1@inews.gazeta.pl> <f29rdr$tuk$1@news.vectranet.pl> <f2a1nl$dbi$1@inews.gazeta.pl> <f2a637$8hs$1@news.vectranet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: Piotr Kobzda <pikob@gazeta.pl> Newsgroups: pl.comp.objects Subject: Re: Groovy Date: Mon, 14 May 2007 21:50:58 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 97 Message-ID: <f2aej2$hk4$1@inews.gazeta.pl> References: <f1tdl6$2s4$1@inews.gazeta.pl><f1todc$8s5$1@inews.gazeta.pl> <f1tss8$iq3$1@inews.gazeta.pl> <f1u2qu$1pm$1@inews.gazeta.pl> <1178922714.630317.141500@y80g2000hsf.googlegroups.com> <f22v79$3gu$1@inews.gazeta.pl> <f246sk$b8s$1@news.vectranet.pl> <f24i4s$6pe$1@inews.gazeta.pl> <f24s89$vs3$1@news.vectranet.pl> <f24u05$nnf$1@inews.gazeta.pl> <f24uor$39e$1@news.vectranet.pl> <f2586r$asf$1@inews.gazeta.pl> <f258o1$bn7$2@news.onet.pl> <f259i3$gqe$1@inews.gazeta.pl> <1179070935.984018.56140@p77g2000hsh.googlegroups.com> <f27u3n$q7k$1@inews.gazeta.pl> <f299h0$b63$4@news.vectranet.pl> <f29dle$8p7$1@inews.gazeta.pl> <f29rdr$tuk$1@news.vectranet.pl> <f2a1nl$dbi$1@inews.gazeta.pl> <f2a637$8hs$1@news.vectranet.pl> NNTP-Posting-Host: xdsl-2843.zgora.dialog.net.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1179172258 18052 81.168.239.27 (14 May 2007 19:50:58 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Mon, 14 May 2007 19:50:58 +0000 (UTC) X-User: pikob In-Reply-To: <f2a637$8hs$1@news.vectranet.pl> User-Agent: Thunderbird 1.5.0.10 (Windows/20070221) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit