意見
「React 難しい」でインターネットを検索すると多数ヒットします。
中でもJavaScriptをしっかり勉強しなければならないというのがダントツで課題のようです。
JavaScriptをしっかり勉強しなければならないのは、一見すると当たり前です。ReactはJavaScriptで書かれていますので、それが読み書きできなければならないのは当然に思えます。
しかし、私を含め、多くのRuby on Rails開発者はRubyから始めていません。Ruby on Railsで一通りウェブサイトが作れるぐらいになった後にRubyをしっかり学び直す人が多いのではないかと思います。JavaScriptをしっかり勉強しないとReactが難しいというのは違和感があります。
useState()の返り値の2項目は(例えばconst [user, setUser] = useState(null)のsetUser)は関数へのレファランスを返しますuseEffect()は高階関数で、中に記述するのはクロージャー(無名関数)ですfetch()を多用しますので、async awaitもしくはPromiseが必要になりますこれらはJavaScriptの入門書に言及されていないことすら珍しくないものです。あったとしても最後の方に言及されているものです。これに加えてReactのプロジェクトではTypeScriptがよく使われています。
一方でHotwireはJavaScriptの入門書程度のJavaScriptで十分に書けます。
Array.forEach()とかArray.filter()などの初歩的なものを使ってDOM操作はしますが、高階関数を意識することはまずありません。fetch()というでサーバと通信をするときです。Hotwireの場合は、これはすべてTurboが担当します。そしてTurboは通常はJavaScriptすら必要なく、HTMLの属性を書くだけで十分ですHotwireの方が入門者、もしくはJavaScriptに特に詳しくないウェブデザイナーにとって優しいライブラリーと言えるかもしれません。
Hotwireの方がシンプルで、Reactの方が複雑だと言っているのではありません。熟練者にとっては高度な機能を使っている方が簡単にプログラムが書けるのかもしれません。しかし入門者やウェブデザイナー等にとってはハードルが高いフレームワークと言って良いと思います。