Skip to content

Instantly share code, notes, and snippets.

@lagenorhynque
Last active July 12, 2023 16:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lagenorhynque/fc36acf7bba672f83990bbad67a76cd9 to your computer and use it in GitHub Desktop.
Save lagenorhynque/fc36acf7bba672f83990bbad67a76cd9 to your computer and use it in GitHub Desktop.
Clojurian Conquest

Clojurian Conquest

"Land of Clojure"を建国しよう


(defprofile lagénorhynque
  :id           @lagenorhynque
  :reading      "/laʒenɔʁɛ̃k/"
  :aliases      ["カマイルカ🐬"]

  :languages    [Clojure Haskell English français]

  :interests    [programming language-learning law mathematics]

  :commits      ["github.com/lagenorhynque/duct.module.pedestal"]

  :contributes  ["github.com/japan-clojurians/clojure-site-ja"])

twitter icon


技術書典7でClojure本を出します (*> ᴗ •*)ゞ

techbookfest7 paren-holic


  1. 状況

  2. 選択肢

  3. 過去

    • 内政史
    • 外交史
  4. 現在

  5. 未来


1. 状況


我々Clojurianは安住の地なき流浪の民

  • 活躍の場を求めている

2. 選択肢


  • a. 非Lisp族の支配を受け入れる 😇

  • b. Clojurian国家に移住する 🧭

  • c. Clojurian国家を建設する 👑

    • 未開の土地を開拓する 🏜

    • 既存の土地を征服する ⚔ 🤝


Clojurian Conquest

Clojurianによる征服王朝として

"Land of Clojure"を建国しよう!(?)

Lisp alien


3. 過去


2016年: 社内での課題

  • Clojurianは基本的に私しかいない

    • Lisp系言語経験者も少ない

    • 関数型プログラミング/言語への理解はある

  • Scalaという強敵(ライバル)の領土は広大

    • Scalaは事実上の「国教」

    • 静的型付言語を好む傾向も


2016年: 国内コミュニティの課題

  • 日本語資料がとても少ない

    • 数年前に盛り上がりの痕跡が……

    • 英語ならドキュメントも書籍も記事もたくさん

  • Clojurian国家も少ない

    • Clojurianが一国に集中しすぎるのもリスク

「征服者」としての基本方針

  • Clojurianは基本的に私しかいない

    • → Clojure/Lisp 宣教 活動
  • Scalaという強敵(ライバル)の領土は広大

    • → 活躍の場の模索(= 侵略)
  • 日本語資料がとても少ない

    • → 日本語情報の継続的発信(= プロパガンダ)
  • Clojurian国家も少ない

    • → "Land of Clojure" 建国

内政史

社内での活動


2016年7月12日

Clojure REPL botを社内Slackで稼働開始

clj-slackbot input

clj-slackbot output


  • slash commandで任意のClojureのフォームの read, eval 結果を返してくれるもの

  • lagenorhynque/clj-slackbot

  • Clojureによる征服活動の第一歩(?)

    • いつでもどこでもClojure REPLにアクセスできるようになった🉐

  • 主な利用ライブラリ

2017年1月12日

オプトのプロダクトADPLAN ver.7のリリース作業を支援するSlack bot "release-reporter"を稼働開始

release-reporter input

release-reporter output


  • GitHub APIとGoogle Sheets APIなどを用いて直近リリース対象のpull request情報を一覧化するもの

  • 開発のきっかけは2016年12月20に開催された社内ハッカソン

    • PythonスクリプトだったものをSlack bot化
  • 現在までの2年以上ADPLANの開発を陰ながら支え続けている🉐

    • ※ 私は2017年1月末でこの開発チームを離れた😅


2017年7月

社内依頼管理システム"TASK DRIVER"のバッチをClojureで開発開始🎉(自治権獲得?)

  • APIをPHP/CodeIgniter、フロントエンドをTypeScript/Angularで開発するWebサービスの片隅でついにClojureが使われ始める
    • ただし、コードベースに占める割合はわずか😅


2018年2月8日

社内でSICP勉強会を開始(Lisp 宣教 活動?)

  • 毎週木曜日夜に1時間開催(次回で第60回🎉)

  • 主催者と参加者の負担を最小限にするため、予習は前提とせずその場で本文と演習問題に取り組む

  • Schemeとコンピュータサイエンスに限らず他のLispや関数型言語の話題で雑談しつつ楽しく学ぶ

  • 2018年7月18日の第18回から社外にも公開


2018年9月

広告入稿支援ツール"Opt Editor"のリニューアル版で開発メイン言語がClojureに最終決定🎉(独立?)

  • APIをClojure、バッチをScala、フロントエンドをTypeScript/Vue.jsで開発するWebサービス

    • 2019年7月25日現在のコードベース構成比
      • Clojure : Scala : TypeScript = 35 : 35 : 10
  • 本格的なREST API開発に向けた技術検証は同年6月から始めていた



2018年11月8日

"Opt Editor"開発メンバー向け技術勉強会を開始(Clojurian化政策?)

  • 毎週木曜日昼に1時間開催(半年以上継続中💪)

  • 社内でも比較的新規な要素技術を複数採用しているため、メンバーのキャッチアップを支援

  • Clojureについて重点的に講義&ハンズオン


2018年11月22〜23日

開発合宿で社内共有DBに対するAPI開発💪(領土拡大?)

  • 試作とはいえ社内で初のGraphQL API開発事例


外交史

コミュニティでの活動


2017年1月28日

第十八回 #渋谷javaで初のLT登壇


2017年3月

Clojure公式ドキュメント翻訳プロジェクトに参加


2017年9月22日

市ヶ谷Geek★Night#14 市ヶ谷java 〜JVM言語の玉手箱〜で初登壇


2018年1月16日

clj-nakano#3 Clojure上映会 Spec-ulationで初登壇


2018年2月15日

clj-ebisu #2で初登壇


2018年3月29日

Shibuya.lisp lispmeetup #62で初登壇


2019年4月14日

paren-holicとして技術書典6に初サークル参加


2019年5月27日

Fun Fun Functional (1) 関数型言語初心者向けLightning Talks!!で初登壇


2019年7月3日

(dosync radio)としてPodcast第1回を公開


4. 現在


  • "Land of Clojure"がついに成立し安定し始めた
    • 着々とClojurianが増えている🉐

    • Scalaの民とも平和共存している(はず😅)


5. 未来


  • さらなる勢力拡大へ

    • Clojurianを社内外で一大勢力に💪

    • Clojureを珍しくないありふれた選択肢にしたい

  • 新たな「征服者」や「開拓者」にも期待👀

  • 「移住者」も歓迎😆

Lisp alien


Further Reading

#!/usr/bin/env bash
# npm install -g reveal-md
reveal-md clojurian-conquest.md --theme night --highlight-theme monokai-sublime -w $@
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment