Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
私は新たな言語を学ぶのが好きなのですが、しばらく使うとどうしてもその言語の魅力は色あせてきてしまいます。そして結局は、ツールボックスの中のありふれた言語の1つになってしまうのです。 しかしClojureは例外でした。私は今でも、最初に学んだ時と変わらずこの言語を使うのが好きです。その理由は、この言語の持つ能力とシンプルさの絶妙なバランスにあります。 能力のバランス 一部の言語はシンプルであっても同時に冗長だったりします。冗長さは大した問題ではないと言う人も、中にはいます。そういう人たちは、全ての言語がチューリング完全であるとか、特定の言語では少し多くコードを書く必要があるだけだとか力説するでしょう。 でもそれは的外れだと思います。原理上何かを表現できるかということが大事なのではありません。解こうとしている問題にどれだけうまく言語を対応づけられるかということです。あなたの問題領域の観点から考
プログラミング言語Clojureの作者Rich Hickey氏率いるClojure HackerのチームがDatomic(デートミックと発音するらしい)というデータベースをリリースしました。これが何やらとてつもないです。10年先を行ってる技術じゃないでしょうか。 まだ本番サービスは始まっていませんが開発環境用のライブラリが配布されています。 Datomicは斬新なアーキテクチャなので一言で説明するのはとても難しいです。 私が理解できたことを簡単に説明します。 2014/1/20追記 ライセンスモデル、サポートストレージ、サービスとしてではなく独立して使用する形になるなど記事作成時の内容から色々変更が合った部分を更新しました。 変更不可なAppend-onlyデータベース 従来のデータベースで、あるレコードを変更するというのはそのレコードに対応した場所があり、そこのデータを書き換えるというこ
前回の Java と比べて Clojure が 3 倍以上遅いというのは何かの間違いではないかと思って確かめたら,やっぱり間違いだった件 の続きです. 今回は,前回普通に書いた並列化なし Clojure プログラムを並列化させます. 普通に書いた並列化なし Clojure プログラムのコードは前の記事を参照してください. 「普通に書いた Clojure プログラム」の並列化この記事では, pmapReducersの 2 つの方法を使って「普通に書いた Clojure プログラム」を並列化し, 並列化前と並列化後の実行時間を比較し,どちらが速いかを確認します. また,コードの変更点を確認することで,並列化によりどれだけコードが複雑化するかを議論します. pmap による並列化「普通に書いた Clojure プログラム」からの変更点は次の 2 つです: map を pmap に置き換えた(1
マルチコアプログラミングの概念と Java 8/Scala/Clojure での書き方,および,各プログラミング言語間での比較記事がはてなブックマークで 93 ブクマ(執筆時点)を集めており,人気となっています. マルチコア時代のプログラマは関数脳になろう〜Scala・Clojure〜 - Tech-Sketch 記事を読んでみるとなるほど分かりやすく,各プログラミング言語の違いも比較的すっと頭に入ってくる良い記事でした.この記事を書いた作者に敬意を表します. しかし,まとめのところに書かれている実行時間比較を見てみると,何かがおかしいのです. (元記事,まとめの表からの引用) Java7 Java8 Scala Clojure 非並列処理実時間 0m32.304s 0m32.511s 0m50.478s 1m38.138s CPU時間 0m33.730s 0m35.842s 2m12.2
前回 の記事では、関数型プログラミングの概念とJava8による実装例を示しました。しかしJava8のリリースは来年まで延期されてしまったため、今すぐ試してみるには少しハードルが高いかもしれません。 そこで今回は、Java7のJVM上で動作する代表的な関数型プログラミング言語、 Scala と Clojure を紹介します。 Scalaとは では、 Scala から紹介しましょう。 ScalaはJVM上で動作するプログラミング言語で、関数型の特徴とオブジェクト指向の特徴を合わせ持った、欲張りな言語です。 JVM上で動作するため、既存の膨大なJavaライブラリをそのまま流用でき、JVMのパフォーマンスチューニングノウハウを最大限活用することができます。またJavaよりも豊富な記述形式を持ちながらもJavaオブジェクトをそのまま扱え、強力な型推論を持った静的型付け言語でもあるため、定型的で冗
@halcat0x15a が書いた Clojure への不満とか というエントリを読みました. この手の不満は単なる愚痴に終わってしまうことが多いのですが, Haskell/Scala プログラマから見た Clojure という明確な視点があるおかげで, 単なる愚痴を越えてプログラミング言語間の比較をするきっかけになっています. 私も読んでいて,Scala のように Clojure を書きたいと考えたら, 同じことを思ってしまうだろうなと.なるほどと膝を打ってしまいました. ところで, 人が抱く不満というのは百人いれば百通り違うわけで, Haskell/Scala プログラマという背景が変われば不満も変わってくるわけです. 「改善された Java」として Clojure を使っている私が読むと, Scala プログラマの不満も別の意味をもってきます. そこで,このエントリでは,@halca
実際の公開からちょっと間空いてしまいましたが、 misakiのベータ版を公開しました。 misakiとは?†rubyのJekyllを参考にClojureで作った静的サイトジェネレータです。当ブログもmisakiで生成していて、 misaki自体のドキュメントもmisakiで管理・生成しています。 何が新しいの?†ベータ版で追加した主な機能は以下の通りです。 Clojurescriptへの対応出力のカスタマイズビルトイン関数の拡充スマホ対応Clojurescript対応†設定ファイルに定義を追加することでClojurescriptをビルドすることができるようになりました。 今まではテンプレートをS式で書くだけでしたが、これでJSもS式で書けるようになったので また一歩、全部Clojureのターンに近づいた感じです。 ;; clojurescript compile options ;; sr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く