Scala、難しいよね(棒読み)。プログラミング言語が簡単/難しいって何だろう。難しい」というのも両方。概念覚えるのが大変だから難しい。はやりたいことをやれるから簡単。あの言語、超簡単ですよ。中にトークン並べるっての以外に何も文法持ってないから。いう意見って、要するに、How(どう書くか)ベースの簡単さなんですよね。やりたいことをやる簡単さプログラミングって手段であっても目的ではないわけで。What(何をしたいか)ありきだと思うわけです。書くのがあなたの目的ですか、と。いうか、この意味でいうと、「簡単さ」という言葉に占めるプログラミング言語文法の割合なんて大したことはなくて、ほとんど、ライブラリとかフレームワークの方に依存するのではないかと。文法なんて、覚えることも少なければ、ここ数十年での進歩の度合いも大したことはないです。みたいに、たった10年でずいぶんと進歩した言語でみても、フレームワークやライブラリの方の追加・進歩と比べると大したことはない。理不尽な難しさ「難しさ」にも、必要に迫られてどうしようもない必要悪的なものと、意味もなく単に難しい理不尽なものとあるわけで。言っても、好き好んで理不尽な難しさを導入しようなんて人は、通常、いないわけで。ネタ言語ならともかく、少なくとも実用を目指すものならば。理不尽な難しさって、だいたいは歴史的背景に起因するか、思慮が足りなかったかのどちらかで。歴史的背景まあ、できた当時の事情を考えればしょうがない。理不尽の大半は、歴史的にどうしようもないものが多く。C#、たった10年しかたってないこの言語ですら、もはや黒歴史と言っていいものもあり。呪いみたいなものに悩まされ続けてたり。言語を覚える人が続出してしまったという。ほんの少し昔に自分で書いた説明ですら「あっ、古い。このコードまねないで。」と思いつつも、直す時間取れない/メディアの都合でそう簡単に直せないものがどれだけあるかっていう。思慮の足りなさだいたい、問題は後からでてくるもので。これに対する解決策は、十分な試用期間を設けて、十分な人数で使ってみて問題を洗い出すこと。みたいに最初から企業の後ろ盾のあるものはともかくとして、個人ベースの開発から始まって、徐々にコミュニティが成熟してきたような言語は何かしらカオスを抱えてしまうもので。この手の理不尽が少々あると思っています。要因もちろん、ライブラリの充実、言語機能の充実。前述の「理不尽」が少ないかなどもありますが、その他にも。検索性ライブラリやらフレームワークやらの挙動まで含めれば、プログラミング言語のすべてを覚えきれる人なんてほとんどいないわけで。ソフトウェアに求められる要望も多ければ、言語やライブラリが持つ機能も膨大な今、大事なのは機能の探しやすさではないかと。膨大な数の機能を、名前空間(パッケージ)とかクラスで分類・整理できた方が「簡単」だと思います。「書くのが楽だから」とか「クラスって概念を教えなくてもいいから」って理由で、標準ライブラリをグローバル関数だらけにしてしまうと、検索性で非常に困ることになるかと。コード補完機能で、補完候補が100個くらい出て来るともう、それは補完の価値半減。検索エンジン検索エンジンでの検索性でいうと、記号をやたらと使う言語は不利ですね。その点、関数型言語というか、エンジニアじゃなくて数学者に媚びた感じの言語はつらいというか。他の文法との文法が一貫してないことってそうないというか、一貫してないのは前述の「理不尽」にあたるはずですけども。他のライブラリとのまあ、新しいライブラリを使い始める際、使ったことのある既存のライブラリとの類推を求めるもので。この辺り、標準ライブラリが強ければそれに合わせるサードパーティが多くなるとか、言語機能が充実していれば独自にデザインパターンの亜種実装しなくていいとかあり。楽さはこういうところにあると思う。混在すること少ないし、イベントハンドラーの登録口は普通eventになってるし。なる」というのを期待しちゃうんですよね。