これはある程度、真理ではないかと思う。
ますますStreamlitには、コンポーネントが追加されるし、開発速度は格段に上がる
(もちろん、Reactのプロは、コンポーネントの開発に精を出してもらえばよいわけで、Pythonしかできない人には有難い話である)
STREAMLITの課題
先ほどの前提で、いまのところ問題になっているところを挙げてみる
- WEBサーバー機能
例えばReactで作った翻訳アプリでは、ブラウザ(フロントエンド)からFetchして外部APIを叩くと、CROS制約に引っかかる。そこで一旦、バックエンドへリクエストを出し、サーバーから外部APIにリダイレクトしている。
Streamlitに置き換えようとすると、サーバー機能がないため、NODEJSかFASTAPI等を使って、別にWEBサーバーを立てないといけない。
Streamlit自体から外部APIを呼べば良いが、この際はJS→pythonにフルスクラッチで移植せねばならない。
- 機械学習
機械学習と、巨大なモデルデータをSTREAMLIT内に保持することもできるが、そもそもGUIのために高い性能のPCを使うのももったいない。
最近はGPUを積んだバックエンドで機械学習をさせるのが主流であり、表示はStreamlitでというのが流れなんだと思う。Pythonでは機械学習結果を表示させるライブラリもあるが、モデル自体を機械学習サーバーからSTREAMLITにレスポンスで持ってくるには、データ転送がネックになるだろう。そうなると、バックエンドの機械学習側でVIEWまで作って、レスポンスで画像を送るような変な構成になってしまう。
結論
Streamlitはプロトタイプ的な用途ではよいが、実用化するようなアプリは作れないのだろうと思う。
そうなってくると、バックエンドとREACTのスキルは、やはり必須なんだろうと思う。