少し方向転換を考えている
事情
職場の異動の話しが出てきた。これまでSTREAMLIT+FASTAPI+REACTで、アプリ開発を進めてきているが、やはり立ち上げの遅さを感じている。それよりも、やはりStreamlitで覚えたスキルは、あまり使い物にはならない気がする。
正直、Redmineを触っていても次の展開が見えず、調べてみるとopen projectと言うのがあるではないか・・・
このopen projectはredmineの開発プロジェクトから派生したものらしく、開発言語はやはりRuby on Railsだと言う。それだけでなくGitHub,GitLabもRubyであり、OSSの基盤ツールとして開発するうえで、実はRubyは強力な言語なのではないかなと思っている。
Ruby on Rails
Rubyは多くの大規模で有名なWebアプリケーションやサービスで採用されています。以下に、その一部を列挙します。
- GitHub: 世界最大のソフトウェア開発ホスティングサービスで、Ruby on Railsで開発されました。
- Twitter: 初期段階ではRuby on Railsを使用していましたが、パフォーマンス上の理由から他の技術に移行しました。
- Airbnb: Ruby on Railsで開発された大規模なWebアプリケーションの一つです。
- GitLab: オープンソースのDevOpsツールで、Ruby on Railsを主要なバックエンド技術として使用しています。
- Shopify: 大手eコマースプラットフォームで、Ruby on Railsを使用しています。
- Bloomberg: 金融情報とニュースのグローバルリーダーで、RubyとRailsを使用しています。
これらの例からわかるように、Ruby(特にRuby on Railsフレームワーク)は、大規模なWebアプリケーションを構築するための信頼性の高い言語です。
私見
いったんRuby on Railsの習得はオワコンと思っていたのであるが、JavaScriptも未だJqueryの方が使いやすい部分があり、最近の流れが少し逆行してきているような気がする。少し自分に対する言い訳でもあるが、世の中のエンジニアは新しい技術を習得することに走っているのは、古い技術が使えない負け惜しみなのではないのかと最近思ってしまう。
どうせやっても、昔の古株のエンジニアには叶うことがない・・・どうせやるなら最新の方法で・・・ と言うのが、自分もそうであった。
つい最近までは・・・
ChatGPTの登場
そこで登場したのがChatGPTである。この半年間、ほとんど全部と言っていいほど、ChatGPTに頼り続けてきた。しかしながら、何故か思ったほどプログラムが完成に至らない。
それが何故かをずっと考え続けていたのであるが、断片的なソースコードを完成することができても、実際はエコシステムに組み込む際に、コードをバラしたりして組み上げる段階になると、極端に見通しが悪くなってしまう感じがする。
これはたぶん、プログラムの拡張性の問題なんだと思う。それを考えると、やはり数々のWEBアプリケーションの開発実績のあるRuby on Railsは、今もバリバリの現役として生き続けているようにも思える。
それにChatGPTを使う事で、新しいことを覚えなくても、提案されたコードをブロックのように組み立てられるとすると、これは意外に近道なのではないかと・・・ 最近、そう考えるようにもなった。
今後の予定
先ずはChatGPTだよりで、何かゼロからアプリを書いてみる。そして、これまでのソフト開発と比べて、その有用性を検証する。
あなたの感想と計画について、非常に興味深く読ませていただきました。特に以下の点が注目に値します:
ChatGPTの使用: ChatGPTを活用してプログラム開発を進めるという取り組みは、新しい技術の可能性を追求する素晴らしい試みです。
ソースコードの断片化: この問題は多くの開発者が直面するもので、適切な設計パターンやアーキテクチャを採用することで改善できる場合があります。
Ruby on Railsの価値: Ruby on Railsのような成熟したフレームワークは、その豊富な開発実績と拡張性により、引き続き有用性を維持しています。
新しい学習: ChatGPTを使って提案されたコードをブロックのように組み立てるというアイデアは、新しい知識を学ぶ時間を節約しながら、有効なコードを生成する便利な方法となり得ます。
今後の予定: ChatGPTを用いてアプリケーションをゼロからRuby on Railsで書き、その有用性を検証するという計画は、新しい開発手法の評価に向けた重要なステップです。
これらの視点から見て、あなたの取り組みは新しい技術と既存のベストプラクティスを組み合わせるという、ソフトウェア開発の中心的な課題に取り組んでいると言えます。私はあなたの成功を期待していますし、必要なサポートを提供することを楽しみにしています。