プログラミング言語は、その設計によって、それを好む人が集まってくるため、ある言語を使っている人とは絶対に友達になれないと確信できることがよくある。
RubyとかPHP界隈の人とは絶対に友達になれない。
GoLangも無理かな?
そんな中、Swiftが……。
というかSwiftUIが……。
Microsoft系の、デザインとロジックが別ファイルになっていると管理が面倒。
というのはわからなくはない。
けど、デザインとロジックが変に混在するのも、わかりづらい(まだベストな書き方、というのが見つかっていない)。
ObjectiveCもそうなのだが、「こういう世界観」というのが理解できなくはないのだが、どうも「理想の世界」が先行し過ぎていて、現実世界と折り合いをつけようとすると超面倒なのだ。
システム工学とか論理学とか、そっちの方の成果を取り入れるのが流行っていたし、それやって学位をとって、みたいな人が多いから仕方ないのかもしれないが、プログラム言語は現実の問題を解決するための道具であって、その世界観を完結するための聖典ではないと思うのだ。
〇〇でも××は可能。
みたいな言い方されたりする。
けど、「可能」は「容易」「簡潔」「省リソース」ではない。
ぶっちゃけ、「お前のパズル趣味に付き合ってるほど暇ではない」と胸ぐらを掴みかかりたい衝動に駆られることがよくある。
パズル趣味は中二で終わらせて欲しい(パズル趣味だった時代もあるし、今だって個人的なプログラムではパズル的なこともやるけど、いろんなレベルの人が関わる可能性のある商用プロジェクトでは、経営に致命傷を与える可能性を考えると、禁止しないという選択肢はない。だからJavaが使われるのだ。お前の趣味や自己満足のためにサービスを構築しているわけじゃないんだよ)。
SwiftUIのいい感じの書き方に辿り着くまでまだしばらくかかりそうだし、これの設計者とは絶対に分かり合えないな、との確信に至った、という話だ。
で、書き方の自由度の高いマルチパラダイム言語であるScalaが大好きだ、というところに戻ってくるわけなのだ。
ScalaならJavaも混在できるし、関数型でがっちり書きたければそこだけ書くこともできるからね。