参考URL
プログラミング言語の歴史
コンピュータ以前のプログラム
コンピュータ以前でも自動機械には、動作を機械に指示するプログラムが必要であった。コンピュータ以前のプログラムとしてよく引用されるものを掲げる。
- 1801年 ジャカード織機
長い紙に開けた穴の配列によって布のデザインパターンを変えることができる。これがプログラムを用いた機械の最初とされることが多い。
- 1830年頃 バベッジの解析機関
処理手順をパンチカードで指定することにより、多様な計算ができる設計であった。これのプログラムを作成したエイダ・ラブレス(Ada Lovelace、詩人バイロンの娘)がプログラマの最初だとされる。
- 1906年 ホレリスのパンチカードシステム
ホレリスは、カードパンチ機、カード分類機、帳票作成機などパンチカードシステムを開発した。単純な配線盤(プラグボード)により多様な処理ができた。
プログラミング言語発展の世代
コンピュータが発明されて以来、プログラミングが重要な技術になった。ごく初期のコンピュータは配線を組み替えるものもあったが、すぐにプログラムをパンチカードにより入力する形式になった。
プログラミング言語の発展は4つの世代に区分される。この発展にはプログラミング理論の発展があるが、ここでは省略する。いずれにせよ、コンピュータの立場で記述することから、人間の発想に近い表現へと発展している。
- 第1世代 機械語
メモリからデータをもってきてレジスタ1に入れる、レジスタ1にある値にレジスタ2にある値を加算してレジスタ1の内容を書き換えるなど、CPUの演算装置が理解できるのは、レジスタへの取り込み命令が10、加算が24というような数字である。そのような数字で記述したプログラム言語を機械語という。機械内部は2進法であるが煩雑なのでプログラムは16進法で表示するのが一般的である(機械語の例)。
- 第2世代 アセンブラ
「10」や「24」などの数字を「LD」や「ADDA」としたり、データの格納場所もメモリのアドレスではなく、XやYなどの名称をつけたほうが理解しやすい。そのため、個人あるいは仲間内で、機械語をこれら記号で表現することが自然に発生した。また、記号での表現をコンピュータで機械語に翻訳させることができる(アセンブラの例)。
その記号化表現を「文法」として標準化したのがアセンブラである。1955年にIBM702用に開発された AUTOCODER が最初の(一般公開された)アセンブラだといわれている。
当初のアセンブラの命令は、機械語命令と1対1の関係であったが、そのうちに、よく用いらられる処理をまとめた命令を組み込むようになるなど、使いやすくなった。
第1世代、第2世代の時期は短く、1950年代中頃には第3世代言語が出現した。1960年代中頃になると、一般のプログラマがアセンブラを用いることは稀になったが、現在でもOSや言語の実装には必要だし、特殊な機能や高い処理速度が必要な部分をアセンブラで記述する場合がある。現在、IBMの汎用コンピュータではHLASM(High Level Assembler)がサポートされている。また、アセンブラはコンピュータの仕組みを学ぶのに適しており、情報処理技術者試験(基本情報技術者)ではCASLというアセンブラからの出題(選択)があった。
- 第3世代言語 高級言語
COBOLやCなどの総称である。次の特徴をもつ。代表的な第3世代言語については後述する。
・数式表現や英語表現など人間に理解しやすい表現になった。
・特定のコンピュータの特性を超えて、多様なコンピュータで共通して利用できる文法体系になっている。
ソースプログラムでは共通。それを特定コンピュータの機械語に翻訳する機能を提供するのはベンダ側の問題
・コンピュータの処理手順(どのように処理するか)を記述する「手続き型言語」が多い。
- 第4世代言語
「第3世代言語を超えた」言語という意味で用いられ、多様な言語種類があり、統一した定義を行うのは困難であるが、第3世代言語までが処理手順を記述するのに対して、第4世代言語では「何をするのか」を記述し、その処理方法はコンピュータ(言語翻訳者)に任せるという記述にした「非手続き型言語」であることが多い。
また、汎用コンピュータ時代の言語は、文章で表現する言語であった。それに対してオープン系システムでは、画面でアイコンやリストを操作しながら作成することが多くなった。これは言語ではなく開発環境の違いだともいえるが、プログラミングの仕方が大きく変化している。しかし、「第5世代言語」という概念は未だ定着していない。
汎用コンピュータ用の第3世代言語
汎用コンピュータで広く用いられていた第3世代ブログラミング言語は、科学技術計算用のFORTRAN、事務処理用のCOBOL、それを統合したPL/Iである。これらは、すべてISOやJISの規格になっている。これ以外に有名な科学技術計算用のALGOLがある。実務的にはあまり普及しなかったが、プログラム技術面で高く評価され、その後のプログラミング言語に大きな影響を与えた。
FORTRAN
FORTRAN(FORmula TRANslator)。最初の第3世代言語。最も広く普及した科学技術計算用言語。
- 1957年 FORTRAN
IBMのジョン・バッカスにより、IBM 704用に開発。
- 1958年 FORTRAN II
関数やサブルーチンが使える。倍精度型・複素数型が追加。
- 1962年 FORTRAN IV
機種依存性からの脱却。これがその後のFORTRANのベースになる。
- その後、数度の改訂があり、最新版は Fortran 2008
FORTRAN は、プログラマのニーズに応じて逐次発展してきたため、特に初期のバージョンでは、習得のしやすさは良かったが、論理的体系的な「美しさ」に欠けていた。例えば、次のような規則があった。
- 文区切りの記号はなく、1行1ステートメント。
- 変数の文字数は6文字以内であり、I~Nで始まる変数は整数型、それ以外は浮動小数点型であるというような規則があった。
FORTRAN は、多くの関数が組み込み関数としてコンパイラに内蔵されただけでなく、それ以外に膨大な関数やサブルーチンが公開された。数値解析や統計分野では、通常の場合はプログラムを作成する必要がないような状況であった。FORTRANは、エンジニアにとって、プログラミング言語というより知識のライブラリのような存在だったのである(FORTRANの例)。
しかし、ミニコンOSとしてUNIXが普及してくると、C言語を用いる技術者が増加し、FORTRAN独占状態が崩れてきた。さらに、パソコンでは当初は性能が不十分なためにFORTRANをサポートしなかったこともあり、FORTRANは次第に利用されなくなってきた。
COBOL
COBOL(COmmon Business Oriented Language)。事務処理用言語。自然言語(英文)に似た構文。汎用コンピュータでの販売システムや会計システムなどデータファイルを多様するシステムは、ほとんどがCOBOLが用いられていた。
- 1955年 FLOW-MATIC
COBOLの前身となる言語。グレース・ホッパーにより UNIVAC I を対象に開発。
- 1959年 COBOL-60
米国防総省が事務処理用共通言語の必要性を提案し、CODASYL(Conference on Data Systems Languages)が開発。米国政府の全面採用に伴い急速に普及。
- 1961年 COBOL-61
「4つの部」など、現在のCOBOLの体裁が確定
- 1963年 拡張COBOL-63、1965年 COBOL-65
報告書機能、ソート・検索機能、直接アクセス機能など、COBOLの主要拡張機能が出揃う。
- その後、データベース機能や画面制御機能など改訂が行われてきた。
事務処理用言語は科学技術計算用言語と比較して、次の事項が重要である。COBOLは、これに合致した機能や記述体系になっている。
- ファイルの取り扱い
売上ファイルや得意先マスタなどデータファイルの取り扱いが多い。売上ファイルなどはすべてのデータを順に処理することが多いし、得意先マスタなどは売上ファイルの得意先コードに対応したデータをダイレクトに探すことが多い。そのようにファイルアクセスの方法が多様であるし、逆に、そのアクセス方法をパターン化しやすい。そのため、適切なファイル編成方式が必要になるし、プログラミング言語では、それを適切に取り扱う機能が求められる。
ファイル編成の発展とCOBOLの機能追加は相互連携している。データベース機能も早期に組み込まれていたし、SQLとの連携もしやすくなっている。
- 階層型変数と変数の値
ファイルは同じ構造のデータ(レコード)の集合であり、売上ファイルのレコードには、年月日、得意先コード、商品コード、数量、金額などの項目、得意先マスタには、得意先コード、得意先名称、住所などの項目がある。個々の項目を変数とするだけでなく、レコード全体を一つの変数として取り扱うことも必要である。
また、項目には、コードのような数字列、金額などの数値、名称などの文字列などがある。コードでは0で始まるものもある。数値では、1兆円を超す数値でも1円まで正確に計算できなければならない。このように、変数には多様な「型」が必要になる。
- 報告書機能
事務処理では出力帳票が多いことが特徴である。小計・中計・大計などの処理、改行や改頁などの処理を簡単に指定する記述が必要である。また、体裁のために、数値の¥記号や位取り記号、フォントの指定などができる機能が求められる。
- 記述性の重視
事務処理プログラムは、利用者が自分のために作成するのではなく、利用者と作成者が別人であり、しかも多数のプログラマが参加する。そのプログラムは長期的に利用され、その間に修正が多く行われる。そのため、かなり以前に他人が作成したプログラムを解読して、間違いなく修正できることが重要になる。すなわち、「人間が読みやすい」言語、記述方法でなければならない。
COBOLでは、特に記述性を重視した。手続き型言語の限界はあるが、適切に記述されたCOBOLのソースプログラムは、そのまま処理記述書とすることができる仕様になっている。反面、「COBOLで記述すると冗長になり、生産性が低下する」という指摘もある(COBOLの例)。
ALGOL
ALGOL(ALGOrithmic Language)。科学技術計算用言語。実務的な処理言語というより、プログラミング言語研究用の言語として評価される。
- 1958年 ALGOLの提案
ALGOLは、ヨーロッパの研究者が、世界共通のプログラミング言語として開発した。1958年にチューリッヒで行われた国際会議で提案された。
- 1960年 ALGOL 60
ALGOLが一般に普及した最初の版。文法がBNF記法で記述されている。
- 1968年 ALGOL 68
整然性・網羅性を追求したため、仕様が大規模になり、当時のコンピュータでは実装が困難であった。しかも文法が複雑難解になり、実務的には普及しなかった。
このように、実務的にはALGOL 60で停滞してしまったのであるが、ALGOLはプログラミング言語の技術に大きな成果をあげた。PL/IやCなどの言語は、主にALGOLの影響を受けている。
- 具体的なハードウェア特性にとらわれず、抽象的なアルゴリズムをプログラムとして記述する。当初から相互互換性、移植性を重視した。
- 文法構造をBNF記法で表示するなど、文法自体でも抽象化を重視した。
- 再帰呼び出し機能、入れ子構造など、現在のプログラミング言語の基本的な機能を初めて取り入れた。
- 文の区切り記号「;」を採用し、行の長さや桁位置などに左右される固定プログラム型から、それに無関係に記述する現在の自由プログラム型を採用した(ALGOLの例)。
PL/I
PL/I(Programming Language One)科学技術計算用と事務処理用を統合したプログラミング言語。
- 1963年 NPL
IBMとそのユーザ団体(SHARE)により、NPL(新プログラミング言語)の仕様検討
科学技術計算用のFORTRANと事務処理用COBOLの機能を統合し、ALGOLでの論理性や形式を踏まえた新言語が求められると提案。
- 1965年 PL/I
IBMシステム/360が360度全分野をカバーするハードウェアであり、それにふさわしい画期的なプログラミング言語であるとの想いでPL/Iにしたという。
PL/Iは、FORTRAN、COBOL、ALGOLのいいとこどりをしており、当時として最も優れた言語だといえる。予約語がないし、デフォルト解釈もあるし明示的宣言も可能なので、初歩的な知識でもプログラミングできるし、理解が進むにつれて高度な機能を使いこなすことができる。それで、IBM以外のコンピュータもPL/Iをサポートするようになった。ところが、機能があまりにも複雑で大規模になり、大型コンピュータ以外では使えない欠点があった。
日本では、IBM大規模ユーザでは広く普及した。これを標準言語にした企業も多い。ところが、本家の米国では、既にFORTRANやCOBOLの資産が多く、日本ほどにはシェアを獲得できなかった。オープン系ではPL/Iをサポートする環境がないので、現在ではPL/Iはほとんど使われていない。
むしろPL/Iを簡素化する動きがあり、現在広く用いられているC言語もその一つだといわれている。
ミニコン・パソコン用の第3世代言語
1960年代後半から1970年代にかけて、大学や研究所ではミニコンが普及した。汎用コンピュータ用のプログラミング言語は、次第に巨大化・複雑化して、ミニコンで処理するのが困難になってきた。また、IBM独占への反発もあった。それでミニコンのためのプログラミング言語が多数開発された。その代表的なものに、BASICとCがある。
その後、パソコンの普及に伴い、これらの言語はパソコンに移植され、さらに、GUI環境への適用が行われて、現在広く用いられている。
これらは、自分のためにプログラムを作ることが多かったし、科学技術分野の利用者が大多数であったため、本質的には科学技術計算用の言語である。ところが、これら言語の普及に伴い、事務処理用の機能が追加されるようになり、現在では用途に限定せずに用いられている。
BASICは、コンパイラもあるが、一般的にはインタプリタである。そのため、プログラム作成の途中で確認しながら進めたり、部分的に変更するのは容易であるが、実行効率が悪く、繰返して用いる場合や大量データの加工など、基幹系の事務処理システムに用いるのは不適切である。基幹系事務処理では、データ入力など効率を問題にしない処理に限られる。
BASIC
BASIC(Beginner's All-purpose Symbolic Instruction Code)。教育用に開発された習得しやすいプログラミング言語。当初はTSS環境で稼働したが、その後パソコンに移植して急速に普及。多様な版があるが、マイクロソフトはGUI環境に適用したVisialBASIC(VA)に発展させ、パソコン環境での主要言語になっている。
- 1964年 BASICの誕生
米国ダートマス大学のジョン・ケメニーとトーマス・カーツにより教育用言語として開発。
その後、PDP(ミニコン)のTSS環境での利用が普及。
- 1975年 パソコンへの移植
BASICのパソコンへの移植が行われた。そのうち有名なのは、ワング(Li-Chen Wang)が1975年に発表したTiny BASIC である。その後、ソースコードが公開されたこともあり、多くのパソコンで利用された。
また、ビル・ゲイツとポール・アレンは、パソコンメーカーMITSのためにBASICをパソコン環境に移植。この成功がマイクロソフトの創業になったという。
当時のBASICは、簡単ではあるが制約の多いものだった。
- 変数名は、数値型では英字1字と数字1字(A1など)で整数型、実数型の区別はない。文字列は英字1字と$(A$)に限定。
- 代入文の=も、比較演算子の=も、どちらも=を用いる(プログラミング言語として異例)
- IF文はあるが、IF~THEN~ELSEはない。
1980年代 パソコンでの普及
1980年代当初からパソコンがオフィスに浸透してきた。パソコンを活用してオフィスワークの生産性を向上させるとのOA(Office Automation)の概念が普及した。BASICの機能は向上し、ビジネスとして実務に使えるレベルに達した。当初はパソコンを使うことはBASICを作成して処理することと同様な状況であり、BASIC習得ブームが起こった。
1990年代 Visial BASIC
BASICは多様な発展をしたが、マイクロソフトはGUI環境でBASICを生成するVisial BASICを開発した。バージョンを重ねるうちに、構造化プログラミングやオブジェクト指向の概念も取り込み機能が拡大した。特に、2002年からの .NET版になると、Windowsでのアプリケーション開発の主要言語になった。
C言語
C言語は、1973年にAT&Tベル研究所のケン・トンプソン(Ken Thompson) とデニス・リッチー (Dennis MacAlistair Ritchie) により開発された。1869年にミニコン用のOSであるUNIXが開発されていたが、それを高水準言語で記述しなおそうとして、A言語、B言語が試みられ、C言語で実用化した。
C言語は、OS開発用言語として出発したので、アセンブラレベルでの機能をもつ。そのため、OSや組み込みソフトウェアの分野にも利用できる。UNIXがそうであったように移植性がよいので、ミニコン、パソコン、汎用コンピュータまで多様なコンピュータで利用できる。
反面、ALGOLやPL/Iなどを参考にしているが、それらの特徴である完全性や記述性に関しては、むしろ逆行している。事務処理で必要な文字型データの型がない。その意味では「優れた」言語とはいいにくい。
1980年代後半からTurbo Cなど、手軽なコンパイラとして普及した。その後、C言語から派生した、C++やJavaなどが出現し、C言語はそれらの基本的言語として位置付けられるようになった。
第4世代言語
「第4世代言語」とは「第3世代言語を超えた言語」という意味の用語で、明確な定義はない。そのため、以下に掲げる言語を第4世代だとはしない視点もある。また、ここでは4つのグループに区分したが、個々の言語が複数のグループに属することもある。
非手続き型言語:SQL
非手続き型言語の代表例としてSQLがあげられることが多い。SQLは、それ以外にデータベース、特にRDB (Relational Database) の操作言語でもある。
- 1976年 SEQUEL
IBMがRDBシステム System R の問い合わせ言語としてSEQUELを発表。これがSQLの母体となる。
- その後、1980年前半までに、ORACLEやOS/2など、RDB管理システムが続出した。
- 1986年 SQL86
SEQUELは、その後SQLと改称。ASCIがSQLを規格化。ISOやJISになる。これにより、RDB言語はSQLに統一されるようになった。
- 1999年 SQL3
SQLは逐次改善されてきた。このSQL3で、現在のSQLの基本的機能が出揃った。オブジェクト指向データベース的な機能も取り込まれた。
非手続き型言語の特徴は、「何をするのか」を指示するだけで、「どのように処理するのか」はコンピュータに任せていることである。また、データベースでは、第3世代言語のファイル定義に属する情報はDBMS(データベース管理システム)が管理しているのでプログラムでは記述しない(SQLの例)。
このような理由により、プログラムの記述量が非常に少なくなる。これはプログラマの生産性向上に役立つ。
RDBの特徴は動的結合(実行時に2つのテーブルを結合)ができることである。これは任意の切り口で検索加工するのに便利な機能である。しかし、1980年代中頃までは、実行効率が悪かった。
SQLには2つの利用法がある。一つは、エンドユーザがTSS環境で情報検索に用いるためののコマンド言語であり、もう一つは、COBOL、PL/I、CなどのソースプログラムにSQL文を記述できる埋込みSQLである。
なお、パソコンでのデータベース利用ソフトでは Access がポピュラーであるが、画面操作によりSQLを生成するツールであり、実際にはSQLが処理しているのである。
オブジェクト指向言語
オブジェクト指向言語とは
オブジェクト指向プログラミングとは、処理を小さな機能に分解し、それに必要なデータや処理手順をオブジェクトとして部品化することにより、それらの部品を組み合わせてプログラムを構築する方法である。開発が容易になるだけでなく、変更のときにはその部品だけを変更すればよくなる。このような方法に適した言語がオブジェクト指向言語(OOPL; Object-Oriented Programming Language) であり、現在よく利用されている言語にC++やJavaがある。
このような部品化・再利用が有用であることは、初期から認識されていた。サブルーチンや関数あるいはテンプレート(ひな型)プログラムもこれにあたる。しかし、オブジェクト指向言語では、単に部品を用意するだけでなく、再利用するのに便利な継承(インヘリタンス)や多相性 (ポリモーフィズム) の機能をもたせること、部品の管理をする機能を重視している。
また、オブジェクト指向言語の特徴として、「入力があったら、在庫がなくなったら~をする」というように、何かが引き金になって処理を行うイベント駆動型であることがあげられる。
オブジェクト指向言語への発展
オブジェクト指向言語の考え方は、1960年代に存在していた。その有用性が認識され言語が実装されるようになったのは1970年代である。しかし、当時は一部の研究者や特定の用途に限定されていた。
- ●Simula系
- 1962年 Simula
ノルウェーのクリステン・ニガード(Kristen Nygaard)とオルヨハン・ダール(Ole-Johan Dahl)が開発したオブジェクトとクラスを導入した最初の言語。ALGOLをベースにしている。当初はシミュレーション用言語として開発され、その後汎用化された。
- 1979年 C++
C言語をSimula言語を参考にしてオブジェクト指向に拡張した言語。ベル研究所のビャーネ・ストロヴストルップ(
(Bjarne Stroustrup)による。
- ●Smalltalk系
- 1972年 Smalltalk
オブジェクト間をメッセージで呼びだすことにより処理を行うという概念を導入した最初の言語。ゼロックスのアラン・ケイ(Alan Kay)らがパソコン AltoのOSとして開発。この言語の説明に「オブジェクト指向」という言葉を用いた。
- 1983年 Objective-C
C言語にSmalltalkを取り入れてオブジェクト指向に拡張した言語。
- ●Pascal系
- 1971年 Pascal
1966年にベームとヤコピーニは、すべての処理は「順次・反復・分岐」の3つの基本的な論理構造によって記述できるとする構造化定理を示した。1968年にエドガー・ダイクストラ (Edsger Wybe Dijkstra) は、構造化定理に基づき、構造化プログラミング (structured programming) を提唱した。「GOTO文は有害だと考えられる」が有名。プログラムを部品化する考え方の基礎になる。
チューリッヒ工科大学のニクラウス・ヴィルト(Niklaus Wirth)は、その考え方に基づき、言語Pascalを開発した。
- 1978年 Module-2
Pascalにモジュール(部品)の概念を導入。
- 1988年 Module-3
Module-2をオブジェクト指向に拡張。
Java
一般のプログラマにちって、最もポピュラーなオブジェクト指向言語はJavaである。逆に、Javaの出現により、オブジェクト指向が普及し、それにより多くの言語がオブジェクト指向に機能拡張したともいえる。
Javaは次のような特徴をもつ。
- 手軽なオブジェクト指向言語である。Webブラウザに組み込まれるほどの容量で動作する。メモリの後始末をするガベッジ・コレクションの機能を自動化していること、クライアントにあるデータのアクセスを禁止していることなど、プログラマへの負担を軽減している。文法的にも型宣言などが不要で、初心者にも使いやすい。
- 移植性に優れている。Java仮想マシンの環境を作りやすい。第3世代のアセンブラに対応する中間言語をバイトコードというが、機種から独立しており、機械語にするのが容易である。
- 開発環境が整備されている。JavaBeansなどの部品が豊富であり、画面上の操作でプログラムが生成できるなど、開発をするのに便利である。
- ソースコードが公開されているので、無料で利用できるものが多く、多くのベンダがJavaを利用したソフトウェアやツールを提供している。
- 1991年 Oak
サン・マイクロシステムズ(現オラクル)は、ジェームス・ゴスリング(James Gosling)を中心とした技術者たちがOakというオブジェクト指向言語を開発した。家電製品用のプログラミング言語を検討していたが、C++や Object-Cは、大容量になること、複雑すぎること、移植性が不十分なことなどから、新しいオブジェクト指向言語を開発したのである。
- 1995年 HotJava
OakをJavaと改称。それをベースにしたWebブラウザで動的表示を可能にした。また、ソースコードを公開した。
- 1996年 Java1.0(Javaの正式版)
これまでのOakプロジェクトは、技術者たちの非公式なプロジェクトの要素もあったが、Hotjavaの成功を機会に、サン・マイクロシステムズの正式製品として、運営組織を設置。
- 1996年 JVM(Java仮想マシン)
マイクロソフトは、Javaを仮想環境で動作させるJVM(Java VirtualMachine)と、Javaの速度向上のためのJIT(Just-In-Time)コンパイラを開発。これがJavaの普及を促したが、その後、両者の間でライセンスをめぐるトラブルが起こり、マイクロソフトは手を引く。
- 1998年 Java2
Javaには、プログラミング言語の面とJavaによるシステム開発環境(Javaの標準部品、画面操作による開発など)の面がある。開発環境は当初JDK(Java Developpment Kit)と呼ばれたが、このバージョンで、通常の開発環境をJ2SE(Java2 Platform, Standard Edition ) 、大規模な環境をJ2EE(Enterprise Edition)、組み込みソフト用のサブセットJ2ME(Micro Edition)にわけた。特にJ2EEでは、Javaの部品であるJavaBeans、それがサーバ側で動作するJava Servlet、Web アプリケーション開発のためのJavaServer Pageなどが整備されており、Web環境での代表的なオブジェクト指向言語としての地位を確立した。
- 2006年 Java技術のオープンソース化
従来からJavaは部分的にソースコードを公開していたが、一部の例外を除き、Java技術(言語および開発環境)をオープンソースソフトウェアとして公開した。
Web環境でのプログラミング言語
スクリプト言語
JavaScript
WebページはHTMLで記述するが、HTMLの内部にプログラムを記述することができる。そのような言語をスクリプト言語という。その代表的なものに JavaScript がある。
・1996年に JavaScript の初版発表
1997年にNetscape Navigator 4.0とIE 4.0に実装された。
その後、普及はしたが、各ブラウザ間の違いが多いことなどが指摘された。
・2005年 Ajax、HTML5の発表
これにより、JavaScript は急激に発展、現在に至る
参照:Javascriptの歴史
軽量プログラミング言語(Perl、Python、PHP、Rubyなど)
これらもスプリプト言語ではあるが、Webブラウザに標準搭載されているにではなく、独立した言語であることから、軽量プログラミング言語ともいう。
1990年代前半に発表され、OSSになり、ユーザ会などにより運営されている。2000年頃になると、これだけで多様なアプリケーションが開発されるまでになった。
・1987年 Perl初版 ラリー・ウォール
・1990年 Python初版 グイド・ヴァンロッサム。現在ではAI利用の代表的言語になる
・1993年 Ruby初版 まつもとゆきひろ
・1995年 PHP初版 ラスマス・ラードフ
参照:軽量プログラミング言語の歴史
ノーコード・ローコード開発
これらは、プログラムを書かない(極度に少なくする)でシステムを開発する方法である。
画面上で典型的なモデルを選択し、GUIメニューなどを操作して、目的に近いシステムに近づける。これだけで完成すれば、プログラム記述が不要なのでノーコード開発になり、詳細指定のために部分的にプログラム記述が必要なのでローコード開発になる。実際にはその境界はあいまいである。
システム開発環境プラットフォームであり、プログラミング言語ではないが、プログラミングの歴史での大きな転換点などで、ここに含めることにした。
発展の歴史
- 1982年 James Martin 「Application Development Without Programmers」出版
システムの短期開発(RAD)、要員不足解消のために、ユーザ部門だけでもシステム開発ができることを示した。
- 1995年 CMS(Contents Management System)出現
、
主にWebサイト構築を目的にする。Webサイトの構築に必要となるテキスト(文字情報)や画像、ページデザイン、サイト構成などの各種コンテンツや設定情報などを一元管理し、Web技術者以外がサイトの構築や編集を行えるようにするシステム。次第にノーコード・ローコード開発環境へと発展した。
- 2000年代では、業務アプリケーション開発に主眼が置かれていた。
- 2010年代になると、ユーザ向けのWebアプリも多く出現してきた。
- 2013年 超高速開発コミュニティ(日本)設立
その後、ローコード開発コミュニティに改称
- 2014年 フォレスター・リサーチ社が「ローコード開発」という言葉を初めて使う。
- 2016年 Google ローコードアプリ開発ツール App Maker発表
この頃からMicrosoft(Microsoft Power Apps)、IBM(IBM Automation Platform)、Apple(Claris Connect)など、大手企業がノーコード・ローコード分野へ本格的に参入してきた。
- 2022年 OpenAI社 対話型生成AI chatGPT 発表
これにより、多様なシステムのひな型の生成、要件からの仕様書生成、仕様書からの自動コーディングなど、ノーコード開発環境の抜本的な発展が期待されるようになり、それをベースにしたシステム発表が続出してきた。