Google
ブログ(iiyu.asablo.jpの検索)
ホットコーナー内の検索
 でもASAHIネット(asahi-net.or.jp)全体の検索です。
 検索したい言葉のあとに、空白で区切ってki4s-nkmrを入れるといいかも。
 例 中村(show) ki4s-nkmr

ウェブ全体の検索

JavaScriptの誕生と進化の歴史。極私的なコメントも交えて。2019年09月08日 23時37分49秒

ASAHIネット(http://asahi-net.jp )のブログサービス、アサブロ(https://asahi-net.jp/asablo/ )を使っています。
---
 JavaScriptの誕生と進化の歴史を綴ったこんな記事があった。
 我がツイートから。
https://twitter.com/shownakamura/status/1169377475190636551
--- ここから ---
懐かしい話が多いのぉ。年取ったのぉ。(>_<)
How JavaScript Grew Up and Became a Real Language - Young Coder - Medium
https://t.co/3j9idQ7KE3?amp=1
--- ここまで ---

https://medium.com/young-coder/how-javascript-grew-up-and-became-a-real-language-17a0b948b77f
How JavaScript Grew Up and Became a Real Language
Few imagined that the one-time toy language would become a professional platform
Matthew MacDonald
Aug 24 · 8 min read

 JavaScriptが開発された1995年当時は、Netscapeと、MS(Microsoft)がブラウザ戦争をやった時期。後に独禁法違反に問われるMSのバンドル政策で、Netscapeは苦しくなっていく。
 JavaScriptは、そんな状況下で、最初は、Brendan Eich(ブレンダン・アイク)が、10日間の、いわば、やっつけ仕事で作ったもの。

https://ja.wikipedia.org/wiki/ブレンダン・アイク
https://ja.wikipedia.org/wiki/JavaScript#歴史
https://ja.wikipedia.org/wiki/ブラウザ戦争

 MSが、XmlHttpRequestをIEに実装したのが、大きな転機。
 これ、MSより、Googleがうまく使った。特に衝撃的だったのが、Google Maps.
 初めて見たとき、ほんとびっくりした。これが、Ajaxの本格的普及ね。
 そして、次の転機は、Node.jsの登場。
 これで、フロントエンドのブラウザ側も、バックエンドのサーバ側も、全部、JavaScriptで書けるというので、MEANが有名になった。
 MEANは、
MongoDB + Express + AngularJS + Node.js
の頭文字を集めた略語で。JavaScriptで全部書いてしまう手法。
 ブログには、2016年に
http://iiyu.asablo.jp/blog/2016/01/19/7995824
AngularJS, MEAN/SPA関連本
を書いている。
九大(九州大学)で話した、2016年の講義資料には、
--- ここから ---
ウェブは LAMP から MEAN へ
・ 2000 年代は LAMP
・ LAMP=Linux+Apache+MySQL+PHP
・ 2010 年代は MEAN
・ MEAN=MongDB+Express+AngularJS+Node.js
・ 単一言語 JavaScript で全部書いてしまおう!
--- ここまで ---
とある。

 翌年、2017年には、時代はMEANからMERNになったという話をしたはず。
 MERNは、AngularJSの代わりに、ReactやReduxを使う。
MongoDB + Express + React/Redux + Node.js
 あった。
 React, ReduxをReactiveでくくって、
MongoDB + Express + Reactive + Node.js
としている。
 2017年の講義資料から、
--- ここから ---
リアクティブプログラミング
(Reactive Programming)
・ 30年くらい前のデジャブ
・ データフローマシンの再発明
・ ソフトで再実装している印象
・ MEAN から MERN へ
・ MongoDB, Express, AngularJS, Node.js => MEAN
・ MongoDB, Express, Reactive, Node.js => MERN
・ 昔の基本を知っていると、理解が容易
・ 結局、実装技術が変わっても、理論や基本はそんなにかわらない。理論や基本が大事。長持ちする
--- ここまで ---
とある。

関連:
http://iiyu.asablo.jp/blog/2017/09/13/8675991
Reactive Programmingはデータフローマシンのソフトウェア版。Dataflow and Reactive Programming Systems, ReactiveX, Rx, RxJava, RxJsなど

 2017年の講義資料には、こんなのもある。
--- ここから ---
関数型言語のブームと浸透
・ 30 年以上前のデジャブ
・ 昔のアイデアを現代の技術で再発明、再実装
・ 基本は30年以上前と同じ
・ 昔、かじっていたので、理解が容易
・ GC, クロージャ、型推論などなど
・ 50 年以上前から、 Lisp や ML がやったことを再実装
・ Java, JavaScript, C++ など非関数型言語で関数型
のプログラミングをやる方法の解説本がたくさん
--- ここまで ---

 2013年の講義資料には、JavaScriptは、2010年代のアセンブラだという話がある。
--- ここから ---
JavaScript 全盛時代へ
・ JavaScript は、どこにでもある。
・ ブラウザだけではない。サーバ側にもある
・ Netscape は、当初からサーバ側で使っていた
・ いまは、サーバ側のプログラミング言語としてポピュラーになった。
・ Node.js, Backbone.js

JavaScript は 2010 年代のアセンブラ
・ 1980 年代は、 C へコンパイル
・ C++, Kyoto Common Lisp
・ 2000 年代は、 Java 仮想マシンのバイトコードへ
・ JRuby, Scala, Clojure
・ 2010 年代は、 JavaScript へコンパイルする
・ CoffeeScript, ClojureScript
--- ここまで ---

関連:
http://iiyu.asablo.jp/blog/2013/04/02/6765352
メンテナブルJavaScript, JavaScriptは2010年代のアセンブラ。CoffeeScript, ClojureScript

 おれ、最初、JavaScriptをよく知らず、CSSが今みたいに発達してないころに、ウェブの外見をちょっと変化させるくらいの言語だと思っていたが、ある日、あるウェブのコードをみたら、
「あれ? これ、クロージャ? 高階関数も使えるの?」
と、びっくりした。
 あった。書いたのは、2007年の1月だから、もう12年半も前の話。
 以来、JavaScriptはCシンタックスのLispだとわめいているなどと書いてますね。
http://iiyu.asablo.jp/blog/2007/01/08/1100913
JavaScript 1.7
http://iiyu.asablo.jp/blog/2007/01/09/1103583
JavaScript 1.7のGeneratorの例をクロージャで
 そこで、乳の詫び状(2007/01/09)をみろと書いてあるけど、これです。

http://www.asahi-net.or.jp/~KI4S-NKMR/wabijo111.html
--- ここから ---
乳の詫び状(2007/01/09)
 アサブロのぼくのブログ「いい湯」(http://iiyu.asablo.jp/blog)にも転載しました。

ASAHIネットのjouwa/salonから。

標題: JavaScript 1.7のGeneratorの例をクロージャで
---
http://iiyu.asablo.jp/blog/2007/01/08/1100913
JavaScript 1.7
で、「Generatorは、Lispだと遅延評価の無限リストでやるでしょうね」など
と書いたけど、こんな例なら、そんな大げさなことしなくていいですよね。
 クロージャだけですませてみると。

--- ここから ---
(defun make-fib-gen ()
"Fibonacci number generator."
(let ((i 0) (j 1) (temp 0))
#'(lambda ()
;(format t "i = ~A, j = ~A~%" i j)
(setf temp i) (setf i j) (incf j temp) i)))

(let ((fib-gen (make-fib-gen)))
(print (funcall fib-gen)) ; ==> 1
(print (funcall fib-gen)) ; ==> 1
(print (funcall fib-gen)) ; ==> 2
(print (funcall fib-gen)) ; ==> 3
)
--- ここまで ---
--- ここまで ---

関連:
http://iiyu.asablo.jp/blog/2017/09/13/8675991
Reactive Programmingはデータフローマシンのソフトウェア版。Dataflow and Reactive Programming Systems, ReactiveX, Rx, RxJava, RxJsなど
http://iiyu.asablo.jp/blog/2016/01/19/7995824
AngularJS, MEAN/SPA関連本
http://iiyu.asablo.jp/blog/2013/06/05/6835919
JavaScript忍者、JavaScriptジェダイになりたいなら、これを読め!「JavaScript Ninjaの極意」
http://iiyu.asablo.jp/blog/2013/04/02/6765352
メンテナブルJavaScript, JavaScriptは2010年代のアセンブラ。CoffeeScript, ClojureScript
http://iiyu.asablo.jp/blog/2013/08/13/6945222
JavaScriptクックブック