BASIC
誕生したのが1964年であり、当時普及していたプログラミング言語FORTRANにいくつかの点で似ている。構文は、FORTRANの文法が基になっているとしばしば解説されている。
BASICはインタープリタ方式で動くものと、コンパイラ方式で動くものに大別できる。現時点では、構文の様式が大きく異なる2種類のBASICが存在している。構造化前のBASICと、構造化後のBASICである。
MS-DOS上で動作するGUI拡張環境として、1985年にMicrosoft Windows 1.0が登場し、のちに独立したオペレーティングシステム (OS) としても普及を始めた。GUIオペレーティング環境はコンピュータの操作に直感性をもたらしたが、Windows上で動作するGUIアプリケーションソフトウェアは、ボタンのような画面上に表示された視覚的なGUI部品(ウィジェット、コントロール)をユーザーがマウスで操作することに反応して動作する、イベント駆動型のプログラムである。Windowsアプリケーション向けのプログラミング言語や開発環境として、マイクロソフトはC/C++を用いた開発ツール(Microsoft C/C++、のちのMicrosoft Visual C++)だけでなく、構造化BASICを用いた開発ツールとして「Visual Basic」(VB) も提供した。VBは前述のQuickBASICから発展したもので、Rapid Application Development (RAD) 方式の本格的な統合開発環境 (IDE) でもあり、生産性と直感性に優れていた。
Windows自体はC/C++を使って開発されており、マイクロソフトの開発エンジニアたちはC/C++に慣れていたわけだが、それでもBASICを見捨てることはしなかった。 もともとビル・ゲイツはAltair 8800向けのAltair BASICを最初の製品としてビジネスの道を切り開き、その後も多数の自社BASICを開発してマイクロソフトを大きくしたので、マイクロソフト社はBASICとともに大きくなってきたわけであり、簡単にBASICを捨ててしまうような選択はしなかったのである。
急速に広まったBASICだが、構造化機能の無いBASICは教育に使うな、などとコンピュータサイエンティストの一部から酷評されたりもした。1975年にはすでに、エドガー・ダイクストラから激しく批判された"How do we tell truths that might hurt?"などが知られる。
行番号とGOTO文は特に激しく批判された。(構造化前の)BASICのIF文とGOTO文を組み合わせて使用する文(「IF .... THEN GOTO ...」)を頻発せざるを得ず、IF + GOTO文を増やすほどスパゲティプログラムになってしまう、ということはしばしば指摘された。
さらにBASICには局所変数(ローカル変数)が無いなど、他にも問題は多い。つまり、プログラムのどこからでもアクセス可能な大域変数(グローバル変数)しかなく、これもまたスパゲティプログラムを誘発する要因である。