Article View: pl.comp.lang.ruby
Article #1085Re: ruby - wrażenia i pytania
From: Marcin Gryszkalis
Date: Sat, 17 May 2008 17:05
Date: Sat, 17 May 2008 17:05
92 lines
5600 bytes
5600 bytes
Przemysław Kowalczyk wrote:
> SOAP - bleeee :)
kwestia gustu, jak chcę udostępnić metodę dla "szerokiej publiczności",
która ma aplikacje w j2ee tudzież w .NET to zapodaje im wsdl i już...
Może to nie takie zwięzłe jak zwykłe RPC/Corba ale akurat tutaj wydajność
nie jest istotna...
>> Wszystko razem niecałe 500 wierszy.
> sweet. moglbys sie podzielic swoim oszacowaniem, ile "wierszy" zajeloby to
> w Javie? :)
Obawiam się, że przy moim doświadczeniu to mniej więcej tyle samo jak nie
mniej ;) Prawde mówiąc połowa z tych 500 wierszy to kod (sprawdziłem - 260
kod, 100 wsdl, 50 szablon do maila, 30 konfiguracja).
W jednym i drugim języku wszystko mam gotowe (serwer http/soap gotowy,
parser konfiguracji gotowy, parser soap gotowy, dostęp do bazy gotowy,
logger gotowy, mailer gotowy) - jedyne autorskie elementy w kodzie to
walidacja, której nie byłem w stanie zrobić na poziomie XML-a...
> zapomnij o IDE (ja uzywalem Eclipse). najlepszy jest dobry, lekki edytor
> (w pracy uzywamy TextMate) plus porzadne srodowisko z linia polecen (czyli
> bash z odpowiednimi skrotami, aliasami itp.) im szybciej pozbedziesz sie
> naiwnej wiary, ze IDE jest Ci do czegos potrzebne w Rubym, tym lepiej :)
Prawdę mówiąc w aktualnych wersjach nie narzekam na ciężkość NB, ale
faktycznie sam zazwyczaj piszę w lekkim edytorze opartym na Kate-part z KDE
(szczególnie w perlu). Natomiast IDE używam ze względu na
- debugger (do dyskusji niżej ;) )
- refactoring (tutaj odpada jak rozumiem)
- podpowiedzi (tutaj odpada niestety)
- ładne wsparcie dla subversion czego Kate nie ma
> podpowiadanie metod - zapomnij o tym :) nie potrzebujesz tego.
> potrzebujesz tylko dobrego helpa z lista wszystkich metod (polecam
> gotapi.com)
trochę mi to wygląda na "nie możemy tego mieć to powtarzajmy wszyscy razem
głośno >>podpowiedzi są niepotrzebne<< - może uwierzymy" :) Biblioteka
standardowa JDK zawiera prawie 3500 klas, większości z nich nie uzywasz na
codzień - naprawdę jest to przyjemne jeśli nagle potrzbujesz użyć jakies
URLConnection i nie musisz szukać po dokumentacji czy metoda getHeaderField
bierze jako argument int czy String i co zwraca - bo po ctrl-spacja masz
przed nosem opis właśnie tej metody.
Nie mówie, że jest to niezbędne bo w perlu pracuję w oparci o podpowiedzi
oparte na wystąpieniach stringów w otwartch plikach (chyba to to samo o
czymi pisałeś w kontekście textmate) i też da się żyć :)
> zapomnij o debuggerze :) w czasie roku pracy z Rubym nie uzylem go ani
> razu. testy, irb i p Twoimi przyjaciolmi. prawdziwymi przyjaciolmi.
> debugger nie jest Twoim przyjacielem. bedzie Ci wmawial ze jest, ale tak
> na prawde jest jak diler narkotykow :)
eee... w czym ci zawiniły biedne debuggery, że masz o nich takie złe
zdanie? :)
> w Rubym masz najlepsze z obu wymienionych: dynamic, strong typing. czyli
> jest dynamicznie, ale wszystko jest pilnowane. przyklad - jaki jest wynik
> wyrazenia: "2" + 1 w Javie? "21". a w Rubym leci wyjatek. wiec ktory jezyk
> ma silniejsza kontrole typow? :)
Już chyba o tym pisałem - ale ja wcale nie jestem miłośnikiem Javy, a już
szczególnie po tym zamieszaniu, które pojawiło się w 1.5 (autoboxing i
okolice).
> i znow: w czasie roku pracy z Rubym chyba nigdy nie zastanawialem sie
> "wlasciwie jakiego typu jest dany obiekt?". w 99% to albo jest oczywiste z
> kontekstu, albo nie ma znaczenia.
A widzisz, ja się zastanawiałem, bo na przykład moja klasa serwera
dziedziczy z SOAP::RPC::HTTPServer, który ma jako parent
napisany "Logger::Application" - a faktycznie jest oparty na na Webricku.
Dokumentacja konstruktora jest porażająca wręcz:
http://www.ruby-doc.org/core/classes/SOAP/RPC/HTTPServer.html
na szczęscie nie boję się czytać źródeł gdzie wypatrzyłem
def initialize(config)
@webrick_config = config.dup
@server = WEBrick::HTTPServer.new(@webrick_config)
> w Rubym nie ma NullPointerException (ktory jest chyba
> najczesciej spotykanym wyjatkiem w Javie), zamiast tego dostajesz wyjatek
> "NoMethodError: undefined method `metoda' for nil:NilClass".
To akurat jest całkiem fajne :) A już najbardziej mi się podoba z takich
bazowych rozwiązań, że fałsz to fałsz i nie ma nic wspólnego z 0 albo 1
(tak na marginesie).
> musisz pozbyc sie podejscia typowego dla javowcow, czyli "wszyscy
> programisci (poza mna) chca mi (i/lub sobie) zrobic krzywde".
Na szczęście nie jestem typowym javowcem i robię też duże rzeczy w perlu
gdzie bez przerwy robimy sobie na wzajem krzywdy i nadal jest fajnie ;)
pozdrawiam
--
Marcin Gryszkalis, PGP 0x9F183FA3
jabber jid:mg@fork.pl, gg:2532994
http://the.fork.pl
Technical Details
Message-ID:
<g0n36u$oru$1@node2.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!lublin.pl!news.nask.pl!news.nask.org.pl!newsfeed.atman.pl!not-for-mailReferences:
<g0ia32$571$1@node1.news.atman.pl> <op.ubafw7fzuw9fft@negative-361apc>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!lublin.pl!news.nask.pl!news.nask.org.pl!newsfeed.atman.pl!not-for-mail From: Marcin Gryszkalis <mg@fork.pl> Newsgroups: pl.comp.lang.ruby Subject: Re: ruby - wrażenia i pytania Date: Sat, 17 May 2008 19:05:27 +0200 Organization: ATMAN Lines: 93 Message-ID: <g0n36u$oru$1@node2.news.atman.pl> References: <g0ia32$571$1@node1.news.atman.pl> <op.ubafw7fzuw9fft@negative-361apc> NNTP-Posting-Host: hq.fork.pl Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1211043870 25470 217.113.238.142 (17 May 2008 17:04:30 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Sat, 17 May 2008 17:04:30 +0000 (UTC) User-Agent: KNode/0.10.9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit