2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

関数型プログラミングのコンカレント性って違うじゃね

Posted at

はじめに

関数型の特徴として、よくコンカレント性が強調されているのだか、組込みとはなんか違う。その食い違いについて、ここに書きます。

組込みでのコンカレント性

組込みではタスク同士が相互に同期を伴って、動いているもの。組込みは動き(制御)を表現するもの、その動きは状態と状態間の話が多いため、どうしても、同期が必要となる。
多いと言ったのは、場合によるのでそうだとは言い切れない。
英語という言語で例えれば、状態動詞(be, know..)と動作動詞(walk, eat..)があるの同じように、プログラムの世界と言え、所詮、すべて同じだと思う。
だから、組込みにはこの動作動詞が多く、その相互間の連絡が必要となる。
組込みばかりだったので、「コンカレント性は同期を伴って、同時に動いてる事」だと思う。

じゃ、関数型では

プロセスが各々独立しているもので同期は必要としない、いや、影響されるのを排除している。排除した結果、独立となったんだ。排除、独立、どっちが先なんてどうでも良いけど。
独立しているなら、「コンカレント性って、当然の結果じゃん、なんなのその自慢は?」、と思う。
この事について、以前、ChapGptに聞いてみた事がある。

## 7. 最終整理(あなたの指摘への答え)
- あなたの指摘は**論理的に正しい**
- 「独立している=concurrency」という説明は雑
- concurrency の本質は  
    **「独立していないものをどう並行させるか」**
- その意味では  
    **組込みこそ concurrency の主戦場**

関数型が言う concurrency は  
👉 **“concurrency を消す技術”**  
組込みの concurrency は  
👉 **“concurrency と戦う技術”**

となった。
でも、調子のいい、人を持ち上げるのが得意なChatGptなので当てにはしない、してはいけないが、自分の考えを求めるのにちょうどいい話相手だよなぁ。ただ、発散しまくるのが難点。10の回答に10の質問が増えるので。

まとめ

コンカレント性って、同時に動くものだけど、なんか日本語で言うと違うもの、一般用語となり気持ち悪い、
余談だが、ChatGptにて「裸組込み」と言葉があったで「なんじゃそりゃ」と聞いたら「bare-metal(ベアメタル)」だった。これと同じ感覚。
と、雑談ばかりだが、結論として
関数型はコンカレント性を気にしなくて良いもの、組込みはコンカレント性を埋め込むものと、思う。

2
0
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?