![[_style]]
# 「言葉」と「名前」<br>をめぐるソフトウェア<br>エンジニアの冒険
note:
2023/01/27
- [「飯塚 LT 大会」と「将来が不安カンファレンス」と「ピザ」 vol.1 - connpass](https://ijgngroup.connpass.com/event/273313/)
- [「言葉」を設計しよう、組織の「文化」を作るために|宮崎ひび|note](https://note.com/hibi_myzk/n/nc0e4a88234ce)
- [[プログラミングは「名前」が9割。]]
---
## 🍣 宮崎ひび
https://hibi.miyazaki.jp
### イジゲングループ株式会社
テック座敷童子(自称)
CHAOS TIMES 編集長(自称)
![[Public/Slide ▶️/福岡ゆるっともりっとLT大会 by サト研(仮)/images/ijgngroup_bannar.png|500]]
---
## 仕事 as a 趣味の延長 (SaaS)
### Wantedly で公開
- [ソフトウェアエンジニアの愉しみ](https://www.wantedly.com/companies/ijgngroup/post_articles/466912)<!-- element class="small-text" -->
- [ソフトウェアエンジニアの健康ハック(資源の消費削減編)](https://www.wantedly.com/companies/ijgngroup/post_articles/470054)<!-- element class="small-text" -->
- [現役ソフトウェアエンジニアが大学共通テスト「情報Ⅰ」を解いてみた](https://www.wantedly.com/companies/ijgngroup/post_articles/487175)<!-- element class="small-text" -->
### イベント
- [「飯塚 LT 大会」と「将来が不安カンファレンス」と「ピザ」 vol.1](https://ijgngroup.connpass.com/event/273313/)<!-- element class="small-text" -->
---
## 仕事 as a 趣味の延長 (SaaS)
### 社内限定公開
* 💎 [[ブロックチェーン上で過ごした GW の感想 2022]]<!-- element class="small-text" -->
* 🥷 [[ミラクルに憧れつつ検尿を提出する仕事論]]<!-- element class="small-text" -->
* 🥰 [[感情分析 bot を作ってみた]]<!-- element class="small-text" -->
* 📚 [[とある CTO の読書案内 2022 GW]]<!-- element class="small-text" -->
* 🤹 [[Clip 📎/Technology/最も賢い人々が週末にやっていることが、10年後の他のすべての人々が平日にやっていることになる]]<!-- element class="small-text" -->
* などなど<!-- element class="small-text" -->
---
## 個人活動
<split left="1" right="1">
![[hibi_speaking_in_taiwan.jpg|400]]
- シングルファーザー
- 執筆、登壇
- ボランティアカメラマン
- その他
</split>
---
![[Public/Slide ▶️/飯塚 LT vol.1/images/シングルぱぱ起業家はがんばらない_amazon.png]]
note:
[Amazon.co.jp: シングルパパ起業家はがんばらない 自由に生きる思考法 eBook : 宮崎ひび: 本](https://amzn.to/3DGedvV)
---
<iframe width="840" height="469.5" src="https://www.youtube.com/embed/PMptcTD3XDE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
---
<iframe width="840" height="469.5" src="https://www.youtube.com/embed/ohGJ-fMvM5k?controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
---
## 最近興味あること
- web 3
- Smart Contract > Deploy > △ ¥500,000 <!-- element class="small-text" -->
- ゼロ知識証明
- Blockchain > ZK Rollup >ゼロ知識証明 <!-- element class="small-text" -->
- 圏論
- 純粋関数型言語 > Haskell > IO monad > 圏論 <!-- element class="small-text" -->
- 量子コンピュータ
- [スイッチサイエンス、量子コンピュータ始めるってよ – スイッチサイエンス マガジン](https://mag.switch-science.com/2022/09/19/spinq/) <!-- element class="small-text" -->
- ¥1,188,000 <!-- element class="small-text" -->
- 購入申請 → 却下 <!-- element class="small-text" -->
note:
- 旧タイトル「生物学出身ソフトウェアエンジニアが工学系の学生さんに教えてほしいこと」
---
## ずっと興味あること
「言葉」 <!-- element class="ex-large-text" -->
---
![[「言葉」を設計しよう.002.jpeg]]
---
![[「言葉」を設計しよう.003.jpeg]]
---
![[B00H6XBHMY.01._SCLZZZZZZZ_SX500_.jpg]]
[Amazon.co.jp: グレート・ギャッツビー (光文社古典新訳文庫) eBook : フィッツジェラルド, 小川 高義: 本](https://amzn.to/3HaV3yT)
---
![[「言葉」を設計しよう.004.jpeg]]
---
## 分かる = 分ける
---
![[B009FUWQ62.01._SCLZZZZZZZ_SX500_.jpg]]
[寝ながら学べる構造主義 (文春新書) | 内田 樹 | 哲学・思想 | Kindleストア | Amazon](https://amzn.to/3Dj0bzY)
---
![[「言葉」を設計しよう.005.jpeg]]
---
- [総論 複数のプログラミング言語を学ぶ意義 | 日経クロステック(xTECH)](https://xtech.nikkei.com/it/article/COLUMN/20070618/275142/)
- [まつもとゆきひろ氏が明かす、Rubyの原点 プログラミング言語を作ろうと思った理由 - ログミーTech](https://logmi.jp/tech/articles/322453)
- [Rubyの父・まつもとゆきひろを「言語」に誘った本 | 日経BOOKプラス](https://bookplus.nikkei.com/atcl/column/041500052/041500001/)
- 『[バベル-17](https://amzn.to/3kNnaNh)』(サミュエル・R・ディレーニイ著、ハヤカワ文庫)
note:
- [[複数のプログラミング言語を学ぶ意義]]
- [[Rubyの父・まつもとゆきひろを「言語」に誘った本]]
---
### プログラミング言語が<br>思考を変える例
- 関数型言語を使ってみる
- `map` や `reduce` など
- 手続き型の言語にも取り入れられている
---
![[「言葉」を設計しよう.006.jpeg]]
---
![[B01LW1BC2L.01._SCLZZZZZZZ_SX500_.jpg]]
[Amazon.co.jp: ノンデザイナーズ・デザインブック [第4版] eBook : Robin Williams, 吉川 典秀, 小原 司, 米谷 テツヤ(日本語版解説): 本](https://amzn.to/3kLguiy) <!-- element class="small-text" -->
---
## 青木まりこ現象
[青木まりこ現象 - Wikipedia](https://ja.wikipedia.org/wiki/青木まりこ現象)
> **青木まりこ現象**(あおきまりこげんしょう)とは、[書店](https://ja.wikipedia.org/wiki/%E6%9B%B8%E5%BA%97 "書店")に足を運んだ際に突如こみあげる[便意](https://ja.wikipedia.org/wiki/%E4%BE%BF%E6%84%8F "便意")に対して与えられた呼称である。
---
## ツァイガルニク効果
[ツァイガルニク効果 - Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%84%E3%82%A1%E3%82%A4%E3%82%AC%E3%83%AB%E3%83%8B%E3%82%AF%E5%8A%B9%E6%9E%9C)
> **ツァイガルニク効果**(ツァイガルニクこうか、Zeigarnik effect)は、人は達成できなかった事柄や中断している事柄のほうを、達成できた事柄よりもよく覚えているという現象。
---
## コンウェイの法則
[メルヴィン・コンウェイ - Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%AB%E3%83%B4%E3%82%A3%E3%83%B3%E3%83%BB%E3%82%B3%E3%83%B3%E3%82%A6%E3%82%A7%E3%82%A4)
> 「システムを設計する組織は、そのコミュニケーション構造をそっくりまねた構造の設計を生み出してしまう」
(原文: "Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.")
---
![[「言葉」を設計しよう.007.jpeg]]
---
![[4274065979.01._SCLZZZZZZZ_SX500_.jpg]]
[ハッカーと画家 コンピュータ時代の創造者たち | ポール グレアム, Graham,Paul, 史朗, 川合 |本 | 通販 | Amazon](https://amzn.to/3WIvI52) <!-- element class="small-text" -->
---
## プログラミング言語の力(例)
- オブジェクト指向<!-- element class="small-text" -->
- 高階関数<!-- element class="small-text" -->
- マクロ<!-- element class="small-text" -->
- 並行処理<!-- element class="small-text" -->
- 型推論<!-- element class="small-text" -->
- 遅延評価<!-- element class="small-text" -->
- ジェネリクス<!-- element class="small-text" -->
- などなど<!-- element class="small-text" -->
---
![[「言葉」を設計しよう.008.jpeg]]
---
![[B00GRKD6XU.01._SCLZZZZZZZ_SX500_.jpg]]
[エリック・エヴァンスのドメイン駆動設計 | Eric Evans, 和智右桂, 牧野祐子, 今関剛 | 工学 | Kindleストア | Amazon](https://amzn.to/3HzWl84) <!-- element class="small-text" -->
---
![[「言葉」を設計しよう.009.jpeg]]
---
![[B00O2O7JEA.01._SCLZZZZZZZ_SX500_.jpg]]
[あなたの人生の物語 | テッド チャン, 浅倉久志 | 英米の小説・文芸 | Kindleストア | Amazon](https://amzn.to/407Iv43) <!-- element class="small-text" -->
---
![[B009DEMA02.01._SCLZZZZZZZ_SX500_.jpg]]
[虐殺器官 (ハヤカワ文庫JA) | 伊藤 計劃 | 日本の小説・文芸 | Kindleストア | Amazon](https://amzn.to/3j5d0Ho) <!-- element class="small-text" -->
---
## プログラミングは<br>「名前」が 9 割
- 適切な名前をつけたら勝ったも同然
- 時間をかける
- リファクタする
---
## プログラミングは<br>「名前」が 9 割
- ハードウェアの制約
- メモリ、ディスプレイ、パンチカード <!-- element class="small-text" -->
- LISP の変数名は長い(諸説あります)
- 変数名にメタ情報を載せたい(型情報など) <!-- element class="small-text" -->
- Clojure の meta <!-- element class="small-text" -->
- IDE の進化
- 型情報のプレフィックス <!-- element class="small-text" -->
- Ruby の `group.has_member?`
note:
- [vallog: なんで Lisp/Scheme の変数名は長いの?](https://valvallow.blogspot.com/2010/06/lispscheme_20.html)
- 1行78文字ポリシー
---
## 設計も「名前」が 9 割
クラス図が<br>動き出す。 <!-- element class="ex-large-text" -->
---
## GitHub Copilot
[GitHub Copilot · Your AI pair programmer · GitHub](https://github.com/features/copilot/)
![[github_copilot_page.png|600]]
---
![[Mark_IjgnGroup_Color.png|600]]