スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

VBプログラマーを駄目プログラマーと言わせない 第5回ー混沌としたVBの歴史を振り返る

 この記事は、第4回ー抽象化を使いこなそうの続きです。前回はVBが持つ悪習と、その要因となる文化について考察しました。今回は一息ついて、VB7が劇的な変化を遂げた理由と歴史を解説します。
 VB愛好家の私はVB7の言語仕様変更を歓迎しました。マイクロソフト社が述べている変更の目的を読めば、その理由が分かってもらえると思います。なおこの目的はマイクロソフト公式書に基づいています。

  • 言語を簡略化し、より一貫性のある言語にする。
  • ユーザーから要望された機能を新しく追加する。
  • コードの読みやすさと保守性を向上させる。
  • プログラマによるコーディングエラーを防ぐ
    (この時代の表記はプログラマとなっています)
  • アプリケーションの信頼性を向上させ、デバッグを簡単にする。

マイクロソフト社の本気を感じました。.NETが発売されると聞いた私は、VBはもう用済みなのかなと思いC#を覚えました。C#を覚えた理由はそれだけではありませんが、一時的に絶望感があったのも事実です。また、VB6まではOSの進化から取り残されていたので、.NETから排除される恐れがあると考えていました。COM時代になって言語依存性が薄れたのですが、やはりVBは遅れているという印象を拭い去れない状態でしたので、マイクロソフト社の本気を知り非常に嬉しかったです。
 そういう経緯もあり、VB7に対するオブジェクト指向プログラミングの機能追加に対して、バッシングをするVB使いの気持ちが分かりませんでした。むろん私は、言語仕様の変更は詳細に目を通しました。その変更は、マイクロソフト社の目的と合致しており、流石マイクロソフトというべき出来でした。VBプログラマーは、「C++と比べて速く作れるから使用している」というVBプログラマーの発言(当時現場でよく聞いた言葉です)と照合して考えても、より生産性が高くなり、.NETからのけもの扱いされないのですから(仕組みからして明らか)、喜ぶ理由はあってもバッシングする理由はありません。真面目にプログラマーしているのであれば、バッシングする理由がまったくありません。しかし、当時のVB6プログラマーは結構な数の人がバッシングし、今もなお頑なにVB6を使用している人がいます。
 当時を振り返れば、COMプログラミング時代でした。COMプログラミングは他言語との連携を可能とし、当時の技術から考えれば、非常に有効な技術でした。VB6プログラマーは、COMプログラミングが容易にできる言語として、その地位を確保していました。しかしながら、COMにはバージョンヘル問題がありました。加えて、OSの機能をある程度アクセスできるようにしてくれていましたが、WindowsOSはCとC++で実装されています。所詮COMは一部のOSサービスにしかアクセスできません。COMプログラミングの容易さをのぞけば、VBプログラマーの存在価値はイマイチでした。そんな時代背景ですから、.NETに完全移行するVB7を批判するバッシングする理由はありません。
 その頃は確か、まだ私は一企業の研究者であったので、研究目的で複数の言語を習得していました。そんな私が公平に見ても、他言語に引けを取らないメリットを提供するVB7は素晴らしいものでした。未だにVB7をバッシングし、忌避し続ける理由が分かりません。
 こういう発言をするとたまに、「貴方は純粋なVB使いじゃない。他言語に浮気している。」と非難される事がありますが、VBをバージョン4から愛用し、言語仕様を詳細に研究し、バイナリ解析まで手を出している私は一応VB愛好家だと言っていいと思います。まぁ何言語でも一応触ってみる私は、VB純血主義者からしてみれば浮気性なのかもしれませんが、プロと言うものはお客様にの要望に応えるのが第一です。VBで出来ない事を他言語を使ってでも解決する必要があります。多言語を使用するのは、プロとして当然でしょうし、それだけにVBを深く知っています。F#、C#、C++などとVBを比較して始めて特有の文化を意識できます。
 今から思えば、日本のIT産業はこの時(2002年前後)既に硬直していたのかもしれません。日本のIT産業は、多重下請け構造かつ、人事制度が最悪ですので、多くのIT企業がぼろぼろです。その状態ですから、VBを本当の意味で理解し、プロとしてVB言語を分析していたのか甚だ疑問です。どうやら、日本特有の空気で判断する体質が、今もなおVBプログラマーを翻弄しているようです。なんとなくVBプログラマーを卑下する、なんとなくVBプログラマーだから努力しない、なんとなくVBプログラマーを雇う・・・そんな日本の風土が事態を悪化させています。これを改善するには、VBプログラマーがその態度を改めるしかないでしょう。
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

