なぜこの記事を書こうと思ったのか
転職した先の環境がWindows+IIS+Classic ASP(VBScript)でした。
簡単な自己紹介はこちらです。
現在、私がイントラ上で稼働するいくつかの社内向けWebサービスに携わっています。
既存サービスの機能追加や、新たなサイトを開発していますが、Hello world以上のものが書けるのに、この技術の仕組みや歴史、そしてどうして未だに残り続けているのかを憶測でしか把握していませんでした。
残り続ける理由はなにか
- Windows Server(IIS)と相性が良い
- Classic ASP資産を大量に保有している
- 習得コストの低い言語を選択したい(保守者のスキル習得が容易になる)
- .NETへの移行に障壁がある
これらの理由からClassic ASPが選ばれた(あるいは消極的に選択した)と考えられます。
難点はHTMLに組み込むことになるのでコードの可読性が損なわれるやすくなることです。
Classic ASPとVBScript
Classic ASPの言語であるVBScriptについて、歴史と仕様を復習します。
アップデート
1996年に登場し、2002年に.NETに置き換えられました。
脆弱性アップデートは行われており、現在でもClassic ASPとしてサポートが続けられています。
機能的なアップデートは2000年を最後に行われていません。VBScript/JP.Wikipediaより。
成り立ち
ActiveServerPages(ASP) 1.0はIIS 3.0のアドオンとしてリリースされました。
当時Netscapeがクライアントスクリプトとして開発したJavaScriptの対抗となる存在でした。
(なお、Microsoft製のJavaScriptとしてはJScriptというものが別にあります。)
またIIS上でサーバスクリプトとして動かすことができます。これが現在残っているClassic ASPです。
型
VBScriptではただひとつVariant型のみが提供されています。
型安全が保証されないかわりに(卒倒する人はどうか落ち着いて)、柔軟性を得ています。
Hello world
<%@ Language = VBScript %>
<%
Dim print_str
print_str = "Hello world"
%>
<!DOCTYPE html>
<html>
<head></head>
<body>
<%=print_str%>
</body>
<\html>
私は表示部と制御部をソースファイルの上下で分けています。
よりよい習慣があればコメントをください。
この言語は将来どうなるか?
最後にこの構成、言語の将来の需要を予想します。
いつ死ぬか
これは残念ながらMicrosoftにしか分かりません。最後の機能的なアップデートから既に20年経過しています。
Classic ASP開発者の今後の需要はあるか?
IIS(とWindows Server)がClassic ASPのサポートを続ける限り、一定の需要はあり続けます。
.NETに移行してない、または移行しきれない資産を保有する企業からの需要はありますが、2000年後半以降(Classic ASPがClassicと呼ばれるようになってから)にソフトウェア資産を増やした会社からの需要は殆どないと思われます。
この技術の価値は今後あがる?またはさがる?
これからこのスキルの需要が急激に高まるシーンが来ると予想します。それはClassic ASPのサポート終了が明言され、明確に過去の資産の破棄か移行を選択しなければならなくなったときです。
VBscriptともう一つ近代的な言語を操り、所有している資産を解析し、別の方法でそれを代替する必要がでてくるでしょう。危機をピークにClassic ASPの需要は減少していきます。
Classic ASPの危機が来るのと、企業のもつClassic ASPの資産の価値がなくなる(企業のビジネスにソフトウェアがそぐわなくなる)ことのどちらが早いか。(もしかしたらもっと早くビジネスが破壊され、歴史ある会社そのものがより早いスピードで消失するかもしれません。)
Classic ASP開発者はすぐに足を洗うべきか?
前時代のコードを毎日数十〜数百行(あるいはそれ以上)増やし続けている(私のような)開発者は、職を変えるべきでしょうか。
私はそれだけでは職を変える十分な動機ではないと考えます。Classic ASPを利用し続け、企業のビジネスが衰退している、つまり市場が衰退している、あるいは新たに現れた強力なライバルに市場を奪われている場合は、職を変えるに十分な動機だと考えます。
重要なことは、Classic ASPが資産として価値を持てているか、という点にあります。あなたが企業にとって価値ある資産の開発者であるなら、昇給交渉テーブルに付くことができます。一方、近代的で市場で需要のある技術を保有していても、その企業のビジネスに与える影響が少なければ、有利な交渉材料にはなりません。
職を変えるかどうかは、今の職の背景にあるもの(すなわち企業とそのビジネス)の価値を計算するのがよいでしょう。価値は、下記の考え方によって概算することができます。
- 企業の収益源となるビジネスはいくつあるか
- ビジネスの市場占有率は1位か、そうでないか
- 企業のもつビジネスの市場は拡大するか、縮小するか