技術者としてのVB使い
プログラムを書くというのも不思議なもので、長い年月をかけてやっているからといってよいプログラムが書けるようになるというわけではありません。ベテランの域に達しているキャリアを持つ人でも、不思議なコードを書く人は一定の割合で存在しており、いつまでたってもいなくなることはありません。
Web や SNS、色々なメディアの記事を見ていると、こういった話題もよく目にすることはあるのですが、大体にして当事者には届いていないか、もしくは自分が当事者だと感じていないために、他人事として捉えられているようにも感じます。
プログラムを作成するための環境や、言語それ自体は常に進化しており追いかけていくのもやっとの状態なのですが、先ほどのような人達にはその進化すら気にもされていないというか、まったく意識されていない状態です。特に顕著なのは悪名高い VB を主に利用している人達、先日書評を書かせていただいた罪と罰においてもそのように扱われていますが、VB6 時代の風習を今の時代になっても頑なに守り続けている人とは、2017 年となった今でさえ苦労せずに出会うことができます。
VB という言語自体は非常に良い言語です。最新技術が盛り込まれることは少なくなりましたが、それでも .NET 環境の一員ということもあり、ある程度までは最新と呼ばれる仕様が盛り込まれています。BASIC 言語の流れを汲んでいることもあり、現在主流と言われている多くの言語と比較しても、開発という点ではほとんどデメリットはありません。
しかし世の中を見ると、レベルの低い開発者は VB の世界に多い、という偏見もよく見かけます。VB 使いはレベルが低いので一緒に仕事をしたくない、そこまで言われることも多々あります。
VB はその辿ってきた歴史もあり、他言語と比較するとやや利用者層は異なります。純粋に開発者が利用する割合が多い言語と、非開発者も一定数以上いる言語とでは、それによってつくられる風土も全く別なものになります。コードの可読性な話題にも通じますが、どうしても俗人的な要素が大きいので、他言語でよいといわれる思想も、別の言語では悪となることがあります。どちらかというと、文章のようにプログラムを書くことができる VB は、他言語から見ると冗長と思われるところもありますが、その環境で育った人間にしてみれば、他言語のようにシンプルに書くことが逆に読みにくいコードとなってしまうのです。
そういった点もありますが、それを除いたとしても実際にレベルが低い技術者と出会う確率が高いのも偽りではありません。そこには、VB を利用する開発者にとって優先されるのは「動くシステムを素早く作ること」、それが最優先に考える人が多いからではないでしょうか。
保守性だ可読性だ、など開発をする上では色々な視点から語られる話題がありますが、VB を利用した開発の場合、大規模から小規模まで非常に様々な場面での利用があります。後で別の人間に引き継いで、ということをそもそも求めていない開発というのも、世の中には実際に存在しています。その環境では、保守性や可読性は、作り終わることと比較すると遥かに優先度が低くなり、下手をすると検討すら行いません。そうは言っても複数人で開発するなら色々考えないといけない、と言われるかもしれませんが、そもそも複数人で開発しないことも非常に多くあります。そのような状況では、まず希望する動作をすることが最優先で、それ以外の要素の優先度は非常に低くなるということも普通にあります。
そういった他言語を利用した開発とは、少々状況が異なる場面で利用することが多いから、VB で作成されたものを他言語を利用している人が見た時に、ものすごく叩かれる面が見えてしまうというのも、ある意味で仕方のないところなのかも知れません。
最初に書いた、頑ななベテラン技術者というのも、このような特殊な環境を考えると十分にあることがわかるかと思います。新しい技術に対応してプログラムを書くこと以上に、優先しているものがある環境で長い間開発を行っていたのなら、そうなってしまっても何も不思議ではありません。
IT 業界としてそれが良い事か悪い事かは別として、そのような経緯がある、というのは知っておくといいと考えます。開発というのは、関わる人それぞれで求めるものも異なり、非常に難易度の高い業務です。そのような業務ですから、一概にこう、と言い切れるものは殆どありません。ある人にとって正しい事が、別の人にとっては誤っている事であるのも非常に多く存在するのです。
そういった環境の違いにも意識を向け、その中で採ることができる最善策を選べるよう、多くの環境を知ることがこれから大切になるのかも知れません。
コメント
T.Nakane
所詮、言語は何でも良いのでは?好き嫌いはありますが。
ソフトウェアを作り続けて30年ですが、環境や要望によって色々な言語を使わなければならないことが多々ありました。
経験した言語は、
FORTRAN, COBOL, アセンブラ, PL/I, BASIC, C, C++, VB, C#, PHP, Perl, 等
harikofu
書いている内容を読むに、VBの使用者は技術者としてレベルが低いという結論は変わってないような気が・・・
個人的には、***言語という以上、それは文章を書くものであり、文章とは他人に分かるように書くものだと思います。
日記みたいに自分だけの世界で完結するなら独自の暗号文で書いても良いと思いますが、いかに限定条件下での使用でも、自分以外にも使ってもらうのであれば、他の人が理解できるように書くのは言語を使うものとしてもマナーじゃないかと。
文系プログラマーで、かつ、他の人が作ったプログラムのメンテをすることが多い立場としては、そう思います。
Ahf
T.Nakane さんコメントありがとうございます。
言語は道具でしかないですので、目的に応じて使い分けらるのが、一番理想的ですよね。
今回はそういった制約がない、ど新規なケースで考えてみたことを話にしてみました。
Ahf
harikofu さんコメントありがとうございます。
言われる通り、自分が関わってきた世界においては、技術的な点について覆ることはあまりない、と感じています。ただし、VB で業務をされている人達は、なかなか表に出てこないというか、他人と交わる場所に出てくるのが難しい雰囲気も感じていますので、自分が知らないだけで事実はそうではない、ということを期待したいです。
短期納期な時は、どうしても納期優先になってしまい、コードの質がどうこうというところにはなかなか目を向けられないと私は感じているのですが、他人のPGメンテを考えると全くもってその通りだと思います・・・。
Jitta
VB使いに限らない、と思います。
VBは、アプリケーションソフトウェア開発者以外の人が、アプリケーションを容易に開発できるようにと開発されました。ここで、VBは「言語」にとどまらず、GUI開発ツールを兼ねています。GUIが容易に開発できるために、ソフトウェアの肝であるロジック、プログラム(手順)そのものまで容易に開発できるようになったと錯覚した大勢の人によって、GUIツールを付ければアプリケーション開発が容易だという幻想を生んでしまったのではないかと考えます。
VisualStudioは、2012くらいから「開発が簡単に」とは言ってないはず。プログラム開発に集中できる、と言ってたと思います。
Ahf
Jitta さんコメントありがとうございます。
私も、頭の中では VB 使いに限らないと思っているのですが、
何故か出会うことが多いのは、VB 使いなのですよね・・・非常に不思議です。
私は VB2 時代から VB を利用しているので、Jitta さんの言われる流れについて
非常に共感します。RAD ツールが流行りだしたあの時代、画面とロジックが一体化していた時代だったのもあり、あそこで開発は簡単に行うことができると錯覚した人も多かったと思います。
hashimoto
VBの技術者の方で会社を立ち上げてみたい方をご存じでしょうか?ベースの仕事は有ります。プラス、BIM/CIM関係の開発をやってみたいと思う方歓迎です。私は技術者ではありませんので
出来れば営業サポートをしていきます。そのほか神戸の方で、同じくサポートしたい方がいらっしゃいます。ご連絡下さい。