Luan - reactionary software by fschmidt

なぜLuanなのか?

Luanは信頼性、シンプルさ、読みやすさを重視して設計されています。その極端なシンプルさを可能にしているのは、Ousterhoutが彼の論文Scripting: Higher Level Programming for the 21st Century(1998年)で構想した純粋なスクリプト言語であることです。LuanはJavaと密接に結びついており、Luanはスクリプト(アプリケーションを書く)用、Javaはライブラリを書く用です。これをPythonのような言語と比較してください。Pythonは良い言語ですが、スクリプトやライブラリを書くのに最適ではありません。Pythonは妥協として中間に位置しています。Ousterhoutのビジョンは、各タスクに最適なツールを使用することです。Luanは妥協のないスクリプト言語であり、Javaはライブラリを書くのに理想的です。

Ousterhoutは彼のビジョンをTclで実現しました。Luaは埋め込みスクリプト言語としてこのアイデアを引き継ぎました。しかし、TclとLuaの両方はCをスクリプトし、C関数にアクセスするために「グルー」コードが必要です。LuanはグルーコードなしでJavaに直接アクセスできます。そして、LuanはJava JVM上で動作するため、移植性があります。つまり、Luanを使用すると、必要な機能を含むJARファイル(JVMファイル)を直接使用でき、これは移植可能です。

Luanは現代のソフトウェアの複雑さを拒否します。Link My StyleSuper ResumelovepaperworkLuan ChatLuan Editorを含む多くのプロジェクトで使用されてきた成熟したソフトウェアです。Luanがあなたにアピールするかどうかは、あなたが誰であるかに依存します。現代文化のメンバーはシンプルさを嫌うため、Luanを好まないでしょう。Luanはシンプルさを重視する良い文化にのみアピールしますので、私が知っている2つの良い文化に向けてお話しします。

メノナイトのために

ここでは、現代文化を拒否し、現代文化の一部ではないメノナイトに向けてお話ししています。

メノナイトはplain peopleとして自分たちを表現し、シンプルで質素な服装や教会を好みます。また、メノナイトは仕事のためにシンプルで質素なツールを好むことに気づきました。Luanはシンプルで質素なプログラミング言語であり、メノナイトにアピールするはずです。

旧約聖書の信奉者として、少しヘブライ語を学びましたが、旧約聖書のヘブライ語がいかにシンプルで質素であるかに驚きました。この文体が大好きです。深遠なアイデアがシンプルで直接的な言葉で表現されています。Luanはこのスタイルをプログラミングで可能にするように設計されています。さらに、私は旧約聖書の知恵をプログラミングとLuanの設計に適用しました。

日本人のために

日本は、私が知っている限り、品質を重視する唯一の国です。日本人は、品質が物事を清潔でシンプルに保ち、継続的に改善することの結果であることを理解しています。私はこれらのことをLuanに適用しました。日本のアイデアが私のプログラミングにどのように適用されるかをここで議論しました。これらの原則すべてが私のコードに見られると思います。

Luanのプログラミングスタイルは、日本の組木や金継ぎの芸術に例えられます。組木で日本人が木片を使って釘などを使わずに強い構造を作るように、Luanはシンプルで効果的かつ強力なJavaライブラリを使用し、現代のプログラマーが好む不要な部分を使わずに強力なプログラムを作ります。このJavaライブラリをアプリケーションに組み込むというアイデアは、上記のスクリプトのアイデアです。金継ぎでは、壊れた物を金や銀などの視覚的に美しいもので修復します。これは古い壊れた物を捨てる代わりに行われます。再びLuanは同じことをします。Luanが新しい機能を必要とする場合、私は西洋文化がまだ良かった時代に書かれた古いJavaライブラリを探します。それにバグがあるか不完全であれば、私のコードを追加して修正します。これらを結びつけて、壊れたJavaライブラリを金継ぎのアプローチで修復します。そして、これらを組木のようにコンポーネントとして扱い、Luanを使ってアプリケーションに組み立てます。

西洋のソフトウェアはこれらのアイデアに従いません。代わりに、ただただ複雑さと信頼性の低さが増していきます。それに対して、Luanは継続的な改善の結果として年々シンプルで信頼性が高くなっています。現代の西洋ソフトウェアを使用して日本の品質と信頼性の基準を達成することは期待できません。ですから、代わりにLuanを使用してください。方法を見るには、Learning Luanを読んでください。または、Luanを見たいだけなら、Luan Tutorialを参照してください。