🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.ruby
9 messages
9 total messages Started by Maciej Piechotka Fri, 07 Sep 2007 15:14
Kontynuacja - przekleństwo czy błogosławieństwo?
#617
Author: Maciej Piechotka
Date: Fri, 07 Sep 2007 15:14
59 lines
2167 bytes
Narzekano na brak dyskucji na pl.comp.lang.ruby więc może zaproponuje 
temat 'świetej wojny' ;)

Są zapowiedzi że Ruby 2.0 nie będzie miało kontynuacji (łatwiejsza 
integracja z JRuby). Dla mnie kontynuacje to wspaniałe narzedzie które 
pozwala uniknąć różnych dziwnych klas narzędziowych.

Poczynając od tworzenia tego typu rzeczy co(ściągniete z którejś planety o 
RoR lub Ruby):

class Object
  def in? array
    array.include? self
  end
end

Na dodawaniu nowych możliwości kończąc (przykład jakiegoś kodu do 
serializacji):

class Object
  def serialize
    #...
  end
end

class Array
   def serialize
     #...
   end
end

o.serialize

Kontra(tego nie można modyfikować w przypadku dodania nowego typu):

if o.is_a? Array
  #...
elsif o.is_a? #...
  #...
else # Object
  #...

ewentualnie(rozszerzalne):

class Serializer
  # ...
  def serialize o
    @serialize[o.class].call o
  end
end

1. Co Wy sądzicie o kontynuacjach?
2. Czy ktoś wie, czy mają być usunięte?

Pozdrawiam
-- 
I've probably left my head... somewhere. Please wait untill I find it.
Homepage (pl_PL): http://uzytkownik.jogger.pl/
(GNU/)Linux User: #425935 (see http://counter.li.org/)
Re: Kontynuacja - przekleństwo czy błogosławieństwo?
#618
Author: Przemysław Kowalczyk
Date: Fri, 07 Sep 2007 16:05
22 lines
1505 bytes
On Fri, 07 Sep 2007 17:14:48 +0200, Maciej Piechotka  
<uzytkownik2@gmail.com> wrote:
>
> Są zapowiedzi że Ruby 2.0 nie będzie miało kontynuacji (łatwiejsza
> integracja z JRuby). Dla mnie kontynuacje to wspaniałe narzedzie które
> pozwala uniknąć różnych dziwnych klas narzędziowych.
>
> Poczynając od tworzenia tego typu rzeczy co(ściągniete z którejś planety  
> o
> RoR lub Ruby):
>
> class Object
>   def in? array
>     array.include? self
>   end
> end

to i wszystkie kolejne przyklady to nie sa kontynuacje, tylko tzw. otwarte  
klasy. polecam: http://en.wikipedia.org/wiki/Continuation

pzdr
	szeryf
Re: Kontynuacja - przekleństwo czy błogosławieństwo?
#621
Author: Szymon 'tichy'
Date: Fri, 07 Sep 2007 16:26
24 lines
2240 bytes
Maciej Piechotka wrote:
> Narzekano na brak dyskucji na pl.comp.lang.ruby więc może zaproponuje 
> temat 'świetej wojny' ;)
> 
> Są zapowiedzi że Ruby 2.0 nie będzie miało kontynuacji (łatwiejsza 
> integracja z JRuby). Dla mnie kontynuacje to wspaniałe narzedzie które 
> pozwala uniknąć różnych dziwnych klas narzędziowych.

To by było dziwne. Są implementacje Scheme (gdzie call/cc jest
od zawsze) siedzące na Javie (zarówno interpretery jak i te
działające z poziomu VM, dodam że nie znam szczegółów. Z tego
co się orientuję owe kontynuacje nie są niestety 'serializowalne').
Tak więc skoro da się ze Scheme to z Rubym też się powinno dać.

Imho kontynuacje powinny być wszędzie (tzn. w każdym języku
który chciałbym używać), ale w wymagają uwagi ;) jeśli język
nie jest od początku przewidziany pod kontynuacje to dobra
integracja (i sama ich sensowna implementacja) z resztą może
być trudna. Powtarzam cudze opinie. Nigdy nie napisałem
kompilatora i pewnie mi się to już nie przytrafi ;)
O kontynuacjach często mówi się że to 'funkcyjne GO TO do potęgi',
takie coś jest cenne ale nie należy przesadzać jeśli
potem jakiś praktykant z liceum o profilu 'informatycznym'
ma to przerabiać ;)
Re: Kontynuacja - przekleństwo czy błogosławieństwo?
#619
Author: Marcin Mielżyński
Date: Fri, 07 Sep 2007 16:30
11 lines
1209 bytes
Przemysław Kowalczyk pisze:

>> end
> 
> to i wszystkie kolejne przyklady to nie sa kontynuacje, tylko tzw. 
> otwarte klasy. polecam: http://en.wikipedia.org/wiki/Continuation
> 

Inna sprawa że kontynuacje w MRI dają dużo do życzenia

lopex
Re: Kontynuacja - przekleństwo czy błogosławieństwo?
#620
Author: Maciej Piechotka
Date: Fri, 07 Sep 2007 20:02
33 lines
2023 bytes
On Fri, 07 Sep 2007 18:05:07 +0200, Przemysław Kowalczyk wrote:

> On Fri, 07 Sep 2007 17:14:48 +0200, Maciej Piechotka
> <uzytkownik2@gmail.com> wrote:
>>
>> Są zapowiedzi że Ruby 2.0 nie będzie miało kontynuacji (łatwiejsza
>> integracja z JRuby). Dla mnie kontynuacje to wspaniałe narzedzie które
>> pozwala uniknąć różnych dziwnych klas narzędziowych.
>>
>> Poczynając od tworzenia tego typu rzeczy co(ściągniete z którejś
>> planety o
>> RoR lub Ruby):
>>
>> class Object
>>   def in? array
>>     array.include? self
>>   end
>> end
> 
> to i wszystkie kolejne przyklady to nie sa kontynuacje, tylko tzw.
> otwarte klasy. polecam: http://en.wikipedia.org/wiki/Continuation
> 
> pzdr
> 	szeryf

Ops. Mój błąd - nie mam zielonego pojęcia dlaczego mi się pomyliły.

Pozdrawiam

-- 
I've probably left my head... somewhere. Please wait untill I find it.
Homepage (pl_PL): http://uzytkownik.jogger.pl/
(GNU/)Linux User: #425935 (see http://counter.li.org/)
Re: Kontynuacja - przekleństwo czy błogosławieństwo?
#622
Author: Szymon 'tichy'
Date: Sat, 08 Sep 2007 09:34
47 lines
3107 bytes
Maciej Piechotka wrote:

> Narzekano na brak dyskucji na pl.comp.lang.ruby więc może zaproponuje 
> temat 'świetej wojny' ;)

Rozumiem że nie chodziło Ci o 'klasy cośtam' (napisałeś że
Ci się pomyliło, ale teraz to nie wiem co miałeś na myśli) ?
tu raczej nie ma się o co spierać, tzn. czy warto czy nie.
To jest z R. nieusuwalne w tym sensie nie wiem czemu
taka amputacja miała by służyć... poważne ograniczenie
i nic w zamian (tzn. żadnego uproszczenia / ułatwienia
z punktu widzenia deweloperów).

> Są zapowiedzi że Ruby 2.0 nie będzie miało kontynuacji (łatwiejsza 
> integracja z JRuby).

Jakieś namiary ? Btw, ograniczanie języka tylko po to żeby
łatwiej było zrobić wersję pasującą do Javy... imho
to by była głupota... niech zrobią taką maszynę wirtualną
Javy żeby się na niej językom dynamicznym wygodniej
siedziało :>

Zdziwił bym się gdyby zrezygnowano z jednego bądź
drugiego... no chyba że (w przypadku kontynuacji)
spodziewają się 'kolizji', np. z 'sysytemem' wyjątków
i/lub unwind-protect (nie mam pojęcia jak to jest w Rubym,
poza tym te problemy są afaik 'rozwiązywalne').

