<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Jaros&#322;aw Zabie&#322;&#322;o - BLOG: MagLev - wirtualna maszyna Smalltalka dla Rubiego</title>
    <link>http://blog.zabiello.com/articles/2008/06/14/maglev</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>moje notatki, linki, komentarze</description>
    <item>
      <title>MagLev - wirtualna maszyna Smalltalka dla Rubiego</title>
      <description>&lt;p&gt;&lt;a href="http://gemstone.com"&gt;Gemstone&lt;/a&gt; to komercyjna, rozwijana od ponad 20 lat, bardzo szybka maszyna wirtualna dla j&#281;zyka &lt;a href="http://pl.wikipedia.org/wiki/Smalltalk"&gt;Smalltalk&lt;/a&gt;. Jest u&#380;ywana od  lat w zastosowaniach biznesowych, m.in. w instytucjach finansowych. W odr&#243;&#380;nieniu od innych Gemstone to co&#347; wi&#281;cej ni&#380; tylko maszyna wirtualna. Gemstone posiada wbudowany mechanizm bardzo wydajnego, transakcyjnego zapisu obiekt&#243;w, chodzi to obs&#322;ug&#281; obiekt&#243;w rz&#281;du setek i tysi&#281;cy miliard&#243;w (lub informacji o wielko&#347;ci 17 &lt;a href="http://pl.wikipedia.org/wiki/Petabajt"&gt;petabajt&#243;w&lt;/a&gt;). MagLev to smalltalkowy &lt;a href="http://www.gemstone.com/products/smalltalk/"&gt;GemStone &lt;span class="caps"&gt;S64 VM&lt;/span&gt;&lt;/a&gt; z dodanym bytecodem pozwalaj&#261;cym na uruchamianie &lt;strong&gt;Rubiego&lt;/strong&gt;. W r&#243;&#380;nych benchmarkach MagLev jest szybszy od Rubiego &lt;span class="caps"&gt;MRI&lt;/span&gt; od 7 do ponad 100 razy i osi&#261;ga &lt;a href="http://antoniocangiano.com/2008/06/05/maglev-handles-trees-like-a-monkey/"&gt;szybko&#347;&#263; zbli&#380;on&#261; do czystego C&lt;/a&gt;. Dodatkowo daje przezroczysty, wydajny zapis obiekt&#243;w Rubiego w spos&#243;b znacznie wygodniejszy od tego co oferuj&#261; relacyjne bazy danych. Czy&#380;by wkr&#243;tce mo&#380;na by&#322;o pokusi&#263; si&#281; o napisanie odpowiednika &lt;a href="http://zope.org/"&gt;Zope&lt;/a&gt; w Rubim pracuj&#261;cym pod wydajn&#261;, wirtualn&#261; maszyn&#261; Smalltalka?&lt;/p&gt;


	&lt;p&gt;Na razie projekt jest m&#322;ody. Maszyna wirtualna pewnie b&#281;dzie zamkni&#281;tym kodem, ale reszta powinna by&#263; wolna. Pierwsza prezentacja mo&#380;liwo&#347;ci Rubiego na MagLev odbyla si&#281; na niedawnej konferencji &lt;a href="http://www.infoq.com/news/2008/05/MagLevAtRailsConf"&gt;RailsConf 2008&lt;/a&gt;. Dost&#281;pne jest ju&#380; pierwsze wideo z prezentacji MagLev&amp;#8217;a (pozosta&#322;e dwie cz&#281;&#347;ci s&#261; w trakcie przygotowywania).&lt;/p&gt;


&lt;object width="400" height="302"&gt;    &lt;param name="allowfullscreen" value="true" /&gt;    &lt;param name="allowscriptaccess" value="always" /&gt;    &lt;param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=1147409&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" /&gt;    &lt;embed src="http://www.vimeo.com/moogaloop.swf?clip_id=1147409&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="302"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://www.vimeo.com/1147409?pg=embed&amp;#38;sec=1147409"&gt;MagLev presentation at RailsConf 2008 &amp;#8211; part 1&lt;/a&gt; from &lt;a href="http://www.vimeo.com/montywilliams?pg=embed&amp;#38;sec=1147409"&gt;Monty Williams&lt;/a&gt; on &lt;a href="http://vimeo.com?pg=embed&amp;#38;sec=1147409"&gt;Vimeo&lt;/a&gt;.

	&lt;p&gt;&lt;br /&gt;&lt;/p&gt;


	&lt;p&gt;Zobacz te&#380;:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.infoq.com/news/2008/04/maglev-gemstone-builds-ruby"&gt;MagLev: Gemstone builds Ruby runtime based on Smalltalk VM&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.infoq.com/interviews/bryant-ruby-maglev-gemstone"&gt;Avi Bryant on MagLev and GemStone&lt;/a&gt; &amp;#8211; b. ciekawy wywiad (video + transkrypcja)&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.infoq.com/news/2008/05/MagLevAtRailsConf"&gt;GemStone Reveals Plans for MagLev Ruby VM at RailsConf 2008&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://antoniocangiano.com/2008/06/05/maglev-handles-trees-like-a-monkey/"&gt;MagLev handles trees like a monkey&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.avibryant.com/?p=16"&gt;Avi Bryant &amp;#8211; MagLev recap&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://antoniocangiano.com/2008/05/31/maglev-rocks/"&gt;MagLev rocks and the planning of the next Ruby shootout&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://collison.ie/blog/2008/06/maglev-and-language-implementation"&gt;MagLev and language implementation&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://railsconf.blip.tv/file/568689/"&gt;RailsConf 2007 &amp;#8211; Avi Bryant&lt;/a&gt; &amp;#8211; ciekawe wyst&#261;pienie Avi Branta przekonanego &#380;e zasadniczo Ruby prawie nie r&#243;&#380;ni si&#281; od Smalltalka, w zasadzie to ten sam j&#281;zyk i nie ma &#380;adnego powodu dla kt&#243;rego Ruby nie m&#243;g&#322;by by&#263; tak szybki jak Smalltalk (a Smalltalk jest 10x szybszy od Pythona&amp;#8230;)&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.chadfowler.com/2008/6/5/maglev"&gt;Chad Fowler &amp;#8211; MagLev&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;</description>
      <pubDate>Sat, 14 Jun 2008 19:11:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:7408024c-7849-459e-b285-3e78c4c33579</guid>
      <author>Jaros&#322;aw Zabie&#322;&#322;o</author>
      <link>http://blog.zabiello.com/articles/2008/06/14/maglev</link>
      <category>smalltalk</category>
      <category>ruby</category>
      <category>maglev</category>
      <category>rails</category>
      <category>vm</category>
      <category>gemstone</category>
    </item>
    <item>
      <title>"MagLev - wirtualna maszyna Smalltalka dla Rubiego" by dmilith</title>
      <description>&lt;p&gt;pytanie kiedy to co&#347; b&#281;dzie dost&#281;pne dla indywidualnych u&#380;ytkownik&#243;w ( nie s&#261;dz&#281; bynajmniej by by&#322;a jakakolwiek szansa na OpenSource &amp;#8211; Maglev )
kolejna kwestia to KIEDY b&#281;dzie mo&#380;na to samemu przetestowa&#263;.. na razie s&#261; tylko zapowiedzi.. i &#380;adnych konkret&#243;w&lt;/p&gt;</description>
      <pubDate>Fri, 11 Jul 2008 17:32:43 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:234e722a-f36f-4674-b673-b4f6183efcdc</guid>
      <link>http://blog.zabiello.com/articles/2008/06/14/maglev#comment-1740</link>
    </item>
    <item>
      <title>"MagLev - wirtualna maszyna Smalltalka dla Rubiego" by dmilith</title>
      <description>&lt;p&gt;co za kretyn sterowa&#322; t&#261; kamer&#261;?&lt;/p&gt;</description>
      <pubDate>Mon, 16 Jun 2008 19:26:26 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:0b7bc1e1-bcb2-453e-8d3b-1b824b77349c</guid>
      <link>http://blog.zabiello.com/articles/2008/06/14/maglev#comment-1701</link>
    </item>
    <item>
      <title>"MagLev - wirtualna maszyna Smalltalka dla Rubiego" by Tomash</title>
      <description>&lt;p&gt;MagLev nie jest nak&#322;adk&#261; na smalltalkowy VM, jest implementacj&#261; &amp;#8220;from ground-up&amp;#8221;. Cho&#263; oczywi&#347;cie robion&#261; przez t&#281; sam&#261; firm&#281;. podobn&#261; ekip&#281; i pewnie troch&#281; fragment&#243;w kodu jest wsp&#243;lnych.&lt;/p&gt;


	&lt;p&gt;Ca&#322;a reszta to hype, kt&#243;rym od RailsConf karmi si&#281; bezkrytyczna po&#322;owa railsowej spo&#322;eczno&#347;ci. Niech zrobi&#261; i poka&#380;&#261; kompletny produkt. Do tego czasu pozwol&#281; sobie zachowa&#263; zdrowy sceptycyzm.&lt;/p&gt;</description>
      <pubDate>Mon, 16 Jun 2008 10:08:27 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:f1e98390-6d99-4e89-ad60-96d9ee268e96</guid>
      <link>http://blog.zabiello.com/articles/2008/06/14/maglev#comment-1700</link>
    </item>
    <item>
      <title>"MagLev - wirtualna maszyna Smalltalka dla Rubiego" by Jaros&#322;aw Zabie&#322;&#322;o</title>
      <description>&lt;p&gt;@RazorJack: Z tym skalowaniem to rozumiem &#380;e&#347; paln&#261;&#322;&#160;g&#322;upstwo tak dla jaj, bo Rails si&#281; skaluje (problemem Rails&#243;w nie jest skalowalno&#347;&#263; ale og&#243;lna wydajno&#347;&#263;&#160;na tle alternatywnych rozwi&#261;za&#324;, np. Merb&amp;#8217;a czy Django). Anyway, JRuby pokaza&#322;, &#380;e szybko&#347;&#263; j&#281;zyka nie musi si&#281; przek&#322;ada&#263; na szybko&#347;&#263; frameworku takiego jak Rails. Rails ma najwyra&#378;niej implementacj&#281; kt&#243;r&#261; trudno optymalizowa&#263; i tu nawet MagLev nie pomo&#380;e. Podejrzewam, &#380;e Merb, kt&#243;ry jest jakie&#347; 3x szybszy od Rails, da&#322;by si&#281; &#322;atwiej optymalizowa&#263; przez MagLev i jego JIT&amp;#8217;a.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://railsconf.blip.tv/file/568689/" rel="nofollow"&gt;Avi Bryant twierdzi&lt;/a&gt;, &#380;e Ruby prawie nie r&#243;&#380;ni si&#281; od Smalltalka, w zasadzie to ten sam j&#281;zyk i nie ma &#380;adnego powodu dla kt&#243;rego Ruby nie m&#243;g&#322;by by&#263; tak szybki jak Smalltalk, a Smalltalk jest 10x szybszy od Pythona&amp;#8230;&lt;/p&gt;


	&lt;p&gt;W ka&#380;dym razie, nie wa&#380;ne ile razy, ale raczej nie pomyl&#281; si&#281; twierdz&#261;c, &#380;e MagLev mo&#380;e by&#263; du&#380;ym graczem i prawdopodobnie b&#281;dzie to najszybsza i najciekawsza (dzi&#281;ki OODB) maszyna wirtualna dla Rubiego. Osobi&#347;cie chcia&#322;bym zobaczy&#263; w ko&#324;cu Zope for Ruby.&lt;/p&gt;</description>
      <pubDate>Sun, 15 Jun 2008 12:56:58 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:e542cc70-3fa4-4710-aae9-379f1740698e</guid>
      <link>http://blog.zabiello.com/articles/2008/06/14/maglev#comment-1699</link>
    </item>
    <item>
      <title>"MagLev - wirtualna maszyna Smalltalka dla Rubiego" by RazorJack</title>
      <description>&lt;p&gt;My&#347;l&#281;, &#380;e za du&#380;o tutaj podniety zakompleksionych Railsowc&#243;w, kt&#243;rych framework si&#281; nie skaluje :).&lt;/p&gt;


	&lt;p&gt;Oczywiste jest to, &#380;e jak si&#281; napisze benchmark pod dobrze zoptymalizowany fragment kodu, to si&#281; zawsze oka&#380;e, &#380;e nasza VM bije wszystkie na g&#322;ow&#281;. Przypadek, w kt&#243;rym MagLev by&#322; prawie tak samo szybki jak C++ dotyczy&#322; zapewne samego Garbage Collectora, a nie ca&#322;ej aplikacji railsowej.&lt;/p&gt;


	&lt;p&gt;Podobnie jak z Rubiniusem &amp;#8211; w benchmarkach wypada super, ale po odpaleniu na nim frameworka p&#243;ki co entuzjazm spada.&lt;/p&gt;


	&lt;p&gt;Oczywi&#347;cie jako VM (w dodatku od wielu lat optymalizowana), MagLev b&#281;dzie szybszy od MRI. Ale Ruby jest na tyle wysokopoziomowym j&#281;zykiem, &#380;e moim zdaniem na stukrotny (nawet dziesi&#281;ciokrotny) wzrost wydajno&#347;ci nie ma &#380;adnych szans. To OODB jest atutem MagLev, a nie jest wydajno&#347;&#263;.&lt;/p&gt;</description>
      <pubDate>Sun, 15 Jun 2008 10:52:09 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:58da594f-d662-4753-971c-3bbb8f22886f</guid>
      <link>http://blog.zabiello.com/articles/2008/06/14/maglev#comment-1698</link>
    </item>
    <item>
      <title>"MagLev - wirtualna maszyna Smalltalka dla Rubiego" by Radarek</title>
      <description>&lt;p&gt;Na forum zaraz po RailsConf by&#322;a na ten temat dyskusja (&lt;a href="http://www.rubyonrails.pl/forum/t1041-MagLev" rel="nofollow"&gt;http://www.rubyonrails.pl/forum/t1041-MagLev&lt;/a&gt;). Teraz czekamy na rozw&#243;j wydarze&#324; ;).&lt;/p&gt;</description>
      <pubDate>Sun, 15 Jun 2008 00:44:45 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:79a4ed9d-ae9c-4e35-8ee2-65f6cafdf6d1</guid>
      <link>http://blog.zabiello.com/articles/2008/06/14/maglev#comment-1697</link>
    </item>
  </channel>
</rss>
