# ひまわりを他の言語と比較する

## ひまわりの設計理念

> ひまわりは、他のプログラム言語（スクリプト言語）と比べ物にならないくらい「原始」です。
> これは、私のひまわりの設計方針として、意図してわざと、原始的な構造にしました。
> そのため、プログラムの構造化、オブジェクト指向などなど、難しい仕組みは出来る限り排除しました。プログラムの初心者向け用途や、使い捨てのプログラムを書くには、大仰な仕組みは全く不要だと思ったからです。
> ひまわりの設計理念は、以下の通りです。

> - プログラムは、基本的に、上から下へ流れていく。
> - 命令を書けばとりあえず動く。
> - 変数が使いたかったら、宣言しなくても使える。
> - クラスやその継承など覚えるのが面倒なもの、使い方が複雑なものは出来るだけ省く。
> - プログラムをゼロから作らなくても、他人の作ったものへ直感的に改良や書き換えが出来る。

## ひまわりの長所短所

> ひまわりの長所を列挙してみます。
> - プログラムの命令や制御構文、変数名が、日本語で構成される。よって、何をするプログラムなのか見当がつきやすい。
> - 変数を使うのに、宣言は不要。
> - 変数の型が曖昧。状況によって、値が文字列なのか数値なのかを状況によって判断する。
> - インタプリタ方式で実行するので、ひまわりから、ひまわりのプログラムを実行することが出来る。
> - 配列変数、二次元配列が扱える。二次元配列は、CSV形式で値が保持されるので、表計算ソフトとの連携が得意。
> - 辞書（ハッシュ）機能がある。
> - GUIオブジェクト以外の変数は、すべて、文字列として読み書きが出来る。
> ひまわりの短所を列挙してみます

> - 実行速度が遅い
> - 簡単なフォームデザイナがついているものの、ソース＜＝＞GUIが完全に対応していない。

## BASICと比べる

> 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 NEXT | １０回、回数と、言う。
> 繰り返し（複雑） | FOR I=1 TO 10 FOR J=1 TO 10 MsgBox I & J NEXT NEXT | Iを、１から、１０まで、繰り返す（ Jを、１から、１０まで、繰り返す（ （I＆J）と、言う。 ）。 ）。
> ラベルジャンプ | Label1: A=A+1 IF A<5 THEN Goto Label1 | ＊ラベル１ Aに、１を、足す。 もし、Aが、５以下ならば、ラベル１へ、飛ぶ。
> サブルーチン | GOSUB SUB1 ・・・ SUB1: A=A+1 RETURN | サブ１を、呼ぶ。 ・・・ ＊サブ１ A=A+1 戻る。
> 配列変数 | Dim A(1 to 10) As Integer A(1)=50 A(2)=80 MsgBox A(1) | ’宣言は不要 A#1=５０ A#2=８０ A#3=「文字列も数値も何でも入ります。」 A#1と、言う。

戻る