
Visual Basic 6が未だに生き残っている理由 101
ストーリー by hylom
大規模なVBコードを見るとげんなりしますが 部門より
大規模な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サポートしなければならないだろう」とコラムをまとめている。
新しい道具が良い道具とは限らないから (スコア:5, すばらしい洞察)
使う側は今のが問題なく使えているのならわざわざ手間暇金をかけてまで置き換えようなんて思わないでしょう
#最近は古いのを無理やり使えなくして新しいのを売ろうとしてるようですが・・・
Re: (スコア:0)
そういう生き方ができるはMSが頑張ってるあいだだけですな。LinuxにしろAppleにしろ、問答無用で切り捨てますからね。
Re:新しい道具が良い道具とは限らないから (スコア:2, すばらしい洞察)
ようするに本来自社が負担すべきコストをMSに押し付けてるだけなのになんでこんなに平然と大きな顔をする連中ばかりなんですかね。
Re:新しい道具が良い道具とは限らないから (スコア:3, 興味深い)
しかも互換を維持するせいでセキュリティが低いという状態
# ASLRの迂回に使われるサードパーティDLLがいつまでも無くならない
最近はMicrosoftも互換捨てる傾向にはなってきてますけど、
廃止されるのはあまり使われてないものなのでセキュリティ的意味は薄いですね
# Indeo Codec、Direct3D Retained Mode、Microsoft Agentなど
Re:新しい道具が良い道具とは限らないから (スコア:2, おもしろおかしい)
>> 本来自社が負担すべきコストをMSに押し付けてるだけ
とも言えるし,「だからこそ業務向けにはMSのシャアが高い」という言い方もできる.
Re:新しい道具が良い道具とは限らないから (スコア:1)
3倍高い? もしくは赤い(意味不明)
Re:新しい道具が良い道具とは限らないから(オフトピ) (スコア:1)
業務向けのモビルスーツ?とか思ってしまった。
#「VB6は滅びぬ!何度でも蘇るさ!」とか考えたけれど、それは大佐でもムスカの方だった。
Re:新しい道具が良い道具とは限らないから (スコア:1)
意外と。
Re:新しい道具が良い道具とは限らないから (スコア:1)
perlも5.16とか
金が無い (スコア:4, 参考になる)
かといって作った物を廃棄するのも大変です。業務プロセスを変更しないといけないですし。
お金があればリプレースしてくれますけど、お客さんも無い袖は振れません。
結局騙し騙し使うんですよ。
ウチも未だに、自分たちが作ったVB6のシステムの細かい変更/修正をしてます。
XPが入手不可になった時に多かった案件は、「VB6で作った○○を、Windows7で動くようにする修正」でした。
ほぼ何もしないで動いたので、ぼろ儲けでしたけど。
でも期限は迫ってる? (スコア:2)
和暦の表示をVBのFormat関数に依存している業務システムが多数あります。
システム側の設定でいつでも西暦に切替可能、または元号マスタの追加で新元号に
即日対応が可能、なんてシステムはあまり見たことがありません。
このままの状態で、もし近年中に改元を迎えたら、大混乱は必至です。
それでもMicrosoftなら・・・きっとなんとかしてくれる・・・えっ、ダメ?
以下、予想される展開。
「だったら、今のシステムに安価でCSV出力機能をつけてよ」
「日付だけ西暦に変えてさ。後はExcelで加工すれば提出書類はバッチリだ」
「画面の日付が平成のまま? いいよ、平成99年末までは使えるんだろ?」
匠気だけでは商機なく、正気なだけでは勝機なし。
Re:でも期限は迫ってる? (スコア:1)
サポートするということは、(VB6ランタイム含め)新しい元号への対応も含まれるだろうと思います。
Format関数はどういう実装なのでしょうかね。oleaut32.dllのVarFormat関数 [microsoft.com]をほぼそのまま呼んでいるだけなら、VB6ランタイムの修正なしで対応できそうな気がします。
#むしろ、改元に当たっての焦点は、延長サポートフェーズに入っている(あるいはそれすら終わっているかもしれない)XPやVistaへのアップデートが出るか否かだと思います。
Re:金が無い (スコア:1)
お金があればリプレースしてくれますけど、お客さんも無い袖は振れません。
最近のお客さんは、ごく一部のアレな方々を除けば、お金があっても目的や対投資効果をきっちり説明できないようなものには、金をかけなくなってきていますね。おそらくは株主や銀行などがうるさいんでしょうけども。
ましてや「今あるものが動く」「今あるものでほぼ十分」である以上、「サポート云々」は二の次になってしまいましたね。
仮想化などで古いサーバを生き残らせることも容易になってしまいましたし。
Re: (スコア:0)
VB6自体は良くても周辺に起因してダメな場合があったなぁ。
特定バージョンのOracleODBCドライバのバグを回避する謎コードになってて、そのままだと無限ループするってのがあった。
Windows7-64bitでのIDE動作 (スコア:3, 参考になる)
VB6のIDEはWindows7-64bitでは動作しない、ってことになってますね。
でもうちでは動いてます…。
セットアップ時に互換モードか管理者モードで動かして、COMの登録か何かが済めばあとは何事も無く動作しているようです。
本当にコレで大丈夫なのか少々不安ではありますが、趣味プログラムなので良しとしてます。
問題は、仕事でVB6を使うことが多いので、仕事用のOSを64bitにしちゃって良いものかどうか。
同様の環境で問題無いよ、って人とか解決してるよ、って情報あったら教えていただけると幸い。
※VB6はWin32API使うとけっこう何でも出来るのが、生き延びてる原因の一つかも?
何度でも蘇るさ! (スコア:2, 興味深い)
最近になって会社のシステムを「Windows7対応にしよう」なんて動きが出てきたんだけど、そんな中に「VB4で作られたシステムをVB6に移植しろ」ってのがあった。
Windows7対応というミッションなのにVB6。
ほんと、しばらく残りそうです。
(Spread OCXとか使ってると辛いんだよなぁ。新たな開発ライセンス入手できるんだろうか)
Re:何度でも蘇るさ! (スコア:2, 参考になる)
SPREAD OCXは、2004/12月末でサポート終了。SPREAD 7.0Jならamazon等で現役で販売されています。
http://www.grapecity.com/tools/support/technical/list_activex.htm [grapecity.com]
フォントや拡張された文字コード (スコア:2)
そのままVB6が使える分には構わないのだろうけど。
JIS X 0213 [wikipedia.org]で拡張された文字コードがまともに取り扱えないけど、その点考慮されているのだろうか。
基幹システム側で使用できない文字だから問題なしという考え方がそのまま残っていて、レガシーな環境がいつまでたってもリプレース出来ないとか…。
永久サポート的なもの (スコア:2)
二十年ぐらい前、X-Window に関するコラム的なものを集めた本のなかで、あるおじさん(当時)が
「私は X なんかに興味ないんです、sh さえあれば十分なんです」と書いていて、若かりし私(当時)は
でもやっぱり X だろ、としか思わなかったんですが、年を経て今まさにそんな心境にあります。
ファイルを食ってファイルを吐く、この基本原理さえしっかりしてデータを加工・管理できれば、
見栄えやら操作性やらは瑣末な話ではないか、と。
unix界隈で sh とか AWK がなくなるとかな話にならないごとく、windows界隈で「永久サポート」的な
方針って出てこないんですかね? ものはなんでもいいんだけど。
Re:永久サポート的なもの (スコア:1)
cmd.exe は NT 系 Windows が続く限り無くならない予感。
# と思ってたけど Power Shell に置き換えられたりしそうな気も……。
Re:永久サポート的なもの (スコア:1)
その実態がなんであれ、スクリプトは/bin/shで動き、それは昔からのsh互換として動く。
すなわちサポート対象だろう。
Re:永久サポート的なもの (スコア:1)
はいっ!素のshを使ってますよ。
デフォルト環境でbashが入っているのはLinuxくらいなもんですからね。
Re:永久サポート的なもの (スコア:1)
KI-ShellはPC98~DOS/V時代にお世話になりました。
ついでに、同じ作者のimakeにもかなりお世話になりましたっけ。
# って、違うkshかな?
Re:永久サポート的なもの (スコア:1)
KornShellのほうですね(多分)。bshをベースにcshの機能を取り込んで+αしたシェル。
今ここにある危機 (スコア:2)
現在どういう損失が発生しているか実績値を示し、それがどう削減できるか説明したほうが理解が早い。
逆にいうと実績値で損失を示せないならリプレイスは開発者の自己満足と言われる可能性も。
目の敵にしなくてもいいのに (スコア:1)
.NETはステップ実行を速くしてから代替がどーのとほざいてください。
OfficeのVBAも.NETになってから代替がどーのとほざいてください。
Re:目の敵にしなくてもいいのに (スコア:2)
.NETはステップ実行どころか出来上がったexeの起動ももっさりだよね。いや全体的にもっさりか。
VBしか書けないんだったらVB6って選択肢もありだと思う。
VB6までしか書けない人が.NETやってもロクなコードになりゃしないし。(まぁそういう人のVB6のコードもアレだけど)
Re:目の敵にしなくてもいいのに (スコア:1)
もっさりなコードを書く人はVBだろうがC++だろうがもっさりだろ
Re:目の敵にしなくてもいいのに (スコア:2)
何もしないフォームが立ち上がるだけのexeでも、どうしてももたつくのが.NET。
Re:目の敵にしなくてもいいのに (スコア:1)
使ってないなら黙ってればいいのに。そういうレベルじゃないのよ。
空のフォーム一個開くだけのアプリでもVB6とVB.NETじゃ体感できる差がある。
え? MFC4は? (スコア:1)
むしろMFC4が未だに生き残っている理由の方を知りたいわ…
# 先日あった本当の話
弟「これうちの兄貴(笑)。IT関係の会社らしいから、なんか分かんないことあったら遠慮なく聞いてやって。」
友「へー、パソコンとか詳しいんだ(笑)。なんか着てるもんからしてそれっぽいよね(笑)。MFCって知ってます?」
俺「(ちょっとムッとしながら)勿論知ってるよ。バージョンいくつ?」
友「は?バージョン? おまえバージョンとか知ってる?」
弟「兄貴はオタクだから(笑)。バージョンとか知らないのが普通だし(笑)。」
俺「(なにわけわかんねえこと言ってんだコイツ等とか思いながら)そうだね2から4辺りまではともかく、後は大して変わってないしね。」
友「(もうバージョンとかどうでもいいよって顔で)それでMFCはどこまでいったんです?」
俺「どこ?」
友「俺なにか変なこと言ってる?」
弟「いや。つーか兄貴さ、もったいぶらずに普通に答えろよ。なんでいつも下んねえことに拘って話の腰を折るんだよ?」
俺「ええ? 俺が悪いの? MFCでどこまでいったとか言われてもさ、プロジェクトで採用されたら否応なく使うよ。4でも9でも10でも何でも使うよ。」
弟「は?プロジェクト?麻雀の話してるのになにいってんの?」
俺「へ? 麻雀…。マイクロソフト関係なし?」
友「(呆れ顔で)おまえの兄貴って面白いな。」
弟「マジわけわかんねえ。これだからオタクと話すんの嫌なんだよ。」
一体何時からMFCがMicrosoft Foundation Class Libraryでなく麻雀格闘倶楽部とかいうゲームを差すようになったのか・・・・・・・
こうしてまた俺と弟のミゾは深まるのだった。これだからリア充は・・・・・・
Re:え? MFC4は? (スコア:2)
ググると三番目に来るんですね。
名前空間は人それぞれですね。
Re:え? MFC4は? (スコア:1)
FreeBSD のことだと混ぜっ返されるのを期待して最後まで読んだのにっっっ
※ Merge From Current ね(いまでも言うのか知らんが)
まずはVBAから (スコア:1)
VBA (スコア:1)
さっさとOfficeにVB.netを搭載してくれないだろうか
(C#ならもっと良いけど)。
VBを選択する理由ってのが笑える (スコア:0)
.NET 1.1 Delphiで出来たアプリを .NET 4.0に移植する事になったんだが
C#でなくVB.NETでいくと決まったらしい。
理由は「昔からのプログラマー(60歳)がVBしか使えないから」 らしい
こんな判断をする企業に未来はあるのか?
しかも移植するアプリはパッケージとして今後の主力商品となるものなんだが
そんな重要な決定会議にIT技術者が参加していなかったというのも驚きだ。
Re:VBを選択する理由ってのが笑える (スコア:1)
C#じゃないとできない事を、無理矢理VB.NETでやろうとしてるなら別ですが。
VB知ってる人間に、VB.NET使わせるのとC#使わせるの、
習熟するのはどちらが早いか、簡単にわかりそうなもんですけど。
Re:VBを選択する理由ってのが笑える (スコア:1)
>C#じゃないとできない事を、無理矢理VB.NETでやろうとしてる
どっちもよく知らなさそうな人間なのはよくわかった。
プログラマー? (スコア:0, すばらしい洞察)
VBしか使えない人にプログラマーを名乗って欲しくないな。
雇ってる方も、それはプログラマーじゃないって気付けよ。
Re:プログラマー? (スコア:1)
VBしか出来なかろうが、それでちゃんと物が作れるならそれで十分。
それに、幾ら流行の言語を何個も使いこなそうが、所詮PGはPG。
買い叩かれるだけの存在に過ぎない。
Re:プログラマー? (スコア:2)
VBで作られた各企業ごとに最適化されたシステムがすでに動いていて、従業員もその使い込んだアプリになれている。それを捨ててクラウドに移行する必要があるかな? もちろん、ない。VB6で書かれたアプリの延命に小銭しか必要ないことが前提だけどね。
Googleのように、いきなり数日間も止まったりすると仕事にならないし。正直に言って、クラウドのサービス提供者側も重要な業務には使われないことを前提としているよね。今の価格設定では、堅牢なシステムにするといっても限界があるわけだし。
Re: (スコア:0)
・無事習得できたとしても、一般的にVB.netのコードは同じ処理を行なうC#より煩雑で読み難く(きょうびEnd Functionとかいちいち書きたくねぇよ)メンテ工数が余計にかかるということが分からない
あたりが将来性のなさでしょうかね。個人の趣味で使う分にはBasicが好きで好きで仕方ない人もいるだろうから勝手にしろとは思うけど。
Re:VBを選択する理由ってのが笑える (スコア:4, すばらしい洞察)
マジレスすると、End FunctionとかはIDEで勝手に補完してくれますけどね。
個人的には、Basic言語を毛嫌いする人の方が意味不明です。
書いて同じように動くなら何でもいいでしょうに。
Re:VBを選択する理由ってのが笑える (スコア:1)
私個人の印象でしかないですが、「Unixが得意だ」という人はそれなりに勉強している感じがします。
同様に、「VBが得意だ」という人もちゃんと勉強している感じがします。
問題なのは「VBしか知らない」という人。
テクノロジーの歴史の古さの話ではないのです。
Re:VBを選択する理由ってのが笑える (スコア:1)
ときどきでいいからPrism XE (Delphi Prism)のこと思い出してあげてください
http://www.embarcadero.com/jp/products/prism [embarcadero.com]
# DelphiもWin32とPrismの違いが(VB6とVB.NET並に)激しいですけどね orz
『月面兎兵器ミーナ』2007年1月13日から放送開始
Re: (スコア:0)
VB.netは別物ですよ?
Plattから (スコア:0)
Re:Plattから (スコア:2)
http://technet.microsoft.com/ja-jp/security/bulletin/ms12-027 [microsoft.com]
4月のセキュリティーアップデートでVB6があったのはそのせいだったんですね
まだサポートしてたとは|・ω・)
Visual Basic.NETは大不評 (スコア:0)
もともとVisual Basic.NETは登場した時からVB6の過去の資産を切り捨てるのはけしからん・困ったことだ~と大不評だったと記憶しているが........
VB6が死ねないのは当然として、いまだにVisual Basic.NETを使ってBASICで新規の開発を続けている人がいることのほうがちょっと驚き
Re:動けば官軍 (スコア:2)
略し方というか、ふつうに99BASICという処理系があります。