<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Go towards a Word-Progress &#187; 長門有希</title>
	<atom:link href="http://wordprogress.org/archives/tag/%e9%95%b7%e9%96%80%e6%9c%89%e5%b8%8c/feed" rel="self" type="application/rss+xml" />
	<link>http://wordprogress.org</link>
	<description>　～言霊とプログラム言語の共進化!?</description>
	<lastBuildDate>Fri, 22 Jan 2010 03:37:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>例のグーグルIME</title>
		<link>http://wordprogress.org/archives/834</link>
		<comments>http://wordprogress.org/archives/834#comments</comments>
		<pubDate>Tue, 08 Dec 2009 15:19:25 +0000</pubDate>
		<dc:creator>kyon</dc:creator>
				<category><![CDATA[Chrome OS]]></category>
		<category><![CDATA[未分類]]></category>
		<category><![CDATA[長門有希]]></category>

		<guid isPermaLink="false">http://wordprogress.org/?p=834</guid>
		<description><![CDATA[開発メンバーが充実の 「グーグル日本語入力」。正直、ただのIMEには興味がないのだが、とりあえずインストールして、お約束で、

と打った後、Tabキーを押して数秒後、

となった時点で、MS-IMEから乗り換えていたね、わたくし。
３０秒後には、「な+tab」で「長門有希」が表示されるようになった。ATOK買ってるけどライセンス管理めんどーとか思っていた層にアピールするのでは。
日本人的には、これぞ、Google Chrome OSのキラーアプリなのかもしらん。
]]></description>
			<content:encoded><![CDATA[<p>開発メンバーが充実の 「<a href="http://googlejapan.blogspot.com/2009/12/google_03.html">グーグル日本語入力</a>」。正直、ただのIMEには興味がないのだが、とりあえずインストールして、お約束で、</p>
<p><img class="aligncenter size-full wp-image-835" title="涼宮ハルヒの" src="http://wordprogress.org/wp2045/wp-content/uploads/2009/12/涼宮ハルヒの.jpg" alt="涼宮ハルヒの" width="172" height="125" /></p>
<p>と打った後、Tabキーを押して数秒後、</p>
<p><img class="aligncenter size-full wp-image-836" title="涼宮ハルヒの驚愕" src="http://wordprogress.org/wp2045/wp-content/uploads/2009/12/涼宮ハルヒの驚愕.jpg" alt="涼宮ハルヒの驚愕" width="237" height="248" /><br />
となった時点で、MS-IMEから乗り換えていたね、わたくし。</p>
<p>３０秒後には、「な+tab」で「長門有希」が表示されるようになった。ATOK買ってるけどライセンス管理めんどーとか思っていた層にアピールするのでは。</p>
<h2>日本人的には、これぞ、Google Chrome OSのキラーアプリなのかもしらん。</h2>
]]></content:encoded>
			<wfw:commentRss>http://wordprogress.org/archives/834/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>朝比奈さんでも分かるYコンビネータ　［序］　長門流sleeping beauty</title>
		<link>http://wordprogress.org/archives/547</link>
		<comments>http://wordprogress.org/archives/547#comments</comments>
		<pubDate>Wed, 18 Nov 2009 09:58:10 +0000</pubDate>
		<dc:creator>kyon</dc:creator>
				<category><![CDATA[Scala]]></category>
		<category><![CDATA[Yコンビネータ]]></category>
		<category><![CDATA[長門有希]]></category>
		<category><![CDATA[電波でScala]]></category>

		<guid isPermaLink="false">http://wordprogress.org/?p=547</guid>
		<description><![CDATA[
		<script type="text/javascript"><!--
			show_rakuten('#auc-terraformer10000393', 'NotFound');
		// -->
		</script>
		
		<script type="text/javascript"><!--
			show_rakuten('#auc-terraformer10020022', 'NotFound');
		// -->
		</script>
		どうしたらgolangを速攻マスターできるんだろうって話になって、そりゃぁ、「電車でGo」だろうという話に。まだ、電車でGoを書く実力はないので、まずは、「電波なScala」 の方を。そう、電波なことを語らせるなら長門だ。
&#8212;-
朝比奈さんとお近づきになるために、Yコンビネータを分かりやすく説明してあげようと、ちょっとでも思った俺を誰が非難できよう・・・
なぁ、長門。goでも実装されたっていうYコンビネータってなんだ。
 Yuki.N &#62; 地球人の通常の言語ではうまく説明できないかもしれない。
そこをなんとかScalaで説明できないものか？
 Yuki.N &#62;
 scala &#62;def Y(in:String) = ((
  (in map(_.toInt) toList) zip
     ("cZNSfcXic]gRcos" map(_.toInt) toList)
  ) map (Y =&#62; (Y._1 + Y._2-0x63) toChar
) mkString)
長門、Scalaってのは、そんなに括弧ばっかつけるもんじゃないぜ。
Yuki.N &#62; そう？　私の任務はScalaの観測。Scalaのコーディングは対象ではないから。
scala &#62; Y("asahina mukuru")
res1: String = ajLXlnV&#38;moodr?
こ、これがYコンビネータなのか
Yuki.N &#62; 違う。ただの高階操作。でも聞いて。
scala&#62; Y("suzumiya haruhi")
res2: String = sleeping beauty

・・・どうやら、長門流のジョークだったらしい。
clojureで説明してくれ、だったら、長門もちゃんとYコンビネータを説明する気になってくれたのかもな。ま、まずは高階操作について聞いておくか。
このとき、俺はただそう思っただけだった。
だが、事実は俺の想像をはるかに超えていた。このあと、とんでもないYコンビネータが展開されることになるのだ(続く)。
Now Loading...
Now Loading...
]]></description>
			<content:encoded><![CDATA[
		<script type="text/javascript"><!--
			show_rakuten('#auc-terraformer10000393', 'NotFound');
		// -->
		</script>
		
		<script type="text/javascript"><!--
			show_rakuten('#auc-terraformer10020022', 'NotFound');
		// -->
		</script>
		<p>どうしたらgolangを速攻マスターできるんだろうって話になって、そりゃぁ、「電車でGo」だろうという話に。まだ、電車でGoを書く実力はないので、まずは、「電波なScala」 の方を。そう、電波なことを語らせるなら長門だ。</p>
<p>&#8212;-</p>
<p>朝比奈さんとお近づきになるために、<a href="http://ycombinator.com/">Yコンビネータ</a>を分かりやすく説明してあげようと、ちょっとでも思った俺を誰が非難できよう・・・</p>
<p>なぁ、長門。goでも実装されたっていうYコンビネータってなんだ。<br />
<span style="color: #800000;"> Yuki.N &gt; 地球人の通常の言語ではうまく説明できないかもしれない。</span></p>
<p>そこをなんとかScalaで説明できないものか？<br />
<span style="color: #800000;"> Yuki.N &gt;</span></p>
<pre class="brush:scala"> scala &gt;def Y(in:String) = ((
  (in map(_.toInt) toList) zip
     ("cZNSfcXic]gRcos" map(_.toInt) toList)
  ) map (Y =&gt; (Y._1 + Y._2-0x63) toChar
) mkString)</pre>
<p>長門、Scalaってのは、そんなに括弧ばっかつけるもんじゃないぜ。</p>
<p><span style="color: #800000;">Yuki.N &gt; そう？　私の任務はScalaの観測。Scalaのコーディングは対象ではないから。</span></p>
<pre class="brush:scala">scala &gt; Y("asahina mukuru")
res1: String = ajLXlnV&amp;moodr?</pre>
<p>こ、これがYコンビネータなのか</p>
<p><span style="color: #800000;">Yuki.N &gt; 違う。ただの高階操作。でも聞いて。</span></p>
<pre class="brush:scala">scala&gt; Y("suzumiya haruhi")
res2: String = sleeping beauty</pre>
<p><br/><br/><br/><br/><br/><br/><br />
・・・どうやら、長門流のジョークだったらしい。<br />
clojureで説明してくれ、だったら、長門もちゃんとYコンビネータを説明する気になってくれたのかもな。ま、まずは高階操作について聞いておくか。<br />
このとき、俺はただそう思っただけだった。</p>
<p>だが、事実は俺の想像をはるかに超えていた。このあと、とんでもないYコンビネータが展開されることになるのだ(続く)。</p>
<p><div id="auc-terraformer10000393" class="rakuten_details">Now Loading...</div></p>
<p><div id="auc-terraformer10020022" class="rakuten_details">Now Loading...</div></p>
]]></content:encoded>
			<wfw:commentRss>http://wordprogress.org/archives/547/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>限界を打ち破るはScalaかGoogleのGoか　(「Scala入門」に勝手流追記その２)</title>
		<link>http://wordprogress.org/archives/435</link>
		<comments>http://wordprogress.org/archives/435#comments</comments>
		<pubDate>Thu, 12 Nov 2009 18:57:51 +0000</pubDate>
		<dc:creator>kyon</dc:creator>
				<category><![CDATA[Go]]></category>
		<category><![CDATA[Scala]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[長門有希]]></category>

		<guid isPermaLink="false">http://wordprogress.org/?p=435</guid>
		<description><![CDATA[Scala入門　勝手流追記　その２。元記事が大上段なので、こちらも大上段に。
Scalaで実サービスをリリースしている著者らのJavaの限界を超えて実用化を目指す新開発言語「Scala」のメリットとは～前編(codezine誌)
今回は、codezine、１位と２位の記事がScalaとGoであること(11/12時点)にちなんで両者を比較しつつ、元記事に一点だけ突っ込む。

[追記@昼間]
以下、熱が下がった直後の明け方に書いたんで、いろいろ記載が粗いので、前提条件・抜け落ち等を補充。
◇プログラミング言語比較の前提はTiobeのランキングのような検索エンジンベースのランキング。
　当然、書籍ベースのランキングや「魂」のランキングは十分に加味されていない・・・のはさておき、そもそも検索エンジンという仕組みへの信頼性が落ちている(少なくとも不況下の幻滅期にある)と思われるので、プログラミング言語の流行り廃りの議論に、こうしたランキングが良いかは、不明(といっても、Tiobeランキングのどの位置にGoがやってくるのか、皆興味あるだろうが)
◇Tiobeベースで話を進めているのに、メジャー言語にPHPが抜けていた。
　これはScala v.s. Goということでミドルから下を主に考えていたから。少なくとも、Goベースのwebサーバは遠からず出てくるだろうし、その上でPHPが動くだろう事も明らかなので、PHPの文字を補っておいた。そもそもこのサイトもWordPress。いや速度面はさておき、良く出来ている。
◇そして、何より、議論のベースに静的片付け言語万歳。C系構文は永遠に不滅です、って言うのがあった(Goはいうまでもなく、ScalaもけっこうC系言語)。
　これは、
　　「真のバカでも使えるものを設計しようとして人々がよくやるミスは、
　　　真のバカのバカさ加減を過小評価することだ」
　　　　　－－Douglas Adams
　(出典　Diomisid Spinellis著　『コード・リーディング』, p65)
　という警句を、コンパイル時に真にバカなミスをしまくっている自分なりに重く受け入れているから。システム系言語はバカの壁に大いに配慮してほしい。ともあれ、Goみたいのがでてくると、下のレイヤの本を読もうという気になる。Goはひょっとしたら泡沫言語になるのかもしれないけれど、少なくとも、Cに近いレイヤに刺激を与える貢献は達成するのでは。
[再度追記
『コード・リーディング』を開いたついでに、監訳者であるMatz氏のにっきを見ると、Goについてのコメントが。やはり、Goには、尊敬するMatz氏も気になる変態言語(というか、大胆な言語)の側面あり。コメントでのやりとりにあるとおり、実装の継承(共有)まわり、プロトタイプ継承っぽいのでは・・・。「半人前の言語」あるいは「小学１年生(ただし神童)くらいの言語」だからこそ、Goと共にプログラミングを学ぶ価値はある。
＜本文＞
JRuby/Jythonなどスクリプト言語由来の言語と異なり、Javaと同様の静的コンパイル言語であるScalaは、Javaバーチャルマシンの主流言語の座をめぐり、本家Javaに挑む挑戦者に位置づけられる。
その試みが成就するのは、早くとも数年後であろうが、Javaの袋小路を打ち破る方向性をScalaは示したといえる。
Javaに対するScalaの利点は、以下の３つであろう。

不変性(val)の上手な導入による容易な並列処理プログラミング　※メモリリーク等を防ぐガベージコレクションの仕組みあり
簡潔な表記と型を含めたカスタマイズを可能とする言語内言語(DSL)構築能力　※タイプセーフなスタイルを採用
スクリプトに近い簡潔な記述(関数型言語の型推論などに由来)

-----------
と書いたところで、これらの特性はただいま祭り中のグーグルの新プログラミング言語Goの特性とかぶることに気がつく。
C言語に対するGo言語の利点(私見)

・goroutine等による容易な並列処理プログラミング　※メモリリーク等を防ぐガベージコレクションの仕組みあり
・interface機能による言語拡張構能力(C++のtemplateに近いもの、か)　※タイプセーフなスタイルを採用

一方、ScalaとGoの明らかな相違点

・Scalaの言語仕様は巨大。Goの言語仕様は現時点では小さい　=&#62; コンパイル時間についてはGoの圧勝(実行速度は最適化されたJavaVM上のScalaが速い場合もあろう)

※JVMかネイティブかはさておく。小飼氏ではないが、ネイティブScalaの可能性だってある。
Goの方の利点は２つだけであるが、これはGoがCに近しい低レベルな言語であることによる。RubyがCで実装されたように、Goの上でGoと親和的なスクリプト言語が出てくるのも遠くないことと思われる。
そうなると、2010年代の新主流言語をめぐる争いの中で、注目株のひとつが、
Scala v.s. (Go+(新)スクリプト言語)
というものになる可能性がある(あくまで仮説)。
もしかすると、この２言語の争いは、C,Java,C++(かろうじてC#)といったメジャー言語に割ってはいる最後の新言語をめぐる争いとなるかもしれない
※それ以降(2020年以降？)にくる「新言語」は、もはやアルファベットと記号で表記するプログラミング言語でないのかもしれない。
※個人的には、(新)スクリプト言語の座は、clojureであってほしいと思っているのだが、、実際には、PHPやRuby、あるいはそれらの新種がその位置を占めるのかもしれない。
----------
この仮説はさておき、Goの登場は、本格的な並列処理対応を打ち出した新型の手続き型言語の登場ということで、並列処理対応といえば、関数型言語Erlang,Scala,Clojure・・・という流れを変えるきっかけになるのかもしれない。
これは、かつての総合格闘技をグレーシー一族が関節技・寝技で席巻していた中で、グレーシーを打撃で打ち破った猛者が出たことで、打撃系が一気に見直されたようなもの・・か？(少なくとも、関数型言語には、関節技的なマニアックさがあるのは事実 ^^)
とここで、気がつくのは、数ある関数型言語の中で、唯一Scalaだけが、手続き型プログラミングも普通にかけるハイブリット言語であることを打ち出していることだ。
(実際、codezine記事のパテントビューロ社も手続き型言語の経験者のみが集まり、Scalaで実システムを作り上げている)
すなわち、Goの登場により、新世代の並列処理もやはり手続き型プログラミング・スタイルが主流となったとしても、Scalaは十分生き残っていくポテンシャルがあるのだ。
※言語仕様は巨大だが、現時点でも実行速度は相当速い
再び述べるが、やはり、「現存の言語では最も美少女な Scala」(小飼弾言を日々Scalaを使っている身から一部修正。現時点のScalaは大人の女性ではなく女子高校生レベルの成長途上にある)なのだ。
Scalaと、センセーショナルにデビューしたGo[golangのMLは１日で1000人近い参加者という押すな押すな状態]との関係、今後が楽しみである。
ということで、私は、昼はScala、夜はGoをいじる毎日でいこうと思う(Goについてはgoroutineはさておいて、斬新と思われるinterfaceを押さえたい)。
さて、元Scaka入門記事に一点だけつっこみ
６ページ目「Arrayは直接にAnyをデータ要素として持つことはできないようです(注４)」
少しミスリーディングな記述である(Genericや型パラメータの解説前なので仕方ないが)。Scalaの利点は静的な型づけにある。故に、入門記事であっても型の話は慎重に書かなければならない。
ので、勝手に補充
例えば、mapをもちいたArrayでは、ANY型を持つことができる(持ってしまう)
val anyarr =
   Array.range(1,101).map { n =&#62; n match{
            case _ if (n%15 == 0) =&#62; " FizzBuzz "
            case _ [...]]]></description>
			<content:encoded><![CDATA[<p>Scala入門　勝手流追記　その２。元記事が大上段なので、こちらも大上段に。</p>
<p>Scalaで実サービスをリリースしている著者らの<a href="http://codezine.jp/article/detail/4475">Javaの限界を超えて実用化を目指す新開発言語「Scala」のメリットとは～前編</a>(codezine誌)</p>
<p>今回は、codezine、１位と２位の記事がScalaとGoであること(11/12時点)にちなんで両者を比較しつつ、元記事に一点だけ突っ込む。</p>
<p><img class="alignnone size-full wp-image-436" title="ランキング" src="http://wordprogress.org/wp2045/wp-content/uploads/2009/11/ランキング.jpg" alt="ランキング" width="308" height="202" /></p>
<pre style="margin-top: 0px; margin-right: 1em; margin-bottom: 0px; margin-left: 1em; background-color: #c8c8f8; white-space: pre-wrap; word-wrap: break-word; padding: 1ex; border: 1px solid #707b8d;"><strong>[追記@昼間]</strong>
以下、熱が下がった直後の明け方に書いたんで、いろいろ記載が粗いので、前提条件・抜け落ち等を補充。
<strong>◇プログラミング言語比較の前提は<a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">Tiobeのランキング</a>のような検索エンジンベースのランキング。</strong>
　当然、書籍ベースのランキングや「魂」のランキングは十分に加味されていない・・・のはさておき、そもそも検索エンジンという仕組みへの信頼性が落ちている(少なくとも不況下の幻滅期にある)と思われるので、プログラミング言語の流行り廃りの議論に、こうしたランキングが良いかは、不明(といっても、Tiobeランキングのどの位置にGoがやってくるのか、皆興味あるだろうが)
<strong>◇Tiobeベースで話を進めているのに、メジャー言語にPHPが抜けていた。</strong>
　これはScala v.s. Goということでミドルから下を主に考えていたから。少なくとも、Goベースのwebサーバは遠からず出てくるだろうし、その上でPHPが動くだろう事も明らかなので、PHPの文字を補っておいた。そもそもこのサイトもWordPress。いや速度面はさておき、良く出来ている。
<strong>◇そして、何より、議論のベースに静的片付け言語万歳。C系構文は永遠に不滅です、って言うのがあった(Goはいうまでもなく、ScalaもけっこうC系言語)。</strong>
　これは、
　　<span style="color: #808000;"><strong>「真のバカでも使えるものを設計しようとして人々がよくやるミスは、
　　　真のバカのバカさ加減を過小評価することだ」
　　　　　－－Douglas Adams
　(出典　Diomisid Spinellis著　</strong></span><em><span style="color: #808000;"><strong>『コード・リーディング』</strong></span></em><span style="color: #808000;"><strong>, p65)</strong></span>
　という警句を、コンパイル時に真にバカなミスをしまくっている自分なりに重く受け入れているから。システム系言語はバカの壁に大いに配慮してほしい。ともあれ、Goみたいのがでてくると、下のレイヤの本を読もうという気になる。Goはひょっとしたら泡沫言語になるのかもしれないけれど、少なくとも、Cに近いレイヤに刺激を与える貢献は達成するのでは。
<strong>[再度追記</strong>
『コード・リーディング』を開いたついでに、監訳者であるMatz氏のにっきを見ると、<a href="http://www.rubyist.net/~matz/20091113.html">Goについてのコメント</a>が。やはり、Goには、尊敬するMatz氏も気になる変態言語(というか、大胆な言語)の側面あり。コメントでのやりとりにあるとおり、実装の継承(共有)まわり、プロトタイプ継承っぽいのでは・・・。「半人前の言語」あるいは「小学１年生(ただし神童)くらいの言語」だからこそ、Goと共にプログラミングを学ぶ価値はある。</pre>
<h4>＜本文＞</h4>
<p>JRuby/Jythonなどスクリプト言語由来の言語と異なり、Javaと同様の静的コンパイル言語であるScalaは、Javaバーチャルマシンの主流言語の座をめぐり、本家Javaに挑む挑戦者に位置づけられる。</p>
<p>その試みが成就するのは、早くとも数年後であろうが、Javaの袋小路を打ち破る方向性をScalaは示したといえる。</p>
<h3>Javaに対するScalaの利点は、以下の３つであろう。</h3>
<ul>
<li>不変性(val)の上手な導入による容易な並列処理プログラミング　※メモリリーク等を防ぐガベージコレクションの仕組みあり</li>
<li>簡潔な表記と型を含めたカスタマイズを可能とする言語内言語(DSL)構築能力　※タイプセーフなスタイルを採用</li>
<li>スクリプトに近い簡潔な記述(関数型言語の型推論などに由来)</li>
</ul>
<p>-----------</p>
<p>と書いたところで、これらの特性はただいま祭り中のグーグルの新プログラミング言語Goの特性とかぶることに気がつく。</p>
<h3>C言語に対するGo言語の利点(私見)</h3>
<ul>
<li>・goroutine等による容易な並列処理プログラミング　※メモリリーク等を防ぐガベージコレクションの仕組みあり</li>
<li>・interface機能による言語拡張構能力(C++のtemplateに近いもの、か)　※タイプセーフなスタイルを採用</li>
</ul>
<p>一方、ScalaとGoの明らかな相違点</p>
<ul>
<li>・Scalaの言語仕様は巨大。Goの言語仕様は現時点では小さい　=&gt; コンパイル時間についてはGoの圧勝(実行速度は最適化されたJavaVM上のScalaが速い場合もあろう)</li>
</ul>
<p>※JVMかネイティブかはさておく。小飼氏ではないが、ネイティブScalaの可能性だってある。</p>
<p>Goの方の利点は２つだけであるが、これはGoがCに近しい低レベルな言語であることによる。RubyがCで実装されたように、Goの上でGoと親和的なスクリプト言語が出てくるのも遠くないことと思われる。</p>
<p>そうなると、2010年代の新主流言語をめぐる争いの中で、注目株のひとつが、</p>
<h2><span style="color: #ff0000;">Scala v.s. (Go+(新)スクリプト言語)</span></h2>
<p>というものになる可能性がある(あくまで仮説)。</p>
<p>もしかすると、この２言語の争いは、C,Java,C++(かろうじてC#)といった<span style="color: #ff0000;">メジャー言語に割ってはいる最後の新言語をめぐる争いとなるかも</span>しれない</p>
<p>※それ以降(2020年以降？)にくる「新言語」は、もはやアルファベットと記号で表記するプログラミング言語でないのかもしれない。</p>
<p>※個人的には、(新)スクリプト言語の座は、clojureであってほしいと思っているのだが、、実際には、PHPやRuby、あるいはそれらの新種がその位置を占めるのかもしれない。</p>
<p>----------</p>
<p>この仮説はさておき、Goの登場は、本格的な並列処理対応を打ち出した新型の手続き型言語の登場ということで、並列処理対応といえば、関数型言語Erlang,Scala,Clojure・・・という流れを変えるきっかけになるのかもしれない。</p>
<p>これは、かつての総合格闘技をグレーシー一族が関節技・寝技で席巻していた中で、グレーシーを打撃で打ち破った猛者が出たことで、打撃系が一気に見直されたようなもの・・か？(少なくとも、関数型言語には、関節技的なマニアックさがあるのは事実 ^^)</p>
<p>とここで、気がつくのは、数ある関数型言語の中で、唯一Scalaだけが、手続き型プログラミングも普通にかけるハイブリット言語であることを打ち出していることだ。<br />
(実際、codezine記事のパテントビューロ社も手続き型言語の経験者のみが集まり、Scalaで実システムを作り上げている)</p>
<p>すなわち、Goの登場により、新世代の並列処理もやはり手続き型プログラミング・スタイルが主流となったとしても、Scalaは十分生き残っていくポテンシャルがあるのだ。</p>
<p>※言語仕様は巨大だが、現時点でも実行速度は相当速い</p>
<p>再び述べるが、やはり、「現存の言語では最も美少女な Scala」(<a href="http://blog.livedoor.jp/dankogai/archives/51275491.html">小飼弾言</a>を日々Scalaを使っている身から一部修正。<em>現時点のScalaは大人の女性ではなく女子高校生レベルの成長途上にある</em>)なのだ。</p>
<p>Scalaと、センセーショナルにデビューしたGo[golangのMLは１日で1000人近い参加者という押すな押すな状態]との関係、今後が楽しみである。</p>
<p>ということで、私は、昼はScala、夜はGoをいじる毎日でいこうと思う(Goについてはgoroutineはさておいて、斬新と思われるinterfaceを押さえたい)。</p>
<p>さて、元Scaka入門記事に一点だけつっこみ</p>
<p><a href="http://codezine.jp/article/detail/4475?p=6">６ページ目</a>「Arrayは直接にAnyをデータ要素として持つことはできないようです(注４)」</p>
<p>少しミスリーディングな記述である(Genericや型パラメータの解説前なので仕方ないが)。Scalaの利点は静的な型づけにある。故に、入門記事であっても型の話は慎重に書かなければならない。</p>
<p>ので、勝手に補充</p>
<p>例えば、mapをもちいたArrayでは、ANY型を持つことができる(持ってしまう)</p>
<pre class="brush:scala">val anyarr =
   Array.range(1,101).map { n =&gt; n match{
            case _ if (n%15 == 0) =&gt; " FizzBuzz "
            case _ if (n%3 == 0) =&gt;"Fizz "
            case _ if (n%5 == 0) =&gt; "Buzz "
            case _ =&gt;  n
      }
   }</pre>
<p>※この例は、以前書いた<a href="http://wordprogress.org/archives/208">関数型FizzBuzz</a>のArray版<br />
実行してみる :</p>
<pre style="margin-left: 1em; margin-right: 1em; background-color: #f8f8f8; white-space: pre-wrap; word-wrap: break-word; padding: 1ex; border: 1px solid #707b8d;">scala&gt; val anyarr =
Array.range(1,101).map { n =&gt; n match{
            case _ if (n%15 == 0) =&gt; " FizzBuzz "
            case _ if (n%3 == 0) =&gt;"Fizz "
            case _ if (n%5 == 0) =&gt; "Buzz "
            case _ =&gt;  n
      }
}
anyarr: Array[Any] = Array(1, 2, Fizz , 4, Buzz , Fizz , 7, 8, Fizz , Buzz , 11, Fizz , 13, 14,  FizzBuzz , 16, 17, Fizz
 , 19, Buzz , Fizz , 22, 23, Fizz , Buzz , 26, Fizz , 28, 29,  FizzBuzz , 31, 32, Fizz , 34, Buzz , Fizz , 37, 38, Fizz
, Buzz , 41, Fizz , 43, 44,  FizzBuzz , 46, 47, Fizz , 49, Buzz , Fizz , 52, 53, Fizz , Buzz , 56, Fizz , 58, 59,  FizzB
uzz , 61, 62, Fizz , 64, Bu...</pre>
<p>ちなみに、タイプセーフなプログラミングができるScalaではAnyとなったArrayからIntやStringなど任意の型を抜き出すことができる。</p>
<pre style="margin-left: 1em; margin-right: 1em; background-color: #f8f8f8; white-space: pre-wrap; word-wrap: break-word; padding: 1ex; border: 1px solid #707b8d;">scala&gt; anyarr.filter(_.isInstanceOf [Int]).map (_.asInstanceOf[Int]) res51: Array[Int] = Array(1, 2, 4, 7, 8, 11, 13, 14, 16, 17, 19, 22, 23, 26, 28, 29, 31, 32, 34, 37, 38, 41, 43, 44, 46,  47, 49, 52, 53, 56, 58, 59, 61, 62, 64, 67, 68, 71, 73, 74, 76, 77, 79, 82, 83, 86, 88, 89, 91, 92, 94, 97, 98)
scala&gt; anyarr.filter(_.isInstanceOf [String]).map (_.asInstanceOf[String]) res52: Array[String] = Array(Fizz , Buzz , Fizz , Fizz , Buzz , Fizz ,  FizzBuzz , Fizz , Buzz , Fizz , Fizz , Buzz , Fi zz ,  FizzBuzz , Fizz , Buzz , Fizz , Fizz , Buzz , Fizz ,  FizzBuzz , Fizz , Buzz , Fizz , Fizz , Buzz , Fizz ,  FizzBu zz , Fizz , Buzz , Fizz , Fizz , Buzz , Fizz ,  FizzBuzz , Fizz , Buzz , Fizz , Fizz , Buzz , Fizz ,  FizzBuzz , Fizz , Buzz , Fizz , Fizz , Buzz )</pre>
<p>===========================</p>
<p>[追記]　Scala以外の関数型言語が好きな方へ(というか、Scalaは関数型言語でないと思っている方へ)。</p>
<p>何を隠そう私は<span style="text-decoration: line-through;">長門</span>clojure萌えである。実際、Scalaのように全方位外交巨大仕様でなく、小さな言語仕様で手になじむ言語・萌える言語ならば、それで良いではないか。</p>
<p>いつの日か、<span style="text-decoration: line-through;">長門</span>clojureと日がな暮らす日が来ることをひそかに私も願っている。</p>
<p>なぜ、clojureが長門かは<a href="http://wordprogress.org/archives/119">ここ</a>を見てほしい・・・。<span style="color: #ff0000;">ぁ、真面目にclojureを知りたい方は、RubyのMatz氏のエントリにヒントを得た</span><a href="http://wordprogress.org/archives/458">こちら</a><span style="color: #ff0000;">をどうぞ</span>(はてぶ経由でいろいろな方が訪れてくれているっぽいので、あわてて追記)。</p>
]]></content:encoded>
			<wfw:commentRss>http://wordprogress.org/archives/435/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Clojureから見たScala　その１　メモ化なフィボナッチ数列の紹介</title>
		<link>http://wordprogress.org/archives/314</link>
		<comments>http://wordprogress.org/archives/314#comments</comments>
		<pubDate>Sat, 07 Nov 2009 21:31:34 +0000</pubDate>
		<dc:creator>アルケー</dc:creator>
				<category><![CDATA[Scala]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[長門有希]]></category>

		<guid isPermaLink="false">http://wordprogress.org/?p=314</guid>
		<description><![CDATA[clojure-clrの近況を見てClojure萌え再発ついでに。
後発のClojureの側からScalaを見るのが利にかなっていると思ったので、Scalaから見たClojure、改め、今後は 長門有希が観測する涼宮ハルヒClojureから見たScalaでいこうと思い立つ。ということで、ちょっと前にScalaで見たフィボナッチ数列をClojureで。・・・と思ったら、本家にきれいなメモ化の実装が既に本家に置いてありますね。
atomsでフィボナッチ数列@本家clojureサイト

clojureでは、mutableなデータを明示的に扱う。メモ化するデータを、(atom {})にいれていくのがポイント。STMを含め、clojureのmutableなデータの扱いはセンスが良い(clojureのSTMの概要については、InfoQ記事)。
ベンチマークまでつけてくれている。単純な再帰に比べメモ化版の実行速度は10,000倍以上

自分が半分寝ながら書いたScala版メモ化より、ぜんぜんきれい(というか、シンプルな言語系同士の比較ということで、dan氏のJavaScriptでメモ化の実装と見比べるのがいいかも[再び紹介、「フィボナッチ数列にO()を学ぶ」)。もちろん、Scalaだってやればできる子(というか、できすぎる子)なので、ちゃんとしたフィボナッチ実装はいくつも転がっているが。
※ついでに、ScalaでSTM/better Actor実装のプロジェクトも絶賛活動中 =&#62; 並列処理に興味ある人は、Scala界最強のハッカーの一人であろう、jboner氏のakka を心して観察せよ。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordprogress.org/archives/312">clojure-clrの近況</a>を見てClojure萌え再発ついでに。</p>
<p>後発のClojureの側からScalaを見るのが利にかなっていると思ったので、Scalaから見たClojure、改め、今後は <span style="text-decoration: line-through;">長門有希が観測する涼宮ハルヒ</span>Clojureから見たScalaでいこうと思い立つ。ということで、<a href="http://wordprogress.org/archives/278">ちょっと前にScalaで見たフィボナッチ数列</a>をClojureで。・・・と思ったら、本家にきれいなメモ化の実装が既に本家に置いてありますね。</p>
<p><a href="http://clojure.org/atoms">atomsでフィボナッチ数列@本家clojureサイト</a></p>
<ul>
<li>clojureでは、mutableなデータを明示的に扱う。メモ化するデータを、(atom {})にいれていくのがポイント。STMを含め、clojureのmutableなデータの扱いはセンスが良い(clojureのSTMの概要については、<a href="http://www.infoq.com/jp/news/2009/02/clojure-interview-halloway">InfoQ記事</a>)。</li>
<li>ベンチマークまでつけてくれている。単純な再帰に比べメモ化版の実行速度は10,000倍以上</li>
</ul>
<p>自分が半分寝ながら書いたScala版メモ化より、ぜんぜんきれい(というか、シンプルな言語系同士の比較ということで、dan氏のJavaScriptでメモ化の実装と見比べるのがいいかも[再び紹介、「<a href="http://blog.livedoor.jp/dankogai/archives/50958771.html">フィボナッチ数列にO()を学ぶ</a>」)。もちろん、Scalaだってやればできる子(というか、できすぎる子)なので、ちゃんとしたフィボナッチ実装はいくつも転がっているが。</p>
<p><em>※ついでに、S<span style="color: #800000;">calaでSTM/better Actor実装のプロジェクトも絶賛活動中</span> =&gt; 並列処理に興味ある人は、Scala界最強のハッカーの一人であろう、jboner氏の</em><em><a href="http://github.com/jboner/akka">akka</a> を</em><em>心して観察せよ。</em></p>
]]></content:encoded>
			<wfw:commentRss>http://wordprogress.org/archives/314/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scalaから見たClojure その1:しばらくはネタ的に</title>
		<link>http://wordprogress.org/archives/187</link>
		<comments>http://wordprogress.org/archives/187#comments</comments>
		<pubDate>Wed, 04 Nov 2009 16:49:45 +0000</pubDate>
		<dc:creator>アルケー</dc:creator>
				<category><![CDATA[Scala]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[長門有希]]></category>

		<guid isPermaLink="false">http://wordprogress.org/?p=187</guid>
		<description><![CDATA[
		<script type="text/javascript"><!--
			show_rakuten('#answer1127668', 'NotFound');
		// -->
		</script>
		
		<script type="text/javascript"><!--
			show_rakuten('#bossleaf10003036', 'NotFound');
		// -->
		</script>
		JVM上の新興言語のツートップ。というか、個人的には、ハルヒと長門な、ScalaとClojure。
Scalaの方は仕事で使っている一方で、長門なClojureは完全に私の片思いで、仕事で使うことは当面なさそう。なので、しばらくは小ネタ集として両言語を比較したい。
Scalaについては日本語ブログだけで既に相当な情報を収集できるようになっている。が、Clojureについては、なかなか日本語情報に乏しい。しかし、そんな中、『逆引きClojure』は、実に期待できそうな存在・・に思えるのだが、更新が滞っている・・・
 ※　ということで今回は、『逆引きClojure』から適宜引用させてもらっています。
◇Clojureでリスト
Clojureのみならず、Lispでは、プログラムのリストとデータのリストを意識的に区別しなければならない(プログラム自体がリストであるという特性から・・)。なので、Listは以下のようにquoteして生成する :
(quote (1 2 3))
もしくは quoteの略称である「`」バッククオート を使う
'(1 2 3)
リストの長さは、count 関数で調べる :
(count '(1 2 3)) ; 結果は3

◇Scalaでリスト
実にシンプル:
List (1 2 3)
あるいは、演算子「::」を使ってリストを生成する
 1 :: 2 :: 3 :: Nil
scala&#62; 1 :: 2 :: 3 :: Nil
res42: List[Int] = List(1, 2, 3)
試しておこう。
scala&#62; 1 :: 2 :: 3 :: Nil
res42: List[Int] = List(1, 2, 3)
リストの長さは、length 関数で調べる :
scala&#62; (1 :: 2 :: [...]]]></description>
			<content:encoded><![CDATA[
		<script type="text/javascript"><!--
			show_rakuten('#answer1127668', 'NotFound');
		// -->
		</script>
		
		<script type="text/javascript"><!--
			show_rakuten('#bossleaf10003036', 'NotFound');
		// -->
		</script>
		<h3>JVM上の新興言語のツートップ。というか、個人的には、ハルヒと長門な、ScalaとClojure。</h3>
<p>Scalaの方は仕事で使っている一方で、長門なClojureは完全に私の片思いで、仕事で使うことは当面なさそう。なので、しばらくは小ネタ集として両言語を比較したい。<br />
Scalaについては日本語ブログだけで既に相当な情報を収集できるようになっている。が、Clojureについては、なかなか日本語情報に乏しい。しかし、そんな中、『<a href="http://tips.lisp-users.org/clojure/">逆引きClojure</a>』は、実に期待できそうな存在・・に思えるのだが、更新が滞っている・・・</p>
<p><em> ※　ということで今回は、『</em><a href="http://tips.lisp-users.org/clojure/"><em>逆引きClojure</em></a><em>』から適宜引用させてもらっています。</em></p>
<h4>◇Clojureでリスト</h4>
<p>Clojureのみならず、Lispでは、プログラムのリストとデータのリストを意識的に区別しなければならない(プログラム自体がリストであるという特性から・・)。なので、Listは以下のようにquoteして生成する :</p>
<pre style="margin-left: 1em; margin-right: 1em; background-color: #f8f8f8; white-space: pre-wrap; word-wrap: break-word; padding: 1ex; border: 1px solid #707b8d;">(quote (1 2 3))</pre>
<p style="margin-left: 0.5em;">もしくは quoteの略称である「<span style="color: #800000;"><strong>`</strong></span>」バッククオート を使う</p>
<pre style="margin-left: 1em; margin-right: 1em; background-color: #f8f8f8; white-space: pre-wrap; word-wrap: break-word; padding: 1ex; border: 1px solid #707b8d;">'(1 2 3)</pre>
<p>リストの長さは、count 関数で調べる :</p>
<pre style="margin-left: 1em; margin-right: 1em; background-color: #f8f8f8; white-space: pre-wrap; word-wrap: break-word; padding: 1ex; border: 1px solid #707b8d;">(count '(1 2 3)) ; 結果は3</pre>
<hr />
<h4>◇Scalaでリスト</h4>
<p>実にシンプル:</p>
<pre style="margin-left: 1em; margin-right: 1em; background-color: #f8f8f8; white-space: pre-wrap; word-wrap: break-word; padding: 1ex; border: 1px solid #707b8d;">List (1 2 3)</pre>
<p style="margin-left: 0.5em;">あるいは、演算子「<span style="color: #800000;"><strong>::</strong></span>」を使ってリストを生成する</p>
<pre style="margin-left: 1em; margin-right: 1em; background-color: #f8f8f8; white-space: pre-wrap; word-wrap: break-word; padding: 1ex; border: 1px solid #707b8d;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;"> 1 :: 2 :: 3 :: Nil</span></pre>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 553px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">scala&gt; 1 :: 2 :: 3 :: Nil</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 553px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">res42: List[Int] = List(1, 2, 3)</div>
<p><span style="color: #999999;">試しておこう。</span></p>
<p><span style="color: #999999;">scala&gt; 1 :: 2 :: 3 :: Nil<br />
res42: List[Int] = List(1, 2, 3)</span></p>
<p>リストの長さは、length 関数で調べる :</p>
<pre style="margin-left: 1em; margin-right: 1em; background-color: #f8f8f8; white-space: pre-wrap; word-wrap: break-word; padding: 1ex; border: 1px solid #707b8d;"><span style="white-space: pre-wrap;">scala&gt; (1 :: 2 :: 3 :: Nil).length
res44: Int = 3</span></pre>
<p>・・・この程度なら、clojureである必要はないなぁ。まずは、Lispの標準のひとつであるScheme実装とScalaを先に比較しよう。</p>
<p><div id="answer1127668" class="rakuten_details">Now Loading...</div><br />
<div id="bossleaf10003036" class="rakuten_details">Now Loading...</div></p>
]]></content:encoded>
			<wfw:commentRss>http://wordprogress.org/archives/187/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ネタ]　SOS Dan on JVM</title>
		<link>http://wordprogress.org/archives/119</link>
		<comments>http://wordprogress.org/archives/119#comments</comments>
		<pubDate>Tue, 03 Nov 2009 13:39:17 +0000</pubDate>
		<dc:creator>kyon</dc:creator>
				<category><![CDATA[JVM]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[Scala]]></category>
		<category><![CDATA[涼宮ハルヒの消失]]></category>
		<category><![CDATA[長門有希]]></category>

		<guid isPermaLink="false">http://wordprogress.org/?p=119</guid>
		<description><![CDATA[
		<script type="text/javascript"><!--
			show_rakuten('#jigsawclub10012174', '<!-- cache --><div class="rakuten_image"><a href="http://hb.afl.rakuten.co.jp/hgc/0b16999f.c5b9c54b.0b1699a0.49a76732/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Fjigsawclub%2Fc03-013%2F" target="_blank"><img src="http://thumbnail.image.rakuten.co.jp/@0_mall/jigsawclub/cabinet/shohin_0009/c03-013.jpg?_ex=128x128"><br /><p class="rakuten_logo"><!-- Rakuten Web Services Attribution Snippet FROM HERE --><a href="http://webservice.rakuten.co.jp/" target="_blank"><img src="http://webservice.rakuten.co.jp/img/credit/200709/credit_4936.gif" border="0" alt="楽天ウェブサービスセンター" title="楽天ウェブサービスセンター" width="49" height="36"/></a><!-- Rakuten Web Services Attribution Snippet TO HERE --></p><font class="rakuten_warn"><a href="#" class="tooltip">[ご利用にあたって]<span>このサイトで掲載されている情報は、「Go towards a Word-Progress」の作成者により運営されています。価格、販売可能情報は、変更される場合があります。購入時に楽天市場店舗（www.rakuten.co.jp）に表示されている価格が、その商品の販売に適用されます。</span></a></font></div><div class="rakuten_info"><p class="rakuten_itemname"><a href="http://hb.afl.rakuten.co.jp/hgc/0b16999f.c5b9c54b.0b1699a0.49a76732/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Fjigsawclub%2Fc03-013%2F" target="_blank">　【30％OFF】ジグソーパズル：108ピース キャラクター／涼宮ハルヒの憂鬱「涼宮ハルヒの憂鬱〜長門有希」【楽ギフ_包装】【楽ギフ_のし】</a></p><p class="rakuten_caption">★無料ギフト対応&amp;nbsp;●108ピース　●18.2×25.7cm●この商品にあうパネルを見る涼宮ハルヒの憂鬱(c) 2006　谷川流・いとうのいぢ/SOS団［ジグソーパズル／キャラクター／涼宮ハルヒの憂鬱／涼宮ハルヒの憂鬱〜長門有希］涼宮ハルヒの憂鬱〜長門有希……</p><p><em>販売価格：</em> 882 円 <font class="rakuten_time">(10/07/30 20:14 更新)</font></p><p><em>販売店舗：</em> <a href="http://www.rakuten.co.jp/jigsawclub/" target="_blank">ジグソークラブ楽天市場店</a></p></div><!-- cache -->');
		// -->
		</script>
		
		<script type="text/javascript"><!--
			show_rakuten('#jigsawclub10012174', '<!-- cache --><div class="rakuten_image"><a href="http://hb.afl.rakuten.co.jp/hgc/0b16999f.c5b9c54b.0b1699a0.49a76732/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Fjigsawclub%2Fc03-013%2F" target="_blank"><img src="http://thumbnail.image.rakuten.co.jp/@0_mall/jigsawclub/cabinet/shohin_0009/c03-013.jpg?_ex=128x128"><br /><p class="rakuten_logo"><!-- Rakuten Web Services Attribution Snippet FROM HERE --><a href="http://webservice.rakuten.co.jp/" target="_blank"><img src="http://webservice.rakuten.co.jp/img/credit/200709/credit_4936.gif" border="0" alt="楽天ウェブサービスセンター" title="楽天ウェブサービスセンター" width="49" height="36"/></a><!-- Rakuten Web Services Attribution Snippet TO HERE --></p><font class="rakuten_warn"><a href="#" class="tooltip">[ご利用にあたって]<span>このサイトで掲載されている情報は、「Go towards a Word-Progress」の作成者により運営されています。価格、販売可能情報は、変更される場合があります。購入時に楽天市場店舗（www.rakuten.co.jp）に表示されている価格が、その商品の販売に適用されます。</span></a></font></div><div class="rakuten_info"><p class="rakuten_itemname"><a href="http://hb.afl.rakuten.co.jp/hgc/0b16999f.c5b9c54b.0b1699a0.49a76732/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Fjigsawclub%2Fc03-013%2F" target="_blank">　【30％OFF】ジグソーパズル：108ピース キャラクター／涼宮ハルヒの憂鬱「涼宮ハルヒの憂鬱〜長門有希」【楽ギフ_包装】【楽ギフ_のし】</a></p><p class="rakuten_caption">★無料ギフト対応&amp;nbsp;●108ピース　●18.2×25.7cm●この商品にあうパネルを見る涼宮ハルヒの憂鬱(c) 2006　谷川流・いとうのいぢ/SOS団［ジグソーパズル／キャラクター／涼宮ハルヒの憂鬱／涼宮ハルヒの憂鬱〜長門有希］涼宮ハルヒの憂鬱〜長門有希……</p><p><em>販売価格：</em> 882 円 <font class="rakuten_time">(10/07/30 20:14 更新)</font></p><p><em>販売店舗：</em> <a href="http://www.rakuten.co.jp/jigsawclub/" target="_blank">ジグソークラブ楽天市場店</a></p></div><!-- cache -->');
		// -->
		</script>
		 [追記]

以下、Lisperな方への小ネタ(小さなエール??)のつもりで書いたもの。近時、Go言語エントリから、こちらに流れてくる方が急増している。Clojureをご存じてない方も多いと思われる。Clojureをご存じてない方・ClojureとClosureって間違い探し？とか思う方とは、まずはこちらの新規投稿にてClojureの良さを知っていただきたい。 あと、ややこしいが、Googleの新JavaScriptフレームワークClosureの方は、Go言語とも大きく関わるであろうProtocolBufferについてちょっと書いたので、こちらをどうぞ。

※楽天が日ハムとのクライマックス・シリーズ第一戦であんなことになって日本シリーズを応援しそびれ、ついカッとなって、長門Clojureへの応援メッセージを書きなぐった。後悔はしていない(久々にこの言葉を使った)。こうして書いてしまったものは書いてしまったものなので、その後もClojureのいい点をひっそりと書き続けるつもりでいた。 まぁ、Clojureが良いLispであることに変わりはないので、間違ってきてしまった方々の人生の時間をさほど無駄にしていないと思う。DnaKogai氏の言うとおり、真の男ならばプログラマならば、一度はLispを実装してみるくらいが良いのだから。
－－－－－
「プログラム言語オタク≒文弱」のオチに、文学はエンターテイメントとしてのみうんぬんを書いたついでに、
「Scala は振り向かずにいるにはあまりに美人だ」とKogaiDan氏が書く前から思っていた小ネタ(?)を。
※以下、あくまでプログラミング・ネタ。
京アニ・ファンかつ非プログラマな方が間違ってきてしまった場合には、
長門ファン限定で情報の伝達に齟齬が発生しない楽しめる可能性があると思われます。
涼宮ハルヒのJVM、もとい、SOS Dan on JVMについての小論。
[perl / cruby/ lua ・・・その他はすべて他に譲る]
JVM上では、Scalaは涼宮ハルヒだ。
なぜならば、長門有希がclojureだから。
若干改良されたS式をしゃべるclojureは、プログラミングが誕生すると間もなく生じた情報統合思念体=LISPの分身。
生み出されてから３年間、ずっと注目されずにすごしてきたclojureだが、Scalaとの対比で世に現れる。
InfoQの「2009年の展望」において、“2009年はScalaよりもClojureの年になるだろう”と予言されながらも、Scalaにばかり全校生徒世間の注目が集まるやや幸薄きclojure。
でも、来年2010年こそはclojureにとって大きなチャンスなのだ。何しろ、
春には涼宮ハルヒが北高から消失するclojure本の日本語訳がGaucheのshiroさん訳で出るのだから。
劇場版『涼宮ハルヒの消失』の観客動員数と同じくらい、日本語Clojure本の部数が出てほしいものだ。長門がつぶやく呪文が実はS式なのだと、映画館を訪れた長門ファンが気がつけば、そんなこともあるかもしれない。 
Now Loading...
とにかく、英語版を見る限り、clojure本は秀逸だ[STMをはじめ、scalaに取り込まれているアイデアもある]。
・・・でも、2010年にもキョンは、こう心でつぶやくのだろうか「俺はハルヒに会いたかった」。
 2010年も、やっぱりツンとデレのハイブリット団長Scalaが来るのかもしれない。


以下、駄文。
残りのSOS Danメンバーon JVM

Java≒小泉。そつなく全校女子生徒職業プログラマの支持を集めそう。
jruby≒朝比奈さん。なんといってもその容姿が愛ら(以下、略)
まだ見果てぬ異世界人≒Ioke。個人的にはもしかしてclojureよりおすすめかも。

せっかくなので佐々木チーム on Monoも

C#≒佐々木　。Scalaほど美人でないにせよ(以下、略)
Boo≒橘 京子　。たぶん、付き合ってみても良い言語。Python似の癖にScalaと同じく静的型付け。
VB≒藤原。根拠なし。
周防 九曜≒IronLisp上に実装し直されたFactor、だろうか、、情報統合思念体Lispに対抗できそなのはForth系の言語と思うから。
IronScheme上ではないうえに、ググってもとても存在感のないFactorこそが周防 九曜的(適当)。

最後に、ここまでネタに付き合ってくれた方に限定した問いかけを : 
そう、最大の謎はあなたキョン　ハルヒがScalaで長門がClojureなら、キョンは一体何なのだろうか？

「2009年の展
望」「2009年の展望」「2009年の展望」「2009年の展望」「2009年の展望」
Now Loading...
]]></description>
			<content:encoded><![CDATA[
		<script type="text/javascript"><!--
			show_rakuten('#jigsawclub10012174', '<!-- cache --><div class="rakuten_image"><a href="http://hb.afl.rakuten.co.jp/hgc/0b16999f.c5b9c54b.0b1699a0.49a76732/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Fjigsawclub%2Fc03-013%2F" target="_blank"><img src="http://thumbnail.image.rakuten.co.jp/@0_mall/jigsawclub/cabinet/shohin_0009/c03-013.jpg?_ex=128x128"><br /><p class="rakuten_logo"><!-- Rakuten Web Services Attribution Snippet FROM HERE --><a href="http://webservice.rakuten.co.jp/" target="_blank"><img src="http://webservice.rakuten.co.jp/img/credit/200709/credit_4936.gif" border="0" alt="楽天ウェブサービスセンター" title="楽天ウェブサービスセンター" width="49" height="36"/></a><!-- Rakuten Web Services Attribution Snippet TO HERE --></p><font class="rakuten_warn"><a href="#" class="tooltip">[ご利用にあたって]<span>このサイトで掲載されている情報は、「Go towards a Word-Progress」の作成者により運営されています。価格、販売可能情報は、変更される場合があります。購入時に楽天市場店舗（www.rakuten.co.jp）に表示されている価格が、その商品の販売に適用されます。</span></a></font></div><div class="rakuten_info"><p class="rakuten_itemname"><a href="http://hb.afl.rakuten.co.jp/hgc/0b16999f.c5b9c54b.0b1699a0.49a76732/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Fjigsawclub%2Fc03-013%2F" target="_blank">　【30％OFF】ジグソーパズル：108ピース キャラクター／涼宮ハルヒの憂鬱「涼宮ハルヒの憂鬱〜長門有希」【楽ギフ_包装】【楽ギフ_のし】</a></p><p class="rakuten_caption">★無料ギフト対応&amp;nbsp;●108ピース　●18.2×25.7cm●この商品にあうパネルを見る涼宮ハルヒの憂鬱(c) 2006　谷川流・いとうのいぢ/SOS団［ジグソーパズル／キャラクター／涼宮ハルヒの憂鬱／涼宮ハルヒの憂鬱〜長門有希］涼宮ハルヒの憂鬱〜長門有希……</p><p><em>販売価格：</em> 882 円 <font class="rakuten_time">(10/07/30 20:14 更新)</font></p><p><em>販売店舗：</em> <a href="http://www.rakuten.co.jp/jigsawclub/" target="_blank">ジグソークラブ楽天市場店</a></p></div><!-- cache -->');
		// -->
		</script>
		
		<script type="text/javascript"><!--
			show_rakuten('#jigsawclub10012174', '<!-- cache --><div class="rakuten_image"><a href="http://hb.afl.rakuten.co.jp/hgc/0b16999f.c5b9c54b.0b1699a0.49a76732/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Fjigsawclub%2Fc03-013%2F" target="_blank"><img src="http://thumbnail.image.rakuten.co.jp/@0_mall/jigsawclub/cabinet/shohin_0009/c03-013.jpg?_ex=128x128"><br /><p class="rakuten_logo"><!-- Rakuten Web Services Attribution Snippet FROM HERE --><a href="http://webservice.rakuten.co.jp/" target="_blank"><img src="http://webservice.rakuten.co.jp/img/credit/200709/credit_4936.gif" border="0" alt="楽天ウェブサービスセンター" title="楽天ウェブサービスセンター" width="49" height="36"/></a><!-- Rakuten Web Services Attribution Snippet TO HERE --></p><font class="rakuten_warn"><a href="#" class="tooltip">[ご利用にあたって]<span>このサイトで掲載されている情報は、「Go towards a Word-Progress」の作成者により運営されています。価格、販売可能情報は、変更される場合があります。購入時に楽天市場店舗（www.rakuten.co.jp）に表示されている価格が、その商品の販売に適用されます。</span></a></font></div><div class="rakuten_info"><p class="rakuten_itemname"><a href="http://hb.afl.rakuten.co.jp/hgc/0b16999f.c5b9c54b.0b1699a0.49a76732/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Fjigsawclub%2Fc03-013%2F" target="_blank">　【30％OFF】ジグソーパズル：108ピース キャラクター／涼宮ハルヒの憂鬱「涼宮ハルヒの憂鬱〜長門有希」【楽ギフ_包装】【楽ギフ_のし】</a></p><p class="rakuten_caption">★無料ギフト対応&amp;nbsp;●108ピース　●18.2×25.7cm●この商品にあうパネルを見る涼宮ハルヒの憂鬱(c) 2006　谷川流・いとうのいぢ/SOS団［ジグソーパズル／キャラクター／涼宮ハルヒの憂鬱／涼宮ハルヒの憂鬱〜長門有希］涼宮ハルヒの憂鬱〜長門有希……</p><p><em>販売価格：</em> 882 円 <font class="rakuten_time">(10/07/30 20:14 更新)</font></p><p><em>販売店舗：</em> <a href="http://www.rakuten.co.jp/jigsawclub/" target="_blank">ジグソークラブ楽天市場店</a></p></div><!-- cache -->');
		// -->
		</script>
		<pre style="margin-top: 0px; margin-right: 1em; margin-bottom: 0px; margin-left: 1em; background-color: #c8c8f8; white-space: pre-wrap; word-wrap: break-word; padding: 1ex; border: 1px solid #707b8d;"> [追記]

以下、Lisperな方への小ネタ(小さなエール??)のつもりで書いたもの。近時、Go言語エントリから、こちらに流れてくる方が急増している。Clojureをご存じてない方も多いと思われる。Clojureをご存じてない方・<span style="color: #000000;">ClojureとClosureって間違い探し</span>？とか思う方とは、まずは<a href="http://wordprogress.org/archives/458">こちらの新規投稿</a>にてClojureの良さを知っていただきたい。 あと、ややこしいが、Googleの新JavaScriptフレームワークClosureの方は、Go言語とも大きく関わるであろうProtocolBufferについてちょっと書いたので、<a href="http://wordprogress.org/archives/373">こちら</a>をどうぞ。

※楽天が日ハムとのクライマックス・シリーズ第一戦であんなことになって日本シリーズを応援しそびれ、<strong>ついカッとなって</strong>、<span style="text-decoration: line-through;">長門</span>Clojureへの応援メッセージを書きなぐった。後悔はしていない(久々にこの言葉を使った)。こうして書いてしまったものは書いてしまったものなので、その後もClojureのいい点をひっそりと書き続けるつもりでいた。 まぁ、Clojureが良いLispであることに変わりはないので、間違ってきてしまった方々の人生の時間をさほど無駄にしていないと思う。DnaKogai氏の言うとおり、<span style="text-decoration: line-through;">真の男ならば</span>プログラマならば、一度はLispを実装してみるくらいが良いのだから。</pre>
<p>－－－－－</p>
<p>「プログラム言語オタク≒文弱」のオチに、文学はエンターテイメントとしてのみうんぬんを書いたついでに、<br />
「<a href="http://blog.livedoor.jp/dankogai/archives/51275491.html">Scala は振り向かずにいるにはあまりに美人だ</a>」とKogaiDan氏が書く前から思っていた小ネタ(?)を。</p>
<p><span style="color: #ff0000;"><em>※以下、あくまでプログラミング・ネタ。<br />
京アニ・ファンかつ非プログラマな方が間違ってきてしまった場合には、<br />
長門ファン限定で<span style="text-decoration: line-through;">情報の伝達に齟齬が発生しない</span>楽しめる可能性があると思われます。</em></span></p>
<p>涼宮ハルヒのJVM、もとい、SOS Dan on JVMについての小論。<br />
[perl / cruby/ lua ・・・その他はすべて他に譲る]</p>
<h2>JVM上では、Scalaは涼宮ハルヒだ。<br />
なぜならば、<span style="color: #ff0000;">長門有希がclojure</span>だから。</h2>
<p>若干改良されたS式をしゃべるclojureは、プログラミングが誕生すると間もなく生じた情報統合思念体=LISPの分身。</p>
<p>生み出されてから３年間、ずっと注目されずにすごしてきたclojureだが、Scalaとの対比で世に現れる。</p>
<p>InfoQの「2009年の展望」において、<span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">“<a href="http://www.infoq.com/jp/news/2009/01/pl-predictions-2009">2009年はScalaよりもClojureの年になるだろう</a>”と予言されながらも、Scalaにばかり<span style="text-decoration: line-through;">全校生徒</span>世間の注目が集まるやや幸薄きclojure。</span></p>
<p><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">でも、来年2010年こそはclojureにとって大きなチャンスなのだ。何しろ、<br />
<span style="text-decoration: line-through;">春には涼宮ハルヒが北高から消失する</span>clojure本の日本語訳がGaucheのshiroさん訳で出るのだから。</span></p>
<p><span style="color: #800000;">劇場版『涼宮ハルヒの消失』の観客動員数と同じくらい、日本語Clojure本の部数が出てほしい</span><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">ものだ。<span style="color: #ff0000;">長門がつぶやく呪文が実はS式</span>なのだと、映画館を訪れた長門ファンが気がつけば、そんなこともあるかもしれない。 </span></p>
<p><span style="font-family: 'Lucida Grande', Verdana, Arial, 'Bitstream Vera Sans', sans-serif; line-height: 11px; font-size: 11px; color: #333333;"><em><div id="jigsawclub10012174" class="rakuten_details">Now Loading...</div></em></span></p>
<p><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">とにかく、英語版を見る限り、clojure本は秀逸だ[STMをはじめ、scalaに取り込まれているアイデアもある]。</span></p>
<p><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">・・・でも、2010年にもキョンは、こう心でつぶやくのだろうか「俺はハルヒに会いたかった」。<br />
<span style="color: #ff0000;"> 2010年も、やっぱり</span><span style="text-decoration: line-through;"><span style="color: #ff0000;">ツンとデレ</span></span><span style="color: #ff0000;">のハイブリット団長Scala</span>が来るのかもしれない。</span></p>
<p><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;"><br />
</span></p>
<p><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;"><span id="more-119"></span>以下、駄文。<br />
残りのSOS Danメンバーon JVM</span></p>
<ul>
<li><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">Java≒小泉。そつなく<span style="text-decoration: line-through;">全校女子生徒</span>職業プログラマの支持を集めそう。</span></li>
<li><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">jruby≒朝比奈さん。なんといってもその容姿が愛ら(以下、略)</span></li>
<li><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">まだ見果てぬ異世界人≒Ioke。個人的にはもしかしてclojureよりおすすめかも。</span></li>
</ul>
<p><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">せっかくなので佐々木チーム on Monoも</span></p>
<ul>
<li><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">C#≒佐々木　。Scalaほど美人でないにせよ(以下、略)</span></li>
<li><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">Boo≒橘 京子　。たぶん、付き合ってみても良い言語。Python似の癖にScalaと同じく静的型付け。</span></li>
<li><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">VB≒藤原。根拠なし。</span></li>
<li><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">周防 九曜≒IronLisp上に実装し直された<a href="http://ja.wikipedia.org/wiki/Factor">Factor</a>、だろうか、、<span style="text-decoration: line-through;">情報統合思念体</span>Lispに対抗できそなのはForth系の言語と思うから。<br />
IronScheme上ではないうえに、ググってもとても存在感のないFactorこそが周防 九曜的(適当)。</span></li>
</ul>
<p><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;"><!--more--></span><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">最後に、ここまでネタに付き合ってくれた方に限定した問いかけを : </span></p>
<p><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', sans-serif;">そう、最大の謎は<span style="text-decoration: line-through;">あなた</span>キョン　ハルヒがScalaで長門がClojureなら、キョンは一体何なのだろうか？</span></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 131px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">
<p>「2009年の展</p>
<p>望」「2009年の展望」「2009年の展望」「2009年の展望」「2009年の展望」</p></div>
<p><div id="jigsawclub10012174" class="rakuten_details">Now Loading...</div></p>
]]></content:encoded>
			<wfw:commentRss>http://wordprogress.org/archives/119/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
