🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.ruby
Article #1085

Re: ruby - wrażenia i pytania

#1085
From: Marcin Gryszkalis
Date: Sat, 17 May 2008 17:05
92 lines
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-mail
References: <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