Factorの学び方

Factorをゼロから始めるための概要を紹介します。


Factorを学ぶための優れたリソースはたくさんあります。

  • Andrea FerrettiのFactorチュートリアルは、言語を順を追ってじっくり解説するもので、スタックの基礎からメタプログラミング、分散コンピューティング、Furnaceを使ったWeb開発へと進んでいきます。

  • Factor in 2022は、John BenediktssonとDoug Colemanによる2022年のトークで、言語の概要と、今日使うとどんな感じなのかを紹介しています。

  • Leo BrodieのThinking Forthは、Forthの背後にある設計哲学と思考の習慣についての古典です。FactorはForthではありませんが、連結的でスタック指向の考え方を受け継いでおり、Brodieの本はその考え方を学ぶための最良の入門書です。

  • Factorのドキュメントは素晴らしく、非常に充実しています。オフラインでも利用でき、GUIのListenerからもコマンドラインからもすぐに検索できますし、同じ検索可能なドキュメントがオンラインでも公開されています。

  • Björn Lindqvistのplayground-factorは、興味深いTipsやテクニックが詰まったリポジトリです。Factorの開発者の一人であるBjörnはあまり頻繁には更新しておらず、まだWIP(作業途中)です(内容の多くはGitHub Wikiへ移行中です)が、それでもとてもクールなものです。

  • Learn X in Y MinutesにはFactorのチュートリアルがあります。決して網羅的ではありませんが、よいリファレンスであり、始めるには十分です。

  • Rosetta Code: Factorは、プログラミングのクリストマシーサイトの一部です。他の何百もの言語に混じって、Factorでの多くの問題の解答が載っており、すでに知っている言語と比較できます。よいリファレンスであり、解答作りの出発点になります。

最後に、そしておそらく一番重要度は低いですが:

  • Stack Overflow。大きなコミュニティはありません(というか、私を含めて3人ほどです)が、本当にどうしても行き詰まったらそこで質問すれば、きっと誰かが助けてくれます。

  • メーリングリスト。ここでは、Factorに関するどんなことでも質問でき、コラボレーターが親切に答えてくれます。

  • FactorはIRCにいます! ぜひ参加してください。喜んでお手伝いします。

  • Joy、Forth、そして連結的/スタックベースのプログラミング全般について学び、読みましょう。

  • Common Lisp Object Systemについて学び、読みましょう。CLOSは世界で最も先進的で革新的なオブジェクトモデルと広くみなされており、Factorのオブジェクトモデルはそれに強く基づき、そこから着想を得ています。

  • 多くの面で、FactorはLispです。後置記法で、ポイントフリーで、関数的で、裏返しで後ろ向きの、奇妙な見た目のLispですが、多くの思想は同じです。そのため、Lispを学ぶと役立つかもしれません。できれば、関数と変数が名前空間を共有するLisp-1を。関数的プログラミングでは関数は値だからです。私がささやかにお勧めするのはScheme、あるいはもっと現代的で実用的なものを求めるなら、Schemeの子孫であるRacketです。

最後に、FactorはほぼすべてFactor自身で書かれています。ですから、ソースコードを読み、知らないワードはドキュメントで検索しましょう。