ブレインストーミングみたいなもののまとめその1
目的
プログラミング経験の浅い人に、視覚的にわかりやすい形で関数型プログラミングに入門してもらう
評価と関数適用のタイミング、名前束縛の範囲を可視化する
エディタ
数式の表現
評価順序は、単純により上に配置されているノードの評価が優先されるようにする
再帰についてはまだ上手い解決法はまとまらず
OCamlのようなlet recを使う?
デザイン
ビジュアル
かっこよくしたい
FigmaのUIに似せる?
ダークテーマがほしい、というかそれがデフォルトでもよいのでは
型やパターンマッチで色や形状に変化をもたせたい
フォントにこだわりたい(Fira Codeを使うとどんな感じだろうか)
フォント変える機能
エディタの背景をcanvasにしてプログラム側からいじる
バウンド系アニメーションとかあると可愛い感じになりそう
Tidal Cyclesみたいなやつ
デバッグ用のコンソールを用意する
サウンド
Web Audio APIを使って音を鳴らす
関数適用時に音を鳴らす
操作
AdobeライクにSpace+ドラッグで画面移動
テキスト入力があるとスペース入力され続ける問題
永続化
IndexedDB
LocalStorage
クラウドサービス(たいへん)
コード共有
Wandboxのような感じで共有リンクを発行
エディタ画面をTwitterカードに出すと楽しそう
言語実装
代数的データ型+パターンマッチ
カリー化
組み込み関数として+、-、*、/
静的型付け
Haskellのdo記法やF#のコンピュテーションのような糖衣構文
一旦インタプリタを実装することにしているが、コンパイラを実装して「動的に生成した WASM をその場で走らせる」のもあり
Rustが厳しければ他のAltJSもあり
デプロイメント
ホスティング
Zeit/Now か Netlify でホスティング
Release したタイミングで自動デプロイされるように設定できる
ドメイン
knights.devがほしい。お高い
ドキュメンテーション
ドキュメント
Netlifyだとpushされたら自動的にビルドするまで簡単に出来るのでよさそう
workspaces/documentを作ってもいいかもしれない
チュートリアル
チュートリアルほしい。Visual Programingをいかしたかっこいいやつ。なんなら音がなる
開発
言語(自然の方)
積極的に英語を使っていきたい
特にコードコメントとコミットコメントはIMEの切り替えが発生するため英語にしたい
CONTRIBUTING.md 等も順次翻訳を進めていきたい
フル英語も厳しいので日本語に添える感じで
その他
テストは書こう
用語の定義がややこしいので用語集がほしい
簡単なものでよいので全体の構成図がほしい
ブランド・アイデンティティ(ロゴやテーマカラー、フォント、使用するアイコンなど総称してこう呼ぶことにしてみる)
ロゴ(案)
チェスのナイト と λ (ラムダ) をかけ合わせたロゴ
写実的ではなくフラットな感じで、黒基調にネオン系の色でアクセントをつけたり