mattn:何にも向いていません。 これらは難解プログラミング言語と呼ばれていて、意図的に読むのが難しくなるように設計されたプログラミング言語(esolangと呼ばれています)です。 これらは実用性を考えたものではなく冗談または言語処理系としての研究目的で開発された物です。 難解プログラミング言語 - Wikipedia https://ja.wikipedia.org ですがせっかく質問を頂いたので、難解プログラミング言語 whitespace の実用性を考えてみました。 Whitespace - Wikipedia https://ja.wikipedia.org whitespace は半角スペース、タブ文字、改行文字だけで処理が書けるプログラミング言語です。改行文字やタブ文字が可視化されるテキストエディタでなければ何が書かれているのかすら分からないプログラミング言語ですので、秘密の暗号の様に whitespace を知っている人同士に実装を受け渡しできるかもしれませんね。 whitespace で書いた FizzBuzz を掲載しておきます。 僕が Go 言語で書いた whitespace の処理系のソースを紹介しておきます。試す場合はお使い下さい。 GitHub - mattn/ws Contribute to mattn/ws development by creating an account on GitHub. https://github.com なお whitespace は3つの文字を使って27種類の組み合わせを作り、それをオペレータとして利用するプログラミング言語ですが、この3種類のうち半角スペースとタブ文字を他の物に置き換える事で独自のプログラミング言語を作る事ができます。 例えば半角スペースを「ウ」、タブ文字を「ホ」に置き換えるだけで簡単に「ゴリラ言語」を実装する事ができます。 ゴリラ言語の読み方 - Qiita 先日、「ウ」と「ホ」と改行文字だけでプログラミングできる「ゴリラ言語」を作りました。そういえば先日、「ウ」と「ホ」と改行だけでプログラミング出来るゴリラ言語作ったのでソース置いておきますね。「ウホ… https://qiita.com(Read more)
kmizu:元々、ある種のジョークとして作られたものがほとんどなので強いていうなら「娯楽として楽しむため」になるでしょうか。たとえば、CコードをBrainf**kに変換するような変換器を書かれた猛者がいたりするように。あるいは、別の方向としては「難解言語を使ってどれだけ高度な処理ができるか」なんてのもある種のプログラマーたちの遊びになっていますね。 難解プログラミング言語自体が「プログラミングそのものを趣味とする」人たちが作り出したものなので「楽しむ」が第一義で、役に立つことは絶望的と言えましょう。 ただ、これだけで終わっても芸がないのでもうちょっと考えてみましょう。 たとえば、Brainf**kは言語仕様が極めて小さいにもかかわらずチューリング完全です。チューリング完全であるというのは現存するどのプログラミング言語とも能力的には等価なわけで「こんなので実用プログラム書けるわけがねえ」と思っても「理論上は」可能なんですよね。とはいえ、Brainf**kにはグラフィックス機能やファイル読み込み/書き込みの機能がない、つまり現実世界と対話するためのI/Oが限られているので、実用的なプログラミング言語と比べた場合の限界はあるのですが、計算処理についていえば他の言語でできる処理をなんでもこなせるわけです。また、ここから話を膨らませてBrainf**kに最低限のファイルI/OやネットワークI/Oをつけたものを考えると、本当に実用言語で書かれたプログラムをBrainf**kに変換することも一応は可能なわけで、ネットワーク通信をするプログラムをそういうBrainf**k+++(仮)に変換するなんてのも楽しそうです。 そういった事から「計算」について思いを馳せるのも一興だと思いますし「この難解プログラミング言語は通常のプログラミング言語とは似ても似つかないけど、なぜこれでチューリング完全になるといえるのだろう」など考察を深めるのもまた有意義だと思います。世の中、即物的に役立つ、役立たないだけで決めても楽しくありませんし、そういう視点を持つことも重要だろうと思ってあえて書いてみました。(Read more)