特集:Small Basic開発入門

日本語化担当者が語るSmall Basic活用術

マイクロソフト 山田 昌良
2010/04/27

 Small Basicのダウンロード数が伸びている。いまやVisual Basicをはじめ、BASIC言語を基本とした言語および環境が230種類以上も存在するといわれている状況の中、いまなぜマイクロソフトはSmall Basicをリリースし、またなぜ利用者が伸びているのだろうか?

 今回の記事では、入門的なSmall Basicの紹介だけにとどまらず、Small Basicを使って面白いプログラムや実用的なプログラムを作るためのエッセンスとなるようなトピックを紹介しながら、Small Basicの価値や、Visual Basicとの違いなどを見ていきたいと思う。

 この記事を読んで、これからプログラミングを始める人や、再度プログラミングに挑戦してみようと思っている人はもちろんのこと、すでにある程度のプログラミング・スキルがある人もSmall Basicを使ってみようと思っていただければ幸いである。

1. Small Basicの位置付け:なぜSmall Basicがリリースされたのか?

 ご存じのように、マイクロソフトはすでにBASIC言語を基盤にしたVisual Basicを20年近く前からリリースしており、現在もWindowsアプリケーションやWebアプリケーションを開発するための代表的な言語として多くの開発者に利用されている。

 しかしながら、Visual Basicはさまざまなプラットフォームでさまざまな処理を高いクオリティで実現するために、大量の機能やライブラリが追加され、「何でもできる」言語として成長してきた代償として、これからプログラムを始めようとする人にとっては若干敷居の高いものになってしまったという印象は否定できない。

 また、Visual Basicには数多くのライブラリが用意されているが、それらを使用するためには、関数やメソッドにかなりの量の引数を引き渡す必要がある場合が多い。例えば画面上に簡単な円を描くだけでも、図形描画のブラシは何を使うか、ペンはどうするかというように、設定しなければならない項目が多いため、実際のプログラムは結構な長さになってしまうことが少なくない。

 もちろんそれはもろ刃の剣であり、Visual Basicを使えば細部にわたって開発者の意図する設定ができるということなのであるが、いずれにしてもVisual Basicを使ったプログラミングが単純ではないことは否定できない。そこで登場したのがSmall Basicである。

Visual BasicとSmall Basicの違い:コードの短さ

 Small Basicは名前が示すとおりスモールな言語であるため、マスターするのが楽であり、プログラムもVisual Basicで書いたものに比べて基本的に短くなる。

 例えば、以下のプログラムは画面の上を円が左上から右下へと移動するというもの。Visual Basicでは、Visual Studioが自動生成する部分や画面のデザイン部分を含めなくても、以下のようにそれなりの長さになる。

Public Class Form1
  Dim x, y As Integer

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    x = 0
    y = 0
    Timer1.Interval = 100
    Timer1.Enabled = True
  End Sub

  Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Dim g As Graphics
    g = CreateGraphics()
    g.Clear(Color.White)
    x = x + 1
    y = y + 1
    g.FillEllipse(Brushes.Aquamarine, x, y, 30, 30)

    If (x + 60 > Me.Width) Then
      Timer1.Enabled = False
    End If
  End Sub
End Class
画面の上を円が左上から右下へと移動する処理を「Visual Basic」で記述したコード

 ところが、これと同じような処理をSmall Basicで書くと、以下のようにわずか10行にも満たない短いものになる。

x=0
y=0
ball = Shapes.AddEllipse(30,30)
For x=0 To GraphicsWindow.Width
  Shapes.Move(ball, x, y )
  y=y+1
  Program.Delay(10)
EndFor
画面の上を円が左上から右下へと移動する処理を「Small Basic」で記述したコード
このプログラムの詳細については後章で紹介する。

 さらにVisual Basicでは、通常1つのアプリケーションを作成するのに必要なファイルが複数になるため、管理も複雑になる。例えば単純なWindowsフォーム・アプリケーションを作成した場合、ソース・ファイルだけでも14個ものファイルが生成される。

 一方、Small Basicでは1つのアプリケーションを構成するソース・ファイルは1つなので、大変分かりやすい。ただしこれは、Small Basicが大規模なアプリケーションを構築するのには向いていないことを意味している。

Visual BasicとSmall Basicの違い:開発環境が持つ機能の規模

 また、開発環境も大幅に違っている。現在のVisual Studioは、その統合開発環境上でサポートされているコマンドの数が2800個以上もあり、もはやすべての機能を1人のユーザーが使い切るということは考えられない規模になっている。

Visual StudioのIDE

 一方Small Basicの方はそもそもメニューがなく、用意されている機能はリボンとして表示されている。その機能もわずか13個しかないので、一目ですべてを見渡すことができる。

Small BasicのIDE

 これだけ機能を絞り込んでいるにもかかわらず、「マイクロソフトの開発ツールの中でも最も評判が高い」といわれているIntelliSense機能はしっかりサポートされている。というより、IntelliSense機能だけに関していえば、Visual Studioのエディタよりも見やすく作られている。

Visual Basicと比較したSmall Basicのメリット

 このように、Small BasicとVisual Basicは、言語の基本文法がBASIC言語であること以外は、まったく別の開発ツールである。Small Basicはあらゆる面でシンプルに設計されており、プログラムを作るユーザーの負担を減らすように工夫されている。

 Small Basicのようなシンプルな開発ツールがプログラミングの学習に役に立つのはもちろんのこと、すでにVisual Basicなどでプログラムを作成している人にも、息抜きに使ってみてほしい。複雑で長いコードを書くことに疲れてしまった熟練のプログラマーの方も、このSmall Basicを使うことでプログラミングの楽しさを思い出すきっかけになる可能性もあると、わたしは思っている。

2. Small Basicをどういう目的で使えばよいのか?

 「Small Basicはプログラミングの入門者向けツールである」

 これはマイクロソフトとしての公式なメッセージであり、確かにいまのプログラム入門者にとってこれ以上分かりやすくてシンプルで、使い物になるツールはなかなかないと思う。

 しかし個人的には、このSmall Basicにはプログラミング入門向け以上の価値があると思っている。そもそもSmall Basicで作成されたアプリケーションは、基本的には.NET Framework 3.5 SP1で動作するマネージ・アプリケーション(Managed Application)である。もちろん、本来.NET Framework 3.5 SP1が持っている機能のすべてをSmall Basicのプログラムを通して発揮することはできないのだが、十分に面白いことができる(詳細は次の章)。

 また、もしもSmall Basicでのプログラミングに限界を感じて、.NET Framework 3.5 SP1のすべての機能を使ったプログラミングに移行したくなったとしても、Small Basicで作成したプログラムをVisual Basicのコードへとコンバートする機能も用意されているため、それまでに書いたコードが無駄になることもない。

 さらに、Small Basicで書いたプログラムを「発行」機能を使ってWebに発行すると、そのプログラムは自動的にSilverlightアプリケーションに変換されてWeb上に公開される。

 つまり、Small Basicでプログラムを書けば、デスクトップ向けの.NET Framework 3.5 SP1アプリケーションと、Web向けのSilverlightアプリケーションを同時に作成したことになるのだ(詳細は後章)。

 従って中級者以上の開発者にも、.NET Framework 3.5アプリケーションやSilverlightアプリケーションを開発するための開発ツールの1つの選択肢として使っていただければと思っている。

3. Small Basicの準備・導入

 すでにSmall Basicをインストールして、動作する状態にある方はこの章は読み飛ばしていただいて構わない。また、詳細な導入および最初のプログラムの作成・実行については「特集:超簡単「Small Basic」でプログラミングを始めよう!」に詳しく紹介されているので、そちらを参照していただきたい。

 ここでは簡単にSmall Basicのインストール方法について触れておく。

 インストールそのものは簡単で、最初に.NET Framework 3.5 SP1をこちらからインストールして、そしてSmall Basicをこちらのページの右側にある ボタンを押してダウンロードし、インストールするだけだ。

 なお、Windows 7では.NET Framework 3.5 SP1はOSの機能として扱われている。コントロール・パネルの[プログラムと機能]−[Windows の機能の有効化または無効化]を選択すると、次のダイアログが表示されるので、[.NET Framework 3.5.1]のチェックボックスをオンにして[OK]ボタンをクリックする。これにより、.NET Framework 3.5.1(=.NET Framework 3.5 SP1に累積パッチを適用したバージョン)を有効にできる。

[Windows の機能の有効化または無効化]のダイアログ

 Small Basicのインストールは、特に迷うところはないはずだが、日本語版以外の言語のリソースも同時にインストールされることに注意してほしい。もっとも、1言語当たりのリソースの大きさは100Kbytes前後と小さいので、あまり気にすることはないだろう。

 また、次の画面のように[スタート]メニューのショートカットが言語ごとに作成され、しかもWindows 7などの場合、インストール後の[スタート]メニューの直下に、別の言語(フランス語版など)のリンクが表示される場合がある。これらの別の言語のリンクは使わずに、[スタート]メニューの[すべてのプログラム]−[Small Basic]−[Microsoft Small Basic]を使用すれば、日本語OSでは日本語でSmall Basicの開発環境が起動する。

[スタート]メニューに作成されるSmall Basicのショートカット・メニュー

 以降では、Small Basicでどのようなアプリケーションが開発できるかを具体的にイメージしていただくために、さまざまな面白い開発事例を紹介していく。


 INDEX
  [特集]Small Basic開発入門
  日本語化担当者が語るSmall Basic活用術
  1.Small Basicの位置付け/用途/準備・導入
    2.面白いSmall Basic開発事例(1)
    3.面白いSmall Basic開発事例(2)
    4.ここまでできるSmall Basic(1):SilverlightやEXE出力
    5.ここまでできるSmall Basic(2):Visual Basic移行

@IT Special

- PR -

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • foreachループで現在の繰り返し回数を使うには? (2017/3/23)
     LINQのSelect拡張メソッドを使用して、foreachループの中で現在が何回目の繰り返しなのか、そのインデックスを得る方法を紹介する(C# 7/VB 15対応)
  • Listの要素を並べ替えるには? (2017/3/22)
     LINQのOrderBy/ThenByなどの拡張メソッドとListクラスのSortメソッドを利用して、Listの要素を並べ替える方法を解説する
  • .NET Portability Analyzer (2017/3/21)
     .NET Portability Analyzerは、さまざまなプラットフォームをまたいだ.NETプログラムの移植性をチェックするためのツール
  • Visual Studio Previewとは? (2017/3/17)
     Visual Studio 2017のリリースと同時に始まった「Visual Studio Preview」と呼ばれる早期アクセスプログラムの概要を見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH