読者です 読者をやめる 読者になる 読者になる

セカイ内存在証明

それは多分、単なる思い付き

なんかもう200言語書いたしQuine Advent Calendar 2014も終わらせていいかな、という気がするので終わりにします

この記事はQuine Advent Calendar 2014の182日目です。ついでに最終日でもあります。

タイトルの通りです。お疲れさまでした。最終日なので敢えてQuineにしません。あんな小手先だけのQuineを書くくらいなら何もない方がマシでしょう。

github.com


なぜ終わりにするのか?

色々と理由はありますが、最近は特に忙しくて、Quineを書くのに時間を取るのが難しくなってきたからです。というか、最初の方は一つのQuineを書くのにせいぜい10分くらいしかかからなかったのですが、最近はマイナーすぎる言語を使っているせいか、一つのQuineを書くまでに、まず言語を見つけるまでに10分、構文を調べて20分、Quineを書いて10分で40分くらいかかっています。この時間がかなりキツいです。

それと、ちょうど6ヶ月になるので微妙にキリがいいからです。

他にも、200言語でQuine書いたぞーってRedditに載せたけどまったくバズらなかったのでモチベーションが下がったこともあります。Reddit厳しくね? あとは、時間がさすがに量産型なQuineを書くのに飽きてきたというか、ちょっと手の込んだ新作を書きたいというか‥‥。

とまあ、大変しょーもない理由を並べつつ、Quine Advent Calendar 2014を終わりにしたいと思います。

結局どれくらい書いたの?

Quine Advent Calendar 2014は2014年12月1日にボクが思い付き(「そういやAdvent Calendarの季節だなー。なんかやりたいなー」みたいな)で始めて、年を跨いで2015年6月1日まで続きました。ちょうど6ヶ月、182日です。

そのうち、177日をボクが書いて、残りの5日をmameさんこと id:ku-ma-me さんに書いていただきました。mameさん、本当にありがとうございます! HDDが壊れたときはどうなるかと思いましたが、無事続けることができたのはmameさんのお陰です。

ちなみに、今日を除く181日間で、ボクが書いた文章の量(READMEのサイズ)は、さっきwcコマンドで測ってみたところ、2133行67160文字でした。半年で原稿用紙100枚分ちょっとしか書いてないのは何だか笑えます。

また、git logで探ってみたところ、Quine Advent Calendar 2014以前に書いていたQuineはPARI/GPまでの26言語で、そこからEzhilまでの174言語はQuine Advent Calendar 2014の流れで書いみたいです。というか182日間に174言語って、本当にほぼ毎日新しい言語でQuine書いていたんですね。冷静に考えるとかなり頭おかしいと思います。

印象に残ったこととか

ともかくたくさんのプログラミング言語に触れました。200言語実際に書いたことある人って、多分世界に数人いるかいないかみたいなレベルだと思ってます。ただ、それでもまだボクの知らないプログラミング言語もたくさんあります。少なくともここには1500言語の99 Bottles of Beerがありますし。

そういう意味ではプログラミング言語の網羅なんてできっこないのですが、実際に動かせる処理系で実際に動作を確認したQuine、という点ではかなりがんばったんじゃないでしょうか。処理系の落とせるURLを200言語貼るのは、途中からやりはじめたのでかなり大変だった記憶があります。

それと、Quineを書くときには単に短かくすることよりその言語の魅力をなるべく引き出せるように拘っていたのですが、毎日書いているとどうしても厳しいところがあった気がします。その日始めて触れた言語の魅力なんて分かるかー、という。なので、いくつかのQuineは機会があったら書き直したいな、と。

また、このQuine Advent Calendar 2014をきっかけとしてmameさんなど何人かの方と知り合うことができました。そして、id:TAKESAKOさんやid:shinhさんなど、変なプログラムを書く界隈にはすごい人達がたくさんいます。そういった方に少しでも近付くことができたらな、と思っていました。

思い残すこと

AdaとFortress、X10、Chapel、あとBCPLとかHSPでQuine書いてないので書きたいです。他にもShakespeareとかChef、UnlambdaみたいなEsolangでもQuine書きたいですね。

それと、なんか手の込んだすごいQuine書きたいです。

最後に、

Quine Advent Calendar 2014のリポジトリ遡ってたらday_009には「らしさを保ったコードでありたい。」とか書いてあって、そんな初期からその言語らしさを出すことを意識してたんだな、と感慨に耽っています。

もし今年もQuine Advent Calendarをやるのであれば、そのときに会いましょう。

ありがとうございました!!