Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

地方IT企業の時計は20年前から動いていないのでは

僕の最近の楽しみは全国の地方IT企業のWebサイトを片っ端から巡回すること。下記リストにある秋田県を現在見ています。

IT・SIer・ゲーム企業リンク集(WEB企業リスト): 秋田県

30社近く見てきて感じたことを書きます。

メインの顧客は各種公的機関

地方自治体が100%って明記している会社さんもあったぐらい、公共機関の比率が高い。地方自治体・なんとか福祉法人・なんとか組合・JAなど。歴史がある企業ほど、民間の企業の仕事の比率が滅茶苦茶少ない傾向にある。無いんだろうねぇ、業務システム開発の機会なんて。

20〜30年前の地方のIT需要なんて公共と金融ぐらいしか無いので、そこを抑えたシステムを開発した会社さんが生き残るという話なんだろうなぁ。公共機関は予算消化の意味で高く買ってくれるし、潰れないし、金は払う(サイトは長いらしいが)から、ええこと尽くめ。

WebのUIを作るのはとても苦手

コーポレートサイトがHomepage Builderでお作りになったのですかというサイトが多い。なぜか、ヘッダー部分が微妙にぼかしが入っていて、10年以上前はそれがトレンドだったのかこれ。

地方のIT企業でWebアプリを作れる人、滅茶苦茶少ないように感じた。HTTPって説明できる人いなさそう。仕訳にはやたら詳しそうだけど。

Windowsフォーム最強伝説

クラサバよ、クラサバ。時代はクラサバ。インターネットがナンボのもんよ。Webアプリケーションサーバなんてここ15年ぐらいの話だし、それより前の時代はクラサバのアーキテクチャしか無かったし、Windows95が爆発的に普及したあの時代に存在した開発環境といえば・・・

Visual Basic

これよ。Wikipedia見たらVB4.0がWindows95用で開発環境として提供され、98年に未だに現役と恐れられているVB6.0が発売されている。地方のIT企業にはVBプログラマがたくさんいることだろう。オブジェクト指向?(゚Д゚)ハァ? お前サブルーチンの前でオブジェクト指向とか言えるの?っていう世界かもしれないな。

Web化なんてどうでもいいよね、秘匿性の高い情報を扱う各種公共機関においては、イントラで使われるのが当然のことだろう。20年後の技術でリプレースする理由も無さそう。こういうクラサバシステムが20年近く前に乱立してそれが色んな公的機関で利用され、その流れが延々と続いているっていう企業が地方IT企業の実態のように思いました。

だけど、若手プログラマには最悪の環境じゃないですかね。枯れた技術は否定しないけど、枯れた技術にしか触ることが出来ないのなら、レガシーの世界で生きるしか無いもん。オブジェクト指向全盛の時代にこんなコードみたら発狂しそうだよ。

Dim szConnStrIn As String         'Input connection string
Dim cbConnStrIn As Integer        'Length of input connection string
Dim szConnStrOut As String * 257  'Buffer for ODBC connection string
Dim cbConnStrOut As Integer       'Number of bytes ConnStrOut
Dim cbConnStrOutMax As Integer    'Max length of ConnStrOut buffer
Dim szSSQLStmt As String          'SQL stmt to select single record
Dim szMSQLStmt As String          'SQL stmt to select all parts
Dim lcbBuffer As Long             'pcbValue
Dim rc As Integer                 'Return code
'***********************************
 
   '*  Allocate an environment handle
   rc = SQLAllocEnv(henv)
   If rc <> SQL_SUCCESS Then
      Call DisplayError(rc, " Unable to allocate ODBC environment")
   End If
 
   '*  Allocate a connection handle
   rc = SQLAllocConnect(henv, hdbc)
   If rc <> SQL_SUCCESS Then
      Call DisplayError(rc, " Unable to allocate ODBC connection")
      Call DspSQLError(henv, SQL_NULL_HDBC, SQL_NULL_HSTMT)
   End If