Wątpię czy deweloperzy będą chcieli coś 'odejmować'...
właśnie się zastanawiam czy to (potencjalne odrywanie
ficzerów) zwiększa szanse kolejnego hitu sezonu
(wcześniej Python teraz Ruby). Ale chyba nie bo nie
przypominam sobie żeby w ciągu ostatnich lat jakiś
język (z tych popularnych) promowano kładąc nacisk
na konkrety ;) a jeśli już się jakiś trafi to są albo
slogany jak w przypadku Javy ;> tudzież 'nowości'
w rodzaju GC :>

Hm, zofftopiłem... ale zastanawia mnie czy / jaki będzie
następca Rubego. Wydawcy w rodzaju O'Reillego potrzebują
Brubych i Ciponow -- użyszkodnicy niekoniecznie jeszcze
jednego języka różniącego się o włos czy dwa. Tak więc mam
nadzieję że nie będzie. Nie sądzę żeby wydawcom chciało się
za jakiś czas wydawać książki o Perlu 6, ten język już miał
swój wodospad papieru... chociaż kto wie ;) Najchętniej
bym widział coś Erlangopodobnego ale takiej rewolucji
się nie spodziewam.
Re: Kontynuacja - przekleństwo czy błogosławieństwo?
#623
Author: Marcin Mielżyński
Date: Sat, 08 Sep 2007 12:21
60 lines
3462 bytes
Szymon 'tichy' pisze:
> Maciej Piechotka wrote:
> 
>> Narzekano na brak dyskucji na pl.comp.lang.ruby więc może zaproponuje 
>> temat 'świetej wojny' ;)
> 
> Rozumiem że nie chodziło Ci o 'klasy cośtam' (napisałeś że
> Ci się pomyliło, ale teraz to nie wiem co miałeś na myśli) ?
> tu raczej nie ma się o co spierać, tzn. czy warto czy nie.
> To jest z R. nieusuwalne w tym sensie nie wiem czemu
> taka amputacja miała by służyć... poważne ograniczenie
> i nic w zamian (tzn. żadnego uproszczenia / ułatwienia
> z punktu widzenia deweloperów).
> 
>> Są zapowiedzi że Ruby 2.0 nie będzie miało kontynuacji (łatwiejsza 
>> integracja z JRuby).
> 
> Jakieś namiary ? Btw, ograniczanie języka tylko po to żeby
> łatwiej było zrobić wersję pasującą do Javy... imho
> to by była głupota... niech zrobią taką maszynę wirtualną
> Javy żeby się na niej językom dynamicznym wygodniej
> siedziało :>
> 
> Zdziwił bym się gdyby zrezygnowano z jednego bądź
> drugiego... no chyba że (w przypadku kontynuacji)
> spodziewają się 'kolizji', np. z 'sysytemem' wyjątków
> i/lub unwind-protect (nie mam pojęcia jak to jest w Rubym,
> poza tym te problemy są afaik 'rozwiązywalne').

Kontynuacje stanęły pod znakiem zapytania przy budowie YARV'a na którym 
bazuje nowa implementacja. Do tej pory Ruby używał green threads co 
pozwalało na pełną kontrolę nad runtimem (który nie musiał być 
thread-safe). Z tą świadomością przeprojektowany został jruby (choć już 
powstały pomysły jak zrealizować w nim kontynuacje).
W maju tego roku kontynuacje zostały jednak dodane a ostatnio dodane 
zostały również fibers:

http://www.infoq.com/news/2007/08/ruby-1-9-fibers

> 
> Hm, zofftopiłem... ale zastanawia mnie czy / jaki będzie
> następca Rubego. Wydawcy w rodzaju O'Reillego potrzebują
> Brubych i Ciponow -- użyszkodnicy niekoniecznie jeszcze
> jednego języka różniącego się o włos czy dwa. Tak więc mam
> nadzieję że nie będzie. Nie sądzę żeby wydawcom chciało się
> za jakiś czas wydawać książki o Perlu 6, ten język już miał
> swój wodospad papieru... chociaż kto wie ;) Najchętniej

Erlang znowu może mieć:
http://www.pragmaticprogrammer.com/titles/jaerlang/

> bym widział coś Erlangopodobnego ale takiej rewolucji
> się nie spodziewam.

http://www.iolanguage.com/ ?
http://metalua.luaforge.net/ ?

może też scala, ale to już inna bajka...

lopex
Re: Kontynuacja - przekleństwo czy błogosławieństwo?
#624
Author: Szymon 'tichy'
Date: Sat, 08 Sep 2007 13:19
42 lines
2796 bytes
Marcin Mielżyński wrote:

>>
>> Hm, zofftopiłem... ale zastanawia mnie czy / jaki będzie
>> następca Rubego. Wydawcy w rodzaju O'Reillego potrzebują
>> Brubych i Ciponow -- użyszkodnicy niekoniecznie jeszcze
>> jednego języka różniącego się o włos czy dwa. Tak więc mam
>> nadzieję że nie będzie. Nie sądzę żeby wydawcom chciało się
>> za jakiś czas wydawać książki o Perlu 6, ten język już miał
>> swój wodospad papieru... chociaż kto wie ;) Najchętniej
> 
> Erlang znowu może mieć:
> http://www.pragmaticprogrammer.com/titles/jaerlang/
> 
>> bym widział coś Erlangopodobnego ale takiej rewolucji
>> się nie spodziewam.
> 
> http://www.iolanguage.com/ ?
> http://metalua.luaforge.net/ ?

Opowiedź 'na szybko' (muszę na dłużej opuścić krzesło ;))

IO mi się nawet podoba, choć z ciekawostek wolałbym Factor
(łatwo go wyklikać bo autorem jest Slava Pestov (nie wiem
jak się go po naszemu 'pisze')). Nie sądzę żeby 'takie'
języki się przebiły, chyba za bardzo odbiegają od 'średniej'.
Oczywiście może być tak że Ruby czy Perl 6 nieco tę
średnią 'przesunie'... mimo to jestem sceptykiem (jestem
nim między innymi z powodu nie tyle nawet popularności
PHP czy VB co różnych ochów i achów nad tymi gniotami ;>)

Btw, O'Reilly o ile mi wiadomo zarzucił politykę
'Nie piszemy o Lispie, koniec kropka' (było kiedyś
na ich stronie takie stwierdzenie). Widziałem nawet
niedawno ich książkę która zawiera snipety Scheme.

Btw, Japończycy mają 'swojego' Rubego, my mogli byśmy
mieć Koguta ;) tzn. gdyby ludziom się chciało go
używać...

do usłyszenia niedługo (chyba mnie przed kąputerem nie będzie
parę dni, ale jak wrócę to siadam do 'pisania' bloga w RoR :))
Re: Kontynuacja - przekleństwo czy błogosławieństwo?
#625
Author: Maciej Piechotka
Date: Sat, 08 Sep 2007 15:59
27 lines
2266 bytes
On Sat, 08 Sep 2007 11:34:49 +0200, Szymon 'tichy' wrote:

>> Narzekano na brak dyskucji na pl.comp.lang.ruby więc może zaproponuje
>> temat 'świetej wojny'
> 
> Rozumiem że nie chodziło Ci o 'klasy cośtam' (napisałeś że Ci się
> pomyliło, ale teraz to nie wiem co miałeś na myśli) ? tu raczej nie ma
> się o co spierać, tzn. czy warto czy nie. To jest z R. nieusuwalne w tym
> sensie nie wiem czemu taka amputacja miała by służyć... poważne
> ograniczenie i nic w zamian (tzn. żadnego uproszczenia / ułatwienia z
> punktu widzenia deweloperów).

% bzr log 
1. Usłyszałem o klasach otwartych i spodobały mi się
2. Usłyszałem o kontynuacjach ale nigdy ich nie użyłem
3. Zapomniałem o <2> i jak się nazywa <1>
4. Zobaczyłem zapowiedź (choćby na stronie JRuby) że kontynuacje mają być 
usunięte w 2.0 jako nieprzenośne do Javy bez ingerencji w bytecode.
5. Uznałem, że <1> nazywa się <2> i wydawało mi się, że mają to usunąć.

Za często pisze klasy otwrte za mało czytam jak one się nazywają.

Pozdrawiam
-- 
I've probably left my head... somewhere. Please wait untill I find it.
Homepage (pl_PL): http://uzytkownik.jogger.pl/
(GNU/)Linux User: #425935 (see http://counter.li.org/)
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads