LL開発記

「LL (Lightweight Language 軽量言語)」でプログラミングする開発マンのブログ

本ブログの予定

LLを中心としたプログラム開発

 本ブログ最初のエントリなので、これからどのような方向性で記事を書いていくのか、説明しておきます。
 本ブログは「LLを中心としたプログラム開発」の記事を書いていくつもりです。以下、くわしく述べます。

LLとは何か?

 「LL」とは「Lightweight Language」を略した英語*1であり、「軽量言語」を意味する。

 たとえると、自動車でいう「軽自動車」とか、音楽でいう「軽音楽」、
あるいは小説における「ライトノベル(軽小説)」のようなものだろうか。

 LLのメリットは、(とくに小規模での)開発の負担が軽いことにある。
逆にデメリットは、プログラム自体の実行速度がたいてい遅いことだ。

なぜLLなのか?

 LLでない、たとえばJavaC++のような言語も、いちおう私は読み書きできる。
しかし、ブログで気軽に読み書きするのには向かないのではないか、と考えている。

 そもそもインターネット上のWebで流通するコンテンツは一般的に軽薄である。
小説でいえばライトノベルのような、軽いコンテンツのほうが流通しやすいのではないか。

 もちろん私がLLを選んだ理由は、こんな軽薄なものだけではない。
しかし、LLを選ぶ理由自体を、このブログのコンテンツにしたいので、
本格的な説明は後回しにしたい。お楽しみは後に取っておくことにしよう。


LLで何を開発するのか?

 LLが得意な分野にWebアプリの開発がある。しかしあまりにもありふれており、差別化が必要だ。
 いっぽう、はてなの技術系ブログやはてなブックマークで今流行している開発テーマが、機械学習

 そこで機械学習を利用したアプリを作ろうと考えている。ただ、それは残念ながら今のところ公開予定はない。
 オープンソースでソフトを開発して、そのソフトのことを書くのは理想だが、諸般の事情でそううまくいかない。

 だからけっきょく、ブログ上で公開するコードは、ユーティリティ的なツールやTIPSが多くなると思う。
 ただ断片的なTIPSだけでなく、機械学習のような大きなテーマにもたまには触れたいと考えている。

LLでどのように開発するのか?

 開発手法としては、LLにはアジャイルが適している。
 私がつねに採用するわけではないが、テストファーストといった手法がある。

 設計とテストは開発においてかなりの比率を占めるので、少しは触れたいと思う。
 デバッガ、フレームワーク、データベース、ツール、サイトなども機会があれば触れる。

どのLLなのか?

 代表的なLLには、JavaScriptPerlPHPPythonRubyといった言語があり、それぞれ一長一短の特徴がある。
さしあたりは、JavaScriptを中心に扱おうかと考えている。というのは、JavaScriptは今人気の言語だからだ。
サンプルコードを書いたときに、読者が読める、知っている確率が一番高いだろうから、ブログに書くのにも向いているだろう。
もうひとつメインの言語にしたいのは、Ruby。これは読み書きのしやすさといった理由から。

 しかし、もっとマイナーな言語も扱っていきたい。たとえば?
 たとえば、Smalltalkとか、Lispとか。マニアックだが、洗練された言語だ。
もっとも、これらがLLかどうかは微妙だし、需要があるかどうかも分からない。
しかしメジャー言語だけ扱っても、他のブログと差別化できないから、たまには触れていきたい。

LLの可能性

 以上でブログで扱いたいことの概要をざっと説明したが、
 技術系ブログが扱うテーマとしては、ありきたりな印象を与えてしまったかもしれない。
 まあブログを続けていくうちにだんだん深堀りしていくので、今はこの程度でよい。

 しかし先回りして少しだけ言っておくと、
ここで言及したSmalltalkLispRuby。この三者に共通するものがある。なんだろうか?

 それはDSL

 「DSL」とは「Domain Specific Language ドメイン特化言語」。
この三者の言語は、DSLが作りやすい言語として挙げられる。

DSLの可能性

 私は、LLの先にある可能性をDSLに見ている。

ブログのタイトルを「LL」じゃなく「DSL」にしようかとも少し思ったくらいだ。
ブログのテーマはあるていど一般的でないと、更新が苦しくなりそうだから止めてしまったが。

 DSLは、オブジェクト指向設計の一手法である「DDD Domain Driven Design ドメイン駆動設計」だとか、
あるいは先にも言及した機械学習ともやがて結びついてくる。

 DSLの可能性については、ブログでいずれ触れよう。

*1:和製英語」→「英語」に訂正。和製英語かと思っていたが、もともと英語圏の言葉のようだ。ただ、初出がどこなのか、本当にそこなのか、確認する作業が必要なので、確信できるまで注釈に回した。