日本語でソースを記述するプログラミング言語が何故普及しないのか。

たまにはITエンジニアらしいエントリーを書こう(・ω・)
日本語でソースを記述する言語とはこんな感じだ。

【Mind】
接続処理とは
    モデム初期化し
    通信エラー?
        ならば エラー文字列で 重大エラー
        つぎに
    "03-4444-5555"に 接続すること。

送信処理とは
    "B:MESSAGE.TXT"を ファイル送信すること。

メインとは
    接続処理し
    送信処理すること。

【なでしこ】
年は2000
#(1)4で割れたら閏年の可能性
もし(年%4)=0ならば
  #(2)100で割れたら閏年でない可能性
  もし(年%100)=0ならば
    #(3)400で割れたら閏年
    もし(年%400)=0ならば
      「閏年である」と表示。
    違えば
      「閏年ではない」と表示。
  違えば
    「閏年である」と表示。
違えば
  「閏年ではない」と表示。


まぁVisualBasicでも変数名に2バイト文字が使えるのでこんな風には書ける。

VisualBasic
Public Function ReadFile(ByVal strFilename As String) As Long
 Dim ファイル番号 As Integer
 Dim 読み出しバッファ As String
 Dim カウンター As Long

 ファイル番号 = FreeFile()
 カウンター = 0
 Open strFilename For Input Access Read As #ファイル番号
 Do Until EOF(ファイル番号)
  Line Input #ファイル番号, 読み出しバッファ
  カウンター = カウンター + 1
 Loop
 Close #ファイル番号
 ReadFile = カウンター
End Function


時々論じる以前から日本語でソースを記述するプログラミング言語をバカにしている書き込みを見かけることがある。例えそこに論理的な理由が無いとしてもだ。個人的にプログラミング言語に純粋に優劣は無いと思っている。まぁその言語が熟成された期間の差異によるものは多少なりともあるとは思うが使う前から「○○言語はクソ」などと言うほどの差異は無いように思う。もしそんなに声を大にして非難するとしたらそれは目的に応じた言語の選択では無かったということだろう。


どのような言語でも得手不得手というものはある。例えばVisualBasicで配列の任意の添え字番号の要素を削除するのは面倒だ。

VisualBasic
Public Sub VB_splice(ByRef array As Variant, ByVal offset As Long)
 Dim lngCount As Long

 If offset = UBound(array) Then
  ReDim array(UBound(array) - 1)
 Else
  For lngCount = offset To UBound(array) - 1
   array(lngCount) = array(lngCount + 1)
  Next lngCount
  ReDim array(UBound(array) - 1)
 End If
End Function

これがperlだと一行で済む。

perl
splice(array, offset);

あれが出来ない(または簡単に出来ない)からこの言語はダメみたいなレッテル貼りは如何なもんかと思う。


では本題に戻って日本語プログラミング言語が何故普及しないのか。例えばMindなんかはCと比べても何の遜色も無いように思う。メモリアクセス・I/Oポートアクセス・BIOSコールやアセンブラ記述なんかも普通に出来るので前述のようにAなら出来るがBでは出来ないのでBは劣っている的な話にはならないはず。


・・・と、ここまで書いて拙者は日本語プログラミング言語肯定派なのであまり否定意見が思いつかないことに気付いたw


否定意見が思いつかないので肯定意見。
日本語プログラミング言語ではコメントをあまり書かなくてもいい。それはつまりソースがもうすでにコメントも兼ねているからだ。これはプログラマにとってはとても有り難いし、また別の日にエントリー投下するつもりだが前任者から得体の知れないソースを引き継がされた場合でもそれなりにやっていることの理解はコメントのほとんど書かれていないC++VBのソースを渡された場合より圧倒的に容易なはずだ。

【C】
/* これは「Hello World!」を表示するプログラム */
#include
void main()
{
 printf("Hello World!");
}

【Mind】
メインとは
 「Hello World!」を 表示する。


にも関わらず日本語プログラミング言語が普及しないわけ。単にデファクトスタンダードはもはや覆せないというだけのことかもしれない。もう15年とか20年ずっとCで仕事してきた人に今更同等の機能があるからと言ってMindに乗り換えろとは『仕事なら』言えないわなぁ。まぁ言語そのものの問題だけではなく、開発環境や関連ツールの充実具合ってのもあるしな。


どなたか「日本語で記述する言語はこのへんがクソだぜ!」みたいに具体的に指摘できるのなら是非コメントをお願いします。