🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #16881

Re: Groovy

#16881
From: Piotr Kobzda
Date: Thu, 17 May 2007 10:48
125 lines
7170 bytes
Seweryn Habdank-Wojewódzki wrote:

[...]

> Mam swoje podejście do takich konstrukcji, oparte o zaawansowany MPI i
> współdzialanie procesów. (...)

Nie gniewaj się, ale w skrócie to brzmi tak: "ja też umiem zrobić koło".  ;)

Nie twierdzę, że masz zły pomysł.  Bardziej pasuje mi on jednak na ich 
droższe usługi (Private/Premium Tomcat i Private JBoss).

Do których to BTW ja pewnie po prostu VMWare bym użył...


W opcji jednak, o którą pytałem, JVMy są "Shared" (tu ładnie to widzać: 
http://www.4java.ca/index.html).  I Twój sposób, to po prostu nie to.

A po co łączyć?  Ano zapytaj praktyków.  Choćby pamięciowe narzuty można 
rozłożyć znacznie korzystniej na wspólnej maszynie, o łatwiejszej 
administracji, optymalizacjach i konserwacji serwera nie wspominając. 
Tylko z szacunku kosztów usług wynikałoby, że przynajmniej dwóch 
klientów hastują na jednej JVMie (w praktyce myślę, że gruuubo więcej...).

Wniosek (i cel pokazu):  bez Javowych zabezpieczeń, raczej mało 
bezpieczne by to było.  Nie sądzisz?


>> Możliwość jest, nieporównywalnie mniejsza jednak, niż w przypadku
>> ewidentnych dziur.
> 
> Zgadza się. Ale ja nie mierzę aż tak wysoko.

No cóż.  Niektórzy mierzą.


> No tak. Więc są potrzebne języki jakby naturalne dla takich systemów, więc
> potępianie wszystkiego w czambuł jest przesadą. 

A kto potępia?  Nikt nie zarzucał Ci tego, że używasz C++ do czegoś.  To 
Ty twierdzisz, że ochrona Javy jest niepotrzebna, dlatego, bo Ty jej nie 
potrzebujesz.  I to jest tu jedynie przesadą.


> Np. standard ISO C++ wskazuje, że rzutowanie np. void* na np. void (*)()
> jest nie dopuszczalne. Na normalnych maszynach tak wolno dlatego
> kompilatory sypią tylko warningi. Bo program mieści się wtej samej pamięci
> co dane i wskaźnik wolno Ci tak przeinterpretowywać (rzutowanie wskaźnika z
> obiektu void na wskaźnik do funkcji. Ale są maszyny w architekturze
> Harvardzkiej, czyli pamięć danych jest czymś innym niż pamięć programu -
> cała masa różnych DSP. I tam to jest zabronione, nie dlatego, że takie
> chłopaki mają widzimisie. Tak jest sprzętowo i wymuszane bezpieczeństwem
> (dane procesowe mogą wylatywać, moga się nie mieścić, program ma działać,
> oczywiście programista powinien zadbać o to czy tamto, ale już sprzętowa
> separacja daje minimalną ochronę). I C++ wspiera to i warning staje się
> błędem.

Fajnie.  Szkoda tylko, że te "normalne" maszyny, to większość tych, na 
które mierzy się dziś.  I gdzie niestety, jest co najwyżej namiastka 
tego o czym tu piszesz.

Dla kontrastu, *każda* Java SE ma security-managera od zawsze.  Czujesz 
różnicę?


>>> Są rzeczy specyficzne dla windowsa i dla unixa, i jak chcesz je
>>> użyć, to szybko kończysz na JNI, czy się mylę?
>> Bardzo się mylisz.  Większość kodu pod JVMy, przynajmniej wedle moich
>> danych, pisze się dziś w Javie.
> 
> A jak? Może jakiś link. Mam trochę softu w C/C++ który chętnie podepnę do
> maszyny, czy też da się ominąć JNI?

Da się, np. na socketach (z mniej wydajnych też bazy danych, 
web-services, itp.).  Poza tym, ważniejsze jest to, że większość ważnych 
usług systemu jest już dostępna na platformie (podkreślam, że na SE Java 
się nie kończy), więc korzystanie z natywa, to już dziś duże hackerstwo 
w świecie Javy.

Bywa też nawet tak, że opłaca się przepisać natywa na Javę i to może Cię 
zdziwi, po to aby było _szybciej_.  Przykładem niech będą BigDecimal i 
BigInteger z java.math, które początkowo były zaimplementowane natywnie, 
a po przepisaniu w całości na Javę, stały się przynajmniej używalne.

Powód:  JNI jest odporny na wszelkie optymalizacje JIT.


> Tak więc nie ma co całego świata nawracać na jedyny słuszny
> język, bo takiego nie ma :-).

Oczywiście, że nie ma.  Są tylko lepsze i gorsze.  :)  (czytaj: 
bardziej, lub mniej nadające się do tego co chcemy osiągnąć, finito)


> Przeglądałem ją jakiś czas temu i coś tam odpalałem, ale nie byłem
> zachwycony. Do wolnych instalacji, i to trochę specyficznych ano się nawet
> nadaje. Ale nie 100k sampli na sekndę, to już dla niej za wiele. Oni
> pokazują sterowanie robotami, ale takie coś to da się zrobić w Matlabie.
> Bazują na bardzo grubym założeniu, że roboty 2 i 3 generacji, mają zadawanie
> trajektori vektorowo, czyli mówisz jaka trajektoria o podajesz parametry
> tak więc zanim robot się ruszy spokojnie policzysz następną, bo ruch trwa
> trochę czasu. Natomiast wątpię, że laser to obsłuży, który wymaga naprawdę
> szybkich sterowań i wymaga bardzo dużej precyzji w samplowaniu.

Trochę to do mnie, przyznam, nie trafia.  Nie znam się na tym.  Ale za 
wnioski dziękuję.


>> A!  I tu już, jak w każdym zresztą zaufanym sofcie, ochroną bym się
>> najmniej przejmował.
> 
> No więc właśnie. O to chodzi, że czasem ficzery robią się bugami.

Nie bugami!  Stają się zbędne.  I wtedy się je po prostu wyłącza.

> 
> Cieszę się, że zaczynamy wspólnie ustalać, że są miejsca gdzie jednak C++ ma
> miejsce i nie wypiera z tamtąd Javy, bo i tak to nie jest miejsce dla
> niej :-).

Też się cieszę.  Zwróć tylko też uwagę, że w drugą stronę, jak 
najbardziej.  :-)


piotr
Technical Details
Message-ID: <f2hbur$4cq$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
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> <f26fc9$iu6$1@news.vectranet.pl> <f287ie$354$1@inews.gazeta.pl> <f298ag$b63$1@news.vectranet.pl> <f29mdl$m5f$1@inews.gazeta.pl> <f2aa6n$cp8$1@news.vectranet.pl> <f2ad64$auv$1@inews.gazeta.pl> <f2afqc$i98$1@news.vectranet.pl> <f2ahqh$6n8$1@inews.gazeta.pl> <f2ara9$dj2$1@inews.gazeta.pl> <f2at2s$tu6$1@news.vectranet.pl> <f2au65$lsi$1@inews.gazeta.pl> <f2f094$s7p$2@inews.gazeta.pl> <f2fhdn$mq3$1@news.vectranet.pl> <f2fq3r$ifq$1@inews.gazeta.pl> <f2fudp$4kd$1@news.vectranet.pl> <f2g95t$97q$1@inews.gazeta.pl> <f2h2eq$83p$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: Thu, 17 May 2007 12:48:57 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 125
Message-ID: <f2hbur$4cq$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> <f26fc9$iu6$1@news.vectranet.pl> <f287ie$354$1@inews.gazeta.pl> <f298ag$b63$1@news.vectranet.pl> <f29mdl$m5f$1@inews.gazeta.pl> <f2aa6n$cp8$1@news.vectranet.pl> <f2ad64$auv$1@inews.gazeta.pl> <f2afqc$i98$1@news.vectranet.pl> <f2ahqh$6n8$1@inews.gazeta.pl> <f2ara9$dj2$1@inews.gazeta.pl> <f2at2s$tu6$1@news.vectranet.pl> <f2au65$lsi$1@inews.gazeta.pl> <f2f094$s7p$2@inews.gazeta.pl> <f2fhdn$mq3$1@news.vectranet.pl> <f2fq3r$ifq$1@inews.gazeta.pl> <f2fudp$4kd$1@news.vectranet.pl> <f2g95t$97q$1@inews.gazeta.pl> <f2h2eq$83p$1@news.vectranet.pl>
NNTP-Posting-Host: xdsl-2179.zgora.dialog.net.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1179398939 4506 81.168.232.131 (17 May 2007 10:48:59 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Thu, 17 May 2007 10:48:59 +0000 (UTC)
X-User: pikob
In-Reply-To: <f2h2eq$83p$1@news.vectranet.pl>
User-Agent: Thunderbird 1.5.0.10 (Windows/20070221)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit