🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

ruby - wrażenia i pytania

#1070
From: Marcin Gryszkalis
Date: Thu, 15 May 2008 22:14
61 lines
4269 bytes
Witam

Napisałem aplikację w rubim, serwerek SOAP, kilka funkcji plus proste
operacje na bazie, plus wysyłanie maili w oparciu o szablony, konfiguracja
w yamlu. Wszystko razem niecałe 500 wierszy.

Uzyłem NB6 jako środowiska i "programowania w ruby" pragmatycznych
programmerów jako przewodnika. Moje doświadczenie to głównie java (razem z
ee) i perl. 

No i muszę przyznać, że jestem troszkę zawiedziony :) Być może tutejsi spece
odpowiedzą coś konstruktywnego na to co mi wyszło w trakcie...

1. środowisko - dużo słyszałem, że NB6 jest wspaniale jeśli chodzi o
rubiego, sam używałem go do javy i byłem zadowolony a tutaj:
 - podpowiedzi działają sensownie jedynie jeśli zmienna jest wcześniej
przypisana do stałej albo do Klasa.new - niby rozumiem, że język dynamiczny
i można zwracać co się chce, ale... jakoś tak jak jestem w NB to
przyzwyczajony jestem do tego, że w Javie podpowiedzi są 100%. Dla nowego
programisty, który nie zna jeszcze API są one nieco mało pomocne...
kiedy .add prezentuje mi listę 1000 klas, w których takowa meta się pojawia
 - debugger działa fatalnie (używałem "classic debugger" bo jakoś nie bardzo
byłem w stanie uruchomić "fast"), nie zatrzymuje się na ustawionych
breakpointach a zatrzymuje się w nieokreslonych miejscach, czasami wogóle
się gubi...

2. sam ruby
 - jeszcze się nie przyzwyczaiłem do "kontroli typów bez określania typów",
dotychczas pisałem albo w Javie, gdzie wszystko jest precyzynie z góry
określone, albo w perlu, gdzie właściwie nie ma typów...
 - składnia jest miła, do braku średników się przyzwyczaiłem szybko, bloki i
yield są fajne, regexpy są na szczęście w języku i nie trzeba się wygłupiać
jak w Javie
 - niektórych rzeczy nie czuję - czy modyfikowanie istniejących klas (np.
String) przez dodawanie metod nie powoduje zbyt dużego zamętu? Czemu nie
zrobić tego "normalnie", czyli odziedziczyć, rozszerzyć i używać jawnie
zmodyfikowanej wersji? Przecież przekazując projekt komuś innemu wpędzimy
go w nerwicę zanim się zorientuje, że przedefiniowaliśmy metodę '+' w
bibliotecznej klasie String... 
 - dlaczego w haszach czasem używa się po prostu stałych Stringów, a czasem
symboli (tj. 'a' => 'a' VS :a => 'a')?

3. biblioteki i dokumentacja
 - bardzo mi brakuje czegoś jak CPAN dla perla, jedno miejsce, gdzie w
ustandaryzowanej postaci znajdę wszystkie możliwe biblioteki, z
dokumentacją, historią wersji, plikami itd. a w rubym? weźmy taki sobie
rubymail - na rubyforge są pliki ale nie ma dokumentacji, na ruby-doc jest
dokumentacja tylko do biblioteki standardowej, historię i linki mam na 
http://raa.ruby-lang.org, dokumentacje po instalacji z gema lokalnie (a
jeśli najpierw chciałbym sprawdzić API czy wogóle warto instalować?) A do
tego wszystkiego pakiet nazywa się rubymail a klasy są w przestrzeni RMail,
super spójne ;)
 - ruby-mysql i mysql-ruby, jeden o statusie preview a drugi "test", obydwa
tego samego autora.

Na razie tyle wywnętrznień bo zasypiam, dalesze uwagi i pytania później ;)
pozdrawiam
-- 
Marcin Gryszkalis, PGP 0x9F183FA3
jabber jid:mg@fork.pl, gg:2532994
http://the.fork.pl
Technical Details
Message-ID: <g0ia32$571$1@node1.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!goblin1!goblin2!goblin.stu.neva.ru!newsfeed.atman.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!goblin1!goblin2!goblin.stu.neva.ru!newsfeed.atman.pl!not-for-mail
From: Marcin Gryszkalis <mg@fork.pl>
Newsgroups: pl.comp.lang.ruby
Subject: ruby - wrażenia i pytania
Date: Fri, 16 May 2008 00:14:22 +0200
Organization: ATMAN
Lines: 62
Message-ID: <g0ia32$571$1@node1.news.atman.pl>
NNTP-Posting-Host: hq.fork.pl
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1210887074 5345 217.113.238.142 (15 May 2008 21:31:14 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Thu, 15 May 2008 21:31:14 +0000 (UTC)
User-Agent: KNode/0.10.5
X-Face: 3lWCHK"z<l`G[{^:C!&<dNf3*y_BdT>/\at`d$|$iAy<gSBYxP83qoKh)c:l%/CRs:R^Ou
 N;#n.hv|{ytUQcw@cLj7j0^CNiES5xRq#z,=0@i9*do;l'B~JQdK4gUA6K01_gJWkaJ@c|
 ^<=$t*k)A(n=>VLwc?V{9Q*]j>4Tz(B7xf"fUHo4"B4;hzt&sH~\iSHbn9}S4uDKFm)F\$
 ]!58*|z0F&=^`NBv9*FyFKQm]:O78^8VR2MZnBAn|T-_r>AHzr!Zq7aZ5G]-5_A_*w<N&>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit