サッカーのワールドカップの時のJCOMのCMの連打もうざかったが、昨日今日はyoutobeでudemyのCMが続いている。
CMの通りudemyは有料のeラーニングのサイトである。
CMをクリックすると
JavaSE8 インタフェース ラムダ式 ストリーム 集中コース
と表示された。
アマゾンのタイムサービスみたいな感じ。
ググっれば手に入るような内容に終始している気がするがググって済ませるには
ググった内容を真贋できることが必須
であることから、当ブログの様な怪しいサイトの内容を鵜呑みにしてしまうような初心者には不向きでやはりちゃんとした内容の講習を受けた方がマシだと思う。
30日間返金保証付きで
- 9.5 時間のオンデマンドビデオ
- 学習期間の制限なし
- モバイルとPCからアクセス
- 修了証明書
もっとも、Java8にしてもJavaScriptにしても.Netにしても、
本家サイトのドキュメントの内容が
- あたかも~のように振る舞いという調子で書いてある(仕様≒願望⇒大雑把に云って大嘘)
- 載ってるサンプルが動かない
- 参照リンクが切れている
- 古くなった情報が消されている
と初心者お断りな雰囲気満載なので、
仕方が無い気がする。
で、ラムダ式って前世紀の古典LISP(つまりボクの黒歴史=こんなの知ってても仕事にならない)に仕方なく使われたヘンテコ文法。
一般に
関数名(仮引数){
return 戻り値
}
と延々と何行にも続けて書くと、ダラダラと延々と続くので可読性が著しく低下してしまうケース(イベントハンドラなど)で
x、y、z(ここまでが仮引数つまりパラメータ宣言)->x×y+z(ここまでが処理、処理結果が戻り値として処理する)
と1イベント1行の省略した書式で書くとスッキりする
※あからさまな表現で云えば、パラメータの区切り文字(、)を(―>に)変えて構文解析しやすくし、奇妙な(ストリームな)手順を指示しやすくしたダケの付け焼刃と云える。
ものの・・・
省略された部分
- x、y、zにどのように値が引き渡されるのか?
- x*y+zの計算結果がどの様に使われるのか?
に関してはラムダ式にはバッサリ切り捨て(一切表現されない)られるので
ラムダ式表現を許容するイベントハンドラの仕様を熟知しなければいけない。
ぶっちゃけ
≒変態書式のCSVファイルの読み込みルーチンのソース同様
=動けばいい=他人は読めなくてOK=ラムダ式の本髄
だから
Java8のストリームのメソッドの名前はどれも適当すぎるのだ。
sortとsortedとか・・・
つまり、
ソースを読んでもイミフ
=可読性が非常に乏しい
=ラムダ式の最大の欠点
便利だが可読性が乏しいとして
今まで~Utilsライブラリィを全力で抹殺していった彼らの行動を考えると、Java8のラムダ式の採用は「自己中」な気がする。
それもあって、
ブームが去って(1年すぎれば)何書いてあるの?な状況になってしまうので、何で今更という気がする。
そして、
- 去年の仕様は去年ダケのもの。
- 今年の仕様は今年ダケのもの。
- 来年の仕様は未定。
である昨今の状況を考慮すると・・・
(Java9~11は半年しか面倒を見ないと云ってたりするので)
ラムダ式やストリームなんて最悪だ!消えろ!
と彼ら自身が言い出す気がする。
こんなモノが世にはびこった後で儲かるのはeラーニング業者だけなのは必然である。
だから、仕事だから、仕方がないので、お布施だと思って、諦めて、みんな、ちゃんと学習しましょうね。
コードを書く方はすぐ使わなくなるだろうけど、
他人の書いたソースも読まないといけない方々は結構長く覚えていないといけないよ?
数年前のソースの一部でラムダ式のストリームという不可解なライブラリィを使っていた。数年前の古い情報なんて今どきググっても出てこない。今となってはもう呪文にしか見えないぞ。コレ(激怒
と、ならないために・・・