ひまわりは、他のプログラム言語(スクリプト言語)と比べ物にならないくらい「原始」です。
これは、私のひまわりの設計方針として、意図してわざと、原始的な構造にしました。
そのため、プログラムの構造化、オブジェクト指向などなど、難しい仕組みは出来る限り排除しました。プログラムの初心者向け用途や、使い捨てのプログラムを書くには、大仰な仕組みは全く不要だと思ったからです。
ひまわりの設計理念は、以下の通りです。
- プログラムは、基本的に、上から下へ流れていく。
- 命令を書けばとりあえず動く。
- 変数が使いたかったら、宣言しなくても使える。
- クラスやその継承など覚えるのが面倒なもの、使い方が複雑なものは出来るだけ省く。
- プログラムをゼロから作らなくても、他人の作ったものへ直感的に改良や書き換えが出来る。
ひまわりの長所を列挙してみます。ひまわりの短所を列挙してみます
- プログラムの命令や制御構文、変数名が、日本語で構成される。よって、何をするプログラムなのか見当がつきやすい。
- 変数を使うのに、宣言は不要。
- 変数の型が曖昧。状況によって、値が文字列なのか数値なのかを状況によって判断する。
- インタプリタ方式で実行するので、ひまわりから、ひまわりのプログラムを実行することが出来る。
- 配列変数、二次元配列が扱える。二次元配列は、CSV形式で値が保持されるので、表計算ソフトとの連携が得意。
- 辞書(ハッシュ)機能がある。
- GUIオブジェクト以外の変数は、すべて、文字列として読み書きが出来る。
- 実行速度が遅い
- 簡単なフォームデザイナがついているものの、ソース<=>GUIが完全に対応していない。
BASICとひまわりは、似ています。BASICと言っても、MS-VisualBasicではなく、懐かしい時代(MS-QuickBasic以前)の、BASIC(N88-BASICや、MSX-BASIC)の構文に似ています。
BASIC(Visual Basic) ひまわり 条件分岐(単文) IF A>B THEN C=A ELSE C=B もし、Aが、B以上ならば、Cは、A。
違えば、Cは、B。条件分岐(複文) IF A>B THEN
C=A
A=B
ELSE
C=B
B=A
ENDIFもし、Aが、B以上ならば(
C=A
A=B
)違えば(
C=B
B=A
)。繰り返し(単純) FOR I=1 TO 10
MsgBox I
NEXT10回、回数と、言う。 繰り返し(複雑) FOR I=1 TO 10
FOR J=1 TO 10
MsgBox I & J
NEXT
NEXTIを、1から、10まで、繰り返す(
Jを、1から、10まで、繰り返す(
(I&J)と、言う。
)。
)。ラベルジャンプ Label1:
A=A+1
IF A<5 THEN Goto Label1*ラベル1
Aに、1を、足す。
もし、Aが、5以下ならば、ラベル1へ、飛ぶ。サブルーチン GOSUB SUB1
・・・
SUB1:
A=A+1
RETURNサブ1を、呼ぶ。
・・・
*サブ1
A=A+1
戻る。配列変数 Dim A(1 to 10) As Integer
A(1)=50
A(2)=80
MsgBox A(1)’宣言は不要
A#1=50
A#2=80
A#3=「文字列も数値も何でも入ります。」
A#1と、言う。