インドリ

Author:インドリ
みなさん、はじめまして、
コンニチハ。

ボクは、無限の夢(infinity dream)を持つネタ好きな虹色の鳥インドリ(in dre)です。
色々な情報処理技術を啄ばむから楽しみにしてね。

http://twitter.com/indori
は別人による嫌がらせ行為です。
私とは関係ないので注意して下さい。
次はなりすましブログなどをするかもしれませんが、ここ以外でブログをするつもりがないので、ここ以外にインドリのブログがあったとしても無視してください。


何度言っても分からない人がいるので、ここにコメント欄へ書き込むときの注意事項を書きます。


一、社会人としてのマナーをわきまえましょう。
一、妄想に基づく書き込みを止めてください。
一、暴言の類は書かないで下さい。
一、某誹謗中傷サイトの書き込みは彼らの妄想に基づく書き込みですから無視して、ここへ書き込まないで下さい。
一、コメント書く前に他のコメントよく読んでから行って下さい。
一、言いがかかり等の行為を禁止します。
一、その他常識的に考えて迷惑なコメントはしないで下さい。


以上のルールを守れない人のコメントは削除します。



利用上の注意
ここに紹介してある文章およびプログラムコードは正確であるように心がけておりますが、内容を保証するものではありません。当サイトの内容によって生じた損害については、一切の責任を負いませんので御了承ください。


執筆したCodeZineの記事


【VB.NETで仮想CPUを作ろう】

  1. VB.NETで仮想CPUを作ろう
  2. レジスタの実装
  3. 仮想CPUのGUI化
  4. テストドライバの改良
  5. CPUの基礎動作の実装
  6. MOV命令の実装
  7. ADD命令実装
  8. SUB命令実装
  9. INC命令&DEC命令の実装と命令長
  10. MLU命令の実装とModR/Mについて
  11. DIV命令の実装とイベント設計について
  12. 機械語駆動式 関数電卓を作ろう!
  13. 機械語駆動式 関数電卓を作ろう! 解答編(前半)
  14. 機械語駆動式 関数電卓を作ろう! 解答編(後半)


【仮想ネットワーク実装でTCP/IPを学ぼう】
  1. TCP/IPの基礎と勘所
  2. ネットワークアクセス層の勘所
  3. インターネット層の勘所
  4. トランスポート層の勘所
  5. アプリケーション層の勘所
  6. セキュリティの基礎と仮想ネットワークの仕様
  7. GDI+と独自プロトコルの定義



【並列化】
インテル Parallel Studioを使って並列化プログラミングを試してみた
並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」


【TBBシリーズ】
  1. インテル スレッディング・ビルディング・ブロックの概要
  2. インテルTBBから学ぶループの並列化
  3. スレッドセーフとインテルTBBのコンテナ
  4. インテルTBBのスレッドクラス


【OpenMPシリーズ】
  1. OpenMPの基礎構文
  2. OpenMPの実行時ライブラリと並列ループ
  3. OpenMPのメモリモデルとfork- joinモデル

最近の記事
最近のコメント
月別アーカイブ
カテゴリ
Ada (9)
COBOL (5)
C (9)
C++ (11)
C# (370)
D (25)
Java (8)
Perl (1)
Ruby (14)
PHP (2)
Boo (2)
Cobra (2)
LISP (6)
F# (33)
HTML (0)
XHTML (0)
CSS (0)
XML (0)
XSLT (0)
Scala (4)
WPF (0)
WF (2)
WCF (0)
LINQ (4)
MONO (5)
Linux (0)
MySQL (0)
ブログ内検索
リンク
最近のトラックバック
RSSフィード
ブロとも申請フォーム

この人とブロともになる

QRコード
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。