パスワードを忘れた? アカウント作成
4005005 story
プログラミング

Visual Basic 6が未だに生き残っている理由 101

ストーリー by hylom
大規模なVBコードを見るとげんなりしますが 部門より
taraiok 曰く、

Microsoftは、MSDN MagazineのコラムにVisual Basic 6(VB6)のサポート期間を5年間延長する主旨の内容を掲載した。開発ツール自体はもうサポート対象外ではあるが、Windows 8でもVB6のランタイムが搭載され、引き続きVB6で開発されたアプリケーションは実行できる(MSDN Magazine編集後記MSDN Magazineコラム本家/.)。

VB6が最初に出荷されたのは1998年であり、すでに14年が経過している。MSDN MagazineのコラムニストDavid Platt氏は、代替となる「Visual Basic.NET」が登場して10年が経過しているが、それでもVB6がここまでサポートされるほどの長寿命となったのは、シンプルな構造だったからだと説明する。

VB6は複雑なものは作れないが、経験の少ないプログラマでもできるだけ短時間で開発を可能にすることを主眼にしていた。Platt氏によると、VB6に対する経験則は「10分以内に作れないなら、それはできないものだ」と言うレベルものだった。しかし、多くのプログラマは高度な機能を扱える戦闘機のようなVisual Basic.NETよりも、バスのようなVB6に満足し、たくさんのコードを世に送り出した。

Platt氏は、「ビールを賭けてもいい。MicrosoftはWindowsが9や10になってもVisual Basic 6サポートしなければならないだろう」とコラムをまとめている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by duenmynoth (34577) on 2012年06月12日 18時16分 (#2171944) 日記
    新しいのが出てるからリプレースしよう、なんて考えるのは作る側だけで、
    使う側は今のが問題なく使えているのならわざわざ手間暇金をかけてまで置き換えようなんて思わないでしょう

    #最近は古いのを無理やり使えなくして新しいのを売ろうとしてるようですが・・・
  • 金が無い (スコア:4, 参考になる)

    by Anonymous Coward on 2012年06月12日 17時49分 (#2171907)
    VB6で作った物を、ほぼそのまま.NETに移行するだけでも、安くない金がかかります。
    かといって作った物を廃棄するのも大変です。業務プロセスを変更しないといけないですし。
    お金があればリプレースしてくれますけど、お客さんも無い袖は振れません。

    結局騙し騙し使うんですよ。
    ウチも未だに、自分たちが作ったVB6のシステムの細かい変更/修正をしてます。

    XPが入手不可になった時に多かった案件は、「VB6で作った○○を、Windows7で動くようにする修正」でした。
    ほぼ何もしないで動いたので、ぼろ儲けでしたけど。
    • by Rodin (28411) on 2012年06月12日 21時44分 (#2172111)

      和暦の表示をVBのFormat関数に依存している業務システムが多数あります。
      システム側の設定でいつでも西暦に切替可能、または元号マスタの追加で新元号に
      即日対応が可能、なんてシステムはあまり見たことがありません。
      このままの状態で、もし近年中に改元を迎えたら、大混乱は必至です。

      それでもMicrosoftなら・・・きっとなんとかしてくれる・・・えっ、ダメ?

      以下、予想される展開。
      「だったら、今のシステムに安価でCSV出力機能をつけてよ」
      「日付だけ西暦に変えてさ。後はExcelで加工すれば提出書類はバッチリだ」
      「画面の日付が平成のまま? いいよ、平成99年末までは使えるんだろ?」

      --
      匠気だけでは商機なく、正気なだけでは勝機なし。
      親コメント
      • サポートするということは、(VB6ランタイム含め)新しい元号への対応も含まれるだろうと思います。

        Format関数はどういう実装なのでしょうかね。oleaut32.dllのVarFormat関数 [microsoft.com]をほぼそのまま呼んでいるだけなら、VB6ランタイムの修正なしで対応できそうな気がします。

        #むしろ、改元に当たっての焦点は、延長サポートフェーズに入っている(あるいはそれすら終わっているかもしれない)XPやVistaへのアップデートが出るか否かだと思います。

        親コメント
    • by Anonymous Coward on 2012年06月12日 20時13分 (#2172041)

      お金があればリプレースしてくれますけど、お客さんも無い袖は振れません。

      最近のお客さんは、ごく一部のアレな方々を除けば、お金があっても目的や対投資効果をきっちり説明できないようなものには、金をかけなくなってきていますね。おそらくは株主や銀行などがうるさいんでしょうけども。

      ましてや「今あるものが動く」「今あるものでほぼ十分」である以上、「サポート云々」は二の次になってしまいましたね。

      仮想化などで古いサーバを生き残らせることも容易になってしまいましたし。

      親コメント
    • by Anonymous Coward

      VB6自体は良くても周辺に起因してダメな場合があったなぁ。

      特定バージョンのOracleODBCドライバのバグを回避する謎コードになってて、そのままだと無限ループするってのがあった。

  • by Anonymous Coward on 2012年06月12日 18時00分 (#2171928)

    VB6のIDEはWindows7-64bitでは動作しない、ってことになってますね。
    でもうちでは動いてます…。

    セットアップ時に互換モードか管理者モードで動かして、COMの登録か何かが済めばあとは何事も無く動作しているようです。
    本当にコレで大丈夫なのか少々不安ではありますが、趣味プログラムなので良しとしてます。

    問題は、仕事でVB6を使うことが多いので、仕事用のOSを64bitにしちゃって良いものかどうか。
    同様の環境で問題無いよ、って人とか解決してるよ、って情報あったら教えていただけると幸い。

    ※VB6はWin32API使うとけっこう何でも出来るのが、生き延びてる原因の一つかも?

  • by Anonymous Coward on 2012年06月12日 17時52分 (#2171911)

    最近になって会社のシステムを「Windows7対応にしよう」なんて動きが出てきたんだけど、そんな中に「VB4で作られたシステムをVB6に移植しろ」ってのがあった。

    Windows7対応というミッションなのにVB6。

    ほんと、しばらく残りそうです。
    (Spread OCXとか使ってると辛いんだよなぁ。新たな開発ライセンス入手できるんだろうか)

  • そのままVB6が使える分には構わないのだろうけど。
    JIS X 0213 [wikipedia.org]で拡張された文字コードがまともに取り扱えないけど、その点考慮されているのだろうか。
    基幹システム側で使用できない文字だから問題なしという考え方がそのまま残っていて、レガシーな環境がいつまでたってもリプレース出来ないとか…。

  • 二十年ぐらい前、X-Window に関するコラム的なものを集めた本のなかで、あるおじさん(当時)が
    「私は X なんかに興味ないんです、sh さえあれば十分なんです」と書いていて、若かりし私(当時)は
    でもやっぱり X だろ、としか思わなかったんですが、年を経て今まさにそんな心境にあります。
    ファイルを食ってファイルを吐く、この基本原理さえしっかりしてデータを加工・管理できれば、
    見栄えやら操作性やらは瑣末な話ではないか、と。

    unix界隈で sh とか AWK がなくなるとかな話にならないごとく、windows界隈で「永久サポート」的な
    方針って出てこないんですかね? ものはなんでもいいんだけど。

  • by sindobook (35700) on 2012年06月13日 11時18分 (#2172442)
    将来のリスクに対して何ら担保していない会社に将来のリスクを説いても無駄
    現在どういう損失が発生しているか実績値を示し、それがどう削減できるか説明したほうが理解が早い。
    逆にいうと実績値で損失を示せないならリプレイスは開発者の自己満足と言われる可能性も。
  • .NETはステップ実行を速くしてから代替がどーのとほざいてください。
    OfficeのVBAも.NETになってから代替がどーのとほざいてください。

  • by Anonymous Coward on 2012年06月12日 19時30分 (#2172014)

    むしろMFC4が未だに生き残っている理由の方を知りたいわ…

    # 先日あった本当の話
    弟「これうちの兄貴(笑)。IT関係の会社らしいから、なんか分かんないことあったら遠慮なく聞いてやって。」
    友「へー、パソコンとか詳しいんだ(笑)。なんか着てるもんからしてそれっぽいよね(笑)。MFCって知ってます?」
    俺「(ちょっとムッとしながら)勿論知ってるよ。バージョンいくつ?」
    友「は?バージョン? おまえバージョンとか知ってる?」
    弟「兄貴はオタクだから(笑)。バージョンとか知らないのが普通だし(笑)。」
    俺「(なにわけわかんねえこと言ってんだコイツ等とか思いながら)そうだね2から4辺りまではともかく、後は大して変わってないしね。」
    友「(もうバージョンとかどうでもいいよって顔で)それでMFCはどこまでいったんです?」
    俺「どこ?」
    友「俺なにか変なこと言ってる?」
    弟「いや。つーか兄貴さ、もったいぶらずに普通に答えろよ。なんでいつも下んねえことに拘って話の腰を折るんだよ?」
    俺「ええ? 俺が悪いの? MFCでどこまでいったとか言われてもさ、プロジェクトで採用されたら否応なく使うよ。4でも9でも10でも何でも使うよ。」
    弟「は?プロジェクト?麻雀の話してるのになにいってんの?」
    俺「へ? 麻雀…。マイクロソフト関係なし?」
    友「(呆れ顔で)おまえの兄貴って面白いな。」
    弟「マジわけわかんねえ。これだからオタクと話すんの嫌なんだよ。」

    一体何時からMFCがMicrosoft Foundation Class Libraryでなく麻雀格闘倶楽部とかいうゲームを差すようになったのか・・・・・・・
    こうしてまた俺と弟のミゾは深まるのだった。これだからリア充は・・・・・・

  • by shesee (27226) on 2012年06月12日 19時54分 (#2172034) 日記
    やだな?vb6コードベースのものをまだMSさんでメンテしているくせに。 明日突然VBAw/oOfficeがリリースされても驚かない。まあコンパイラは無いだろうけど。doeventとかdeclareとかバッドノウハウの固まりだと思うけど、officeが互換がある良いミグレーション方法を見つけない限り.net移行なんて無理だ。
  • by tmmt (42080) on 2012年06月13日 0時22分 (#2172221) 日記

    さっさとOfficeにVB.netを搭載してくれないだろうか
    (C#ならもっと良いけど)。

  • by Anonymous Coward on 2012年06月12日 18時12分 (#2171937)

    .NET 1.1 Delphiで出来たアプリを .NET 4.0に移植する事になったんだが
    C#でなくVB.NETでいくと決まったらしい。

    理由は「昔からのプログラマー(60歳)がVBしか使えないから」 らしい
    こんな判断をする企業に未来はあるのか?

    しかも移植するアプリはパッケージとして今後の主力商品となるものなんだが
    そんな重要な決定会議にIT技術者が参加していなかったというのも驚きだ。

    • by Anonymous Coward on 2012年06月12日 18時22分 (#2171953)
      合理的な判断だと思いますけどね。
      C#じゃないとできない事を、無理矢理VB.NETでやろうとしてるなら別ですが。

      VB知ってる人間に、VB.NET使わせるのとC#使わせるの、
      習熟するのはどちらが早いか、簡単にわかりそうなもんですけど。
      親コメント
      • by Anonymous Coward on 2012年06月12日 19時01分 (#2171989)

        >C#じゃないとできない事を、無理矢理VB.NETでやろうとしてる

        どっちもよく知らなさそうな人間なのはよくわかった。

        親コメント
      • プログラマー? (スコア:0, すばらしい洞察)

        by Anonymous Coward

        VBしか使えない人にプログラマーを名乗って欲しくないな。
        雇ってる方も、それはプログラマーじゃないって気付けよ。

        • by Anonymous Coward on 2012年06月13日 0時56分 (#2172240)

          VBしか出来なかろうが、それでちゃんと物が作れるならそれで十分。
          それに、幾ら流行の言語を何個も使いこなそうが、所詮PGはPG。
          買い叩かれるだけの存在に過ぎない。

          親コメント
      • by Anonymous Coward
        ・VB6プログラマーにVB.netを習得させんのもC#を習得させんのも大差ないということが分からない
        ・無事習得できたとしても、一般的にVB.netのコードは同じ処理を行なうC#より煩雑で読み難く(きょうびEnd Functionとかいちいち書きたくねぇよ)メンテ工数が余計にかかるということが分からない
        あたりが将来性のなさでしょうかね。個人の趣味で使う分にはBasicが好きで好きで仕方ない人もいるだろうから勝手にしろとは思うけど。
        • by Anonymous Coward on 2012年06月12日 21時02分 (#2172073)

          マジレスすると、End FunctionとかはIDEで勝手に補完してくれますけどね。

          個人的には、Basic言語を毛嫌いする人の方が意味不明です。
          書いて同じように動くなら何でもいいでしょうに。

          親コメント
    • ときどきでいいからPrism XE (Delphi Prism)のこと思い出してあげてください
      http://www.embarcadero.com/jp/products/prism [embarcadero.com]

      # DelphiもWin32とPrismの違いが(VB6とVB.NET並に)激しいですけどね orz

      --
      『月面兎兵器ミーナ』2007年1月13日から放送開始
      親コメント
    • by Anonymous Coward

      VB.netは別物ですよ?

  • by Anonymous Coward on 2012年06月12日 18時22分 (#2171952)
    ビールを奪い取るためにVB6をサポートしなくなるかもしれませんな
  • by Anonymous Coward on 2012年06月12日 18時33分 (#2171963)

    もともとVisual Basic.NETは登場した時からVB6の過去の資産を切り捨てるのはけしからん・困ったことだ~と大不評だったと記憶しているが........
    VB6が死ねないのは当然として、いまだにVisual Basic.NETを使ってBASICで新規の開発を続けている人がいることのほうがちょっと驚き

typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...