Aumy

プログラミングと計算機のオタク.

コンタクト

興味

すき

好き嫌いが激しい.

プログラミング言語

コンピュータを駆使して何かを作ることも好きだけどプログラミングそのものが好きというタイプ. 主に好きな言語の特徴は以下.

  • 静的型付けで型推論がある
  • 型クラス相当がある (型を直交的にグルーピングできる機能がある)
  • 代数的データ型,パターンマッチがある
  • 関数型言語である
    • 第1級関数
    • 関数呼び出しに括弧が不要
    • mapなどの高階関数が標準で多く存在する

JavaScript

型変換やthisのバインドなど面倒な仕様も多いものの, WebブラウザでDOM操作ができるという唯一無二の特徴を生かしてまともな方向へと進化してきたといえる言語. 特にオブジェクトをレコードっぽく扱うところは他にない特徴だと思う. オブジェクト指向っぽくも関数型っぽくも書けるものの専ら関数型を推しており. その手のプロポーザルをそれなりに追っている. ちなみにこのWebサイトは丁寧に心を込めて手書きしたHTML, CSSで造られている計算機資源にやさしいJavaScript非使用Webサイトです.

TypeScript

一番良く書ける言語.JavaScriptの問題点を引きずったままという点がそのまま利点でもあり, JavaScriptに無理やり型をつけるため無茶苦茶な型が入って遊ぶのが楽しいという面白さがある. TypeScriptのような型を健全性を保ったまま導入したら面白そうだと思っているが, どこまでなら健全なのかというのはよくわかっていない.

Rust

かなり好きな言語.とても強い式指向,シャドーイング,強い型推論,トレイト,明示的な参照などなど, JS/TSにはない強力な機能が揃っていて書くのが楽しい. ライフタイムが難しいしC/C++経験がないとありがたみが感じにくいところ, 関数型言語をやると関数を中心に文法が冗長なところは気になる. メモリ安全性を抜いてもまったく世の中で通用するポテンシャルがあると思う.

OCaml

かなり好きな言語. Rustから参照の複雑性を抜いて型推論がちゃんと動いて構文が軽い言語を求めたらこれになりがち. 型クラス相当がなくアドホック多相できないところ,レコードの型推論が気持ち悪いところ, 型注釈がやりづらいところあたりが不満点.型推論はあらゆるものに使ってしまっても却って読みづらいので, 型注釈を適宜挿入したいのだが,型注釈がHaskellと異なっていて定義と分けられない. SATySFiを触ったときにOpamで苦しめられて以来雰囲気が険悪だったがやってみたらだいぶ面白かった. おそらく私の求める言語はOCamlとRustとTypeScriptの間にある.

Nix

純粋関数型DSLで宣言的にパッケージが書けるパッケージマネージャ. 開発環境を構築することもでき,direnvと組み合わせればディレクトリに入って direnv allow を叩くだけで完璧な開発環境がセットアップされてしまう. Dockerに押され気味かもしれないがNixでDockerコンテナも書けるらしい.

React

Webフロントエンド(広義)フレームワークでは一番好き.やはりTSとJSXで型安全に要素が書けるのが大きい. React Hooksで複雑性が隠蔽できる点もよいが, Hooksの規約がJavaScriptのsyntax, semanticsの上にさらに乗っかってくる点は良くないと思う. Hooksのような仕組みを言語組み込みで提供することはできないだろうか?

漫画,アニメなど

それなりに摂る.鬼滅の刃,呪術廻戦のような いまや 一大メジャー作となってしまったような作品も (人気が出る前の本誌連載段階から ) 見ているし,少女終末旅行とかぬるめたのような萌えオタクっぽいものも観る.

音楽

それなりに聴く.マスロックとエレクトロニカの周辺をよく聴く気がします. Pendulum,ヒトリエ,NUITO,Animals as Leaders,bohemianvoodoo,toe,Spangle call Lilli line,LITE,Mili,パスピエ,フレデリック,サカナクションとか.

「ぼくらの16bit戦争」に沼に落とされて以来変拍子好きが治りません.「HIMITSU GIRL'S TOP SECRET」とか「5カウントハロー」とかが好き.

苦手なもの