最近、或るお客様との会話の中で頻繁に出て来る「・・・って、先々どうなの?」
“・・・”の部分は、VisualBasci.NET(以下、VB.NET)でプログラミングされたシステム。
そのお客様の扱いシステムの中には、VB.NETどころか、VB6.0でプログラミングされたシステムさえまだ”現役”稼働している。それで、VB6.0のシステムを作り変えるべきなのだが、VB.NETの将来性を不安視されていて、冒頭の「VB.NETって、先々どうなの?」である。
頻繁に出て来るということは、VB6.0のシステムを何らか新しいプログラム言語でリビルドする考えを持たれているのだろう。尤も、弊社にそれを託すかどうかは別の話なので話半分だけ承ります。(おっと、この記事を読まれたらどうする?・笑)
VB.NETの有利性と将来性?
VB.NETは、VB(Visual Basic)の進化版。VB.NETで実装されたアプリケーションは、マイクロソフト社の.NET Framework上で動作する。.NET Frameworkは、現在4.8.1バージョン(リリース=2022/8~)が動いていて、マイクロソフト社は、バージョン5にアップグレードしてもVB.NETのサポートは継続されると公言している。そりゃそうだ。サポート終了なんてことになったら世の中右往左往して大変なことになる。我々ESS事業者にとっても仕事がわんさか降って湧いて来る、であろう?否、弊社が潤うかどうかは全く以て別の話なのであるが・・・
弊社の業務系システムのマネージャー(以下、A氏)は常日頃、「VB.NETの構文は、シンプルで理解しやすい。」と言っている。それをもっと具体的に表現すると、文法的特徴として、日常使用の自然言語(例えば英語)に近い。(ここで、「日本語しか知らん!」と拗ねる人?是非、握手しよう・笑)。兎に角、プログラミング初心者が最初に本格的に取り組むプログラミング言語として、VB.NETは比較的容易に早く習得できるというメリットはあるらしい。A氏の話は更に続く・・・
弊社の中にあっては、VB.NETの”かなりの”使い手の一人であるA氏曰く、VB.NETの特徴(有利性)として「再利用性の高いコードを作成出来る」以外に・・・
🔵WindowsOS上で動くアプリケーション製作が比較的容易に出来る
「例えば1」・・・Windows デスクトップ アプリを構築するためのUIフレームワークであるWindowsフォームアプリケーションが容易に使える。
「例えば2」・・・ユーザインタフェースサブシステムであるWPF(Windows Presentation Foundation)を容易に使えるなどに於いてVB.NETに勝るものなし
「例えば3」・・・ASP.NETを使用したWebアプリケーションの開発にも広く利用されている
更に付け足せば・・・
🔵VB.NETのコードの組み立ては、フォームを用いマクロのように組み立てられる。この利点により、開発中のアプリケーションに対して実装したいデザインがあれば、ツールボックスから選択してマウス操作で容易に組み込める。この操作を覚えればめっちゃ楽で、プログラミング工程が楽しく、なる?
🔵それ以上に、「情報処理の”勉強”が苦手」だった人は注目(笑)メモリ管理やガベージコレクションなど、面倒な作業を自動的に処理してくれる機能をVB.NETは持っている。メモリ意識せずに済む!これはいい。(えーーっと、古い時代の中のヒトが書いているBLOGですが何か?・笑)
つまり、手動でメモリリークしたり、メモリ解放したり、そのような面倒臭いメモリ管理から解放してくれるわけで、プログラマはコーディングに集中出来る(”賢い”組込み系のエンジニアには、「クソ」みたいな話で申し訳ないが)。
🔵VB.NETは、イベント駆動型のプログラミングモデルをサポートしています。例えばマウスクリックやキーボード操作、入力、システムからの何らかの通知など”外部イベント”が発生した場合を想定し 、それに対する処理を書くことができます。この事により、使いやすいユーザーインタフェースの構築や応答性の高いアプリケーション開発を可能にしてくれる。
今更ながらの話ではあるけれど、「なかなか良さそうじゃないか、VB.NET!」。でも、彼(A氏)は、必ず次の言葉を続けるのだ。「VB.NETは、初心者にとっても学びやすい言語です。オブジェクト指向プログラミングの勉強にもなる。・・・でも、C#.NET、或いはPythonの方が将来的に役立つのではないでしょうか?」と。
VB.NETには将来性がない?本当か?
危険な状況ですよ?
冒頭の弊社のお客様のように、VBで開発されたシステムが”しっかり”稼働しているというケースはまだけっして少なくない。
レガシーシステムという言葉は、本来は、メインフレーム(汎用機)で動いているシステムを指しているが、現在では、VB6.0などで開発されたシステムも「レガシーシステム」と表現される。そして同時に「レガシーシステム」ではなく大切な「レガシー”資産”」とも呼ばれる。
資産であるなら運用次第ではもっと大きな価値を生む。というわけで、レガシー資産であるVB6.0以前のシステムを新たなシステムへ乗せ換えるどころか、そのままの状態で質の良い運用を出来ないものかと考えてる企業だって存在する。だから、VBを使いこなせるエンジニア(若しくは、VB.NETを使いこなせるエンジニア)の需要は現在のところゼロではない。寧ろ、希少価値を伴い、高額を得ているSEもいるでしょう。ですが、これからのエンジニアに対して、新たに、「VBやろうぜ(覚えようぜ)」なんて言えるわけがない。だから、VBで構築されたレガシー資産は何処も彼処も風前の灯火状態であることは間違いない。COBOLerの高齢化に伴い、極めて危険な状況にある汎用機のレガシー資産と同様の状況にあるのがVB6.0以前のシステムである。
レガシー資産をリビルド(マイグレーションとも言うけど)するにしても、VB6.0以前を知っているエンジニアだってそろそろ少なくなって来ている。ですから、レガシーシステムがまだ現役で動いている企業ほど、もう、本気で大慌てでマイグレーションに着手しないと手遅れになるのですが・・・
VB.NETは、どうなのか?・・・C#.NETでしょ?
「VB.NETには、将来性がないのではないか?」
VB6.0以前のレガシーシステムがまだ動いている環境は、極端に言えば、「マイクロソフト社のOS=Windows依存」状態にあり、それ以外のOS、例えばmacOSやLINUXなどを導入する気はサラサラないという事かもしれません。つまり、(いざとなれば)「VB.NETがあるじゃないか」という事です。
ところが、「VB.NETで大丈夫ですか?」関連情報が色々と耳に届いたり目にしたりして不安になり、悩み続けている。という経営者やシステム管理者も少なくない。
そもそも、2002年にVB.NETが登場して今年で22年。バージョンも16.9までアップデートされたにも関わらず、.NET以前のVBで構築されたレガシーシステムにこだわっていた人達が、「VB.NETでこの先、大丈夫か?」という悩みを持つというのも何とも不思議な感覚ですが、リビルドの時機を逸して来た人達だからこそ、次は、もっと大丈夫な?(長持ちする?)プログラム言語でのシステムを望むのでしょうね。現行システムも、十分に、頑丈だったからこそ、現在まで動いている立派なシステムだと思います。導入したシステムを大切に運用する人達(会社)にこそ、次も満足出来る良いシステムの導入を。と思いますね。
VB.NETに対して決定的なことは・・・
マイクロソフト社の方針として、「プログラミング言語としてのVB.NETの開発は既に終了しており、今後、VB.NETをプログラム言語として進化させる予定はありません。」という事です。
先述したように、マイクロソフト社は、.NETがバージョン5以上にアップデートして以降もVB.NETのサポートは継続することを公言(発表)している。でも、フレームワークに新しい(斬新な、先進的な)機能が何らか追加された場合に於いても、言語としてのVBに対して仕様変更が必要となる部分に関してはサポートされない可能性がある。つまり、マイクロソフト社としては、VB.NETのシステム開発言語としての役割はもう終了したと見ている。だからこそ、マイクロソフト社は、最も推奨するシステム開発言語として『C#.NET』を前面に打ち出している。(弊社のA氏も「C#.NET」或いは「Python」だと言っている)。
開発元(兼販売元)のマイクロソフト社自身がプログラム言語的には機能アップ(進化)させない方針であり、即ち、先々を考えた「新規システムの開発に対しては、VB.NETは不向き」であることは否めない。しかも、クロスプラットフォーム開発では圧倒的に不利(苦手)。C#.NETなどで代替可能。という事であれば、VB.NETでリビルドする絶対的な理由は何もない。という結論になってしまう。
もしも、VB.NETでなければならない理由を探すとしたら、現時点ではWindowsOSに閉じられた中でのシステムであるのなら、開発効率は極めて高いし、VBもVB.NETも両方を極めているベテランSEも探し易いことかな。(=ベテランSEのメリットはそれなりに、いや、たくさんあるのである。)
・・・と言うわけで、VB.NET系エンジニアさん募集です!
今さらとも思っていませんし、まだまだ高い需要がありますし、しっかりとシステムが理解出来る力が必要とされますから、
●VB.NETを使いこなせるSEさん、複数人募集します。
【年齢】 | 【身分】 | 【技術条件】 |
50歳以下 | 正社員 契約社員 | VB.NETが使いこなせること。& 出来れば、SQLが使いこなせること。 |
50歳以上 | 契約社員 個人事業主 | 同上 &・・・ (VB6以前システムの保守対応、バグ修正~改修経験などあれば尚可) |
C#.NET/Pythonが使えるエンジニアさん大募集です。
★C#.NET、或いはPython/JavaScriptで実装可能なSEさん、PGさん、大勢欲しいです。
得意とする業務分野が無くても問題ありません。
【年齢】 | 【身分】 | 【技術条件】 |
35歳以下 | 正社員(SE/PG) | C#.NET、或いはPythonかJavaScriptで実装可能なこと |
35歳以上 | 正社員(SE/上級PG) | 同上。 |
50歳以上 | 契約社員/個人事業主可 | 同上。 |
※募集要項に関しては、『キャリア採用ページ』をご参照なさって下さい。
尚、当該エンジニアの募集に関しては原則当社の直採用のみです。が、県内同業他社様のプロパーさんに限りご提案をお受け致します。派遣会社さん、紹介業者さんからのご提案は不可です。アシカラズ。 〆