VB6は「卒業」する物なのか、いっそ他の言語に乗り換えるのか

今までもたまにあったのだけど、いよいよサポート切れが目に見え始めてきたからなのか、VB6からVB7/8へ移行した方が良いのかとか、いっそ他の言語に乗り変えた方が良いのかとかをVBのエンジニアに聞かれる事が増えたような気がする。

質問者の多くはVBの将来性について疑問を感じ、その移行への敷居の高さに当惑し、そんな大変ならいっそ(お金になりそうな)他の言語に移行してしまった方が良いのではないかと考えているようだ。

PHPやRubyやPythonが何か自分を幸せにしてくれそうで魅力的に見えるならそれでもかまわないし、転職求人がやたらといっぱいあるJavaがVBよりお金になりそうだと思うのなら、それも悪くないのかもしれない。

.NETならC#でしょやっぱり。という良く根拠のわからないことをおっしゃってVBを足蹴にされようとしてされていたり、何がどうころんで卒業なのか、VB6を卒業とかおっしゃる方たちもいて、.NETの世界は世界で全くわけがわからない。.NETのVBへ移行して良い物だろうかと疑問に思うのも当然かもしれない。

しかしながら、VBの技術者がこれらの理由だけで、VB7/8を遠ざけ新しい環境でキャリアを一から再構築していくのは、あまりにももったいないのではないかと私は思うのだ。

あなたたちの経験が生かせる将来性のある開発プラットフォームがそこにあるというのに。

まずVisual Basicに将来性がないのではないかという疑問だが、当然そんなことはない。マイクロソフトのWebサイトを見ればそんな疑問も払拭するに違いない。

Visual Basic デベロッパー センター

ごめんなさい。私が悪かった。将来に不安を感じまくりだ。雑な作りのこのサイトでは、情熱あるRubyのWebを見た後にここを見たら将来を不安を感じないわけにはいかないな。

そこで以下のページを見てほしい。英語だけどちょっとがんばって。

Visual Basic Developer Center – msdn(US)

情報量が国内のWebと全然違って多いし、更新頻度も高く少し安心できたと思う。

続いてこのページを見てほしい。

Future Versions of Visual Basic- msdn(US)

来年リリースされるであろうVisual Basic 9での言語拡張についてまとめられているページだ。少し元気が出てきましたか?

この次バージョンであるVB9では、基本的にC#に取り込まれる新しい機能はVB9にも追加されるし、同等に追加されるだけでなく、より使いやすく追加される。また、今後のVBは動的型付言語(たとえばRuby)の機能を貪欲に取り込み言語仕様自体はC#よりも強力になるはずだ。そのように更新され強化され続けるVBの将来性に我々は何の疑問を持てばいいのだろう。

余談だが、このようなことをちゃんと国内のVB技術者に伝えないマイクロソフト(株)は何かそうしたくない商売上のマーケティング的な理由でもあるのかと思ってしまう。

閑話休題。もう一つのVBを捨て去ろうという理由が「オブジェクト指向」だ。なぜか皆さんオブジェクト指向がやたらと難解で敷居が高いと感じているようだが、VB6の技術者にとってはそんなことは基本的にないはずだ。VB6は確かに継承は使えなかったかもしれないが、基本的なオブジェクト指向言語の機能は備えていたし、COMコンポーネントをかっちょよくエレガントに使うのがVBプログラミングという物だ。したがってVB6を縦横無尽に使っていたVB6技術者にとってオブジェクト指向プログラミングの敷居は、高い物ではない。特にVB6のクラスプログラミングを駆使されてきた方には、何も恐れずにさっさとVB7/8に移行していただきたい。

正直な話を書けば、VB7/8で効率よく、品質の高いソフトウェア開発を行おうとするのであればオブジェクト指向プログラミングの技術は必須である。しかし、VB6技術者は意識しているかどうかにかかわらず、COMコンポーネントを使用する、制作するコーディング作業の中でその素地を築いてきているのであり、足りない部分を少しずつ積み上げていけばいいのではないかと思う。また、こういった素地をある意味捨てて、オブジェクト指向ならJavaというふうに短絡的に考えてしまうのはもったいない。安心してVB7/8でオブジェクト指向プログラミングを身につけてほしい。

世の中でオブジェクト指向が難しいと思ってしまわれているのは、オブジェクト指向の本やオブジェクト指向について話をする人の話が難しいからで、これはあんまりな翻訳や話をする人間の資質にも原因があるけど、これらの本や話が基本的にオブジェクト指向分析・設計を対象としていることに原因がある。オブジェクト指向分析・設計というのは基本的にオブジェクト指向プログラミングとは違う技術で、本当に難しいんだけど、VB7/8をはじめとするオブジェクト指向プログラミング言語を使用してプログラミングを行うと言うこととは全くと言っていいほど関係がない。正直オブジェクト指向分析・設計に足を踏み入れる気がないなら無視したってかまわない。この違いを知りたいとか、それでもオブジェクト指向分析・設計についてもちょっとは勉強したいという方には以下の本を読むことをお薦めしておく。(あーサンプルコードはJavaなんだよなー)

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識― オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―
平澤 章

日経BP社 2004-06-03
売り上げランキング : 3726
おすすめ平均

Amazonで詳しく見る by G-Tools

まとめます。

  • VBは今後もバージョンアップ機能強化され続けるので、その将来性に心配はいらない。
  • VB7/8にはオブジェクト指向プログラミングの技術は必要だが、VB6技術者にとっては0から始めるわけでもなく、今の技術の上に必要な技術を積み上げていけばよいので、あまり心配しない方が良い。

以上のように代表的なVB7/8への移行に関する不安や疑問についての回答をまとめてみた。出来れば一人でも多くのVB6技術者が安心して.NETに移行してもらえればいいと思う。VB6をよりよく使ってきた方にこそ.NETは感動を与えるはずだ。

 

追記:

  • やたらと求人の多い言語や開発環境というのも一見良さそう見えるけど、求人の多さって言うのは単純に人手が足りないだけなのかもしれないけど、反面その裏には離職率の高さとかプロジェクトの爆発炎上ぶりがうっすら見え隠れしていて、そういった言語にあえて移行した方が良いのかはちょっと疑問。
  • マイクロソフト(株)の人手不足は百も承知なんだけど、Webをほったらかしておくのは対外的に良いメッセージではない。それは単純にメッセージが伝わらない、滞ると言うことだけでなく、マイナスメッセージを伝えていくことになる。
  • まぁたまにはVBのMVPらしいことも書いてみたり。
  • そういえばDotNetNukeはVBで書かれてるんだったな。本文でそれにふれるのを忘れた。

コメントを残す