🐡

WinFormsなんか使ってて恥ずかしくないの?

に公開

元ネタ

「Delphiなんかで開発していて恥ずかしくないの?」

WinFormsを使った開発を2年半ほどしています。最初の頃は「画面をGUIでつくるの!古そう!デスクトップアプリ!……Webアプリが主流でしょ」と正直思っていました。でも、業務を重ねるうちに、その印象は少しずつ変わっていきました。「本当に恥ずかしい技術なのか?」と。

WinFormsとは?

ChatGPTにWinFormsについて説明してもらいました。

Windows Forms(WinForms)とは、.NETでWindows向けのデスクトップアプリを作るためのGUIフレームワークです。
ドラッグ&ドロップでボタンやテキストボックスなどのUIを簡単に配置でき、イベント駆動型で操作に応じた処理を実装できます。
主に業務用ツールや管理アプリの開発に使われ、Windowsネイティブ機能との連携も容易です。

「古い」=「悪い」ではない

まず事実として、WinForms は古い技術です。初登場は 2002 年(.NET Framework 1.0)ですから、すでに20年以上が経過しています。
プログラマーとしては新しい技術に触れることができるのは魅力的ですが、現場では安定稼働の方が重要になってきます。特に業務システムでは、日々の業務が止まらないことが最優先であり、技術好奇心だけでシステムを変えることはできません。

ですが、「古い=悪い」「古い=使う価値がない」というのは短絡的です。
例えば

  • 社内業務システムは WinForms 安定して稼働している
  • 新しく作り変えるコストが膨大

意外と使われてるwinForms

WinFormsでの開発なんてあるの?Webアプリが主流でしょ?と思った方、意外とWinFormsは使われています。自分も当初は思っていました。

2Cサービスで使われていることはほとんどないかも知れませんが、業務システムでは意外と使われていたりします。私も業務で使用しています。
また、OSSでも使われており、Git ExtensionsではWinFormsを使って開発されています。

なぜ恥ずかしいと思うのか?

ではなぜ、WinForms に「恥ずかしい」と思うのでしょうか?

いくつか理由を考えてみました。

  • UIが古い
    • デフォルトのコントロールはクラシックな Windows XP スタイルそのまま。モダンな UI に慣れた人からするとダサく見えるかもしれません。
  • コードがスパゲッティになりがち
    • Form1.cs に全部書いて、イベントハンドラでロジックをゴリゴリ書いてしまう開発スタイルは、保守性が低く、「古臭い」印象があるかもしれません。
  • 枯れた技術
    • SNSや技術コミュニティでは、最新フレームワークを触っている人の方が「スゴい人」という雰囲気になりがちです。その空気感が、「WinForms=ダサい」という思い込みを加速させているのかもしれません。

WinFormsの今

  • .NET9対応
    • .NETでもサポートされています。古いバージョンのままにせず、更新しましょう。セキュリティやパフォーマンスの面で大きな改善になります。
  • モダンUIの工夫
    • 外部ライブラリや自作コントロールで、見た目を少し整えるだけでも印象は大きく変わります。

まとめ

技術には流行があります。でも「古いから恥ずかしい」「新しいから偉い」という単純な話ではないと思います。WinFormsを使い続けるのにはそれなりの理由があります。自分が使っている技術に誇りを持ち、必要なところでは新しい技術も柔軟に取り入れるなど柔軟な意思決定が一番重要なのではないかと思っています。

Discussion