開発言語の動向は、ネイティブ言語とインタープリンタ言語というコンパイル技術から、言語論にシフトしています。関数型(正確には違うそうです)という考え方が広まっていますね。関数型にはさまざま特徴がありますが、一番大きな要因はラムダ式です。Linuxのパイプと同じ働きをしており繰り返し処理を明確に記述することができます。一文で繰り返し処理を記述できることで、CPUのコア分散処理を容易に実現できるのです。最近のハードウェアが仮想化するのは複数のコアを使いきれないためとも言われています。
JAVA 
 


要は無駄に高性能になったんですね。





 S/WがH/Wの技術に追いついていないんです。そこで注目されているのが、関数型でありラムダ式の導入。これにより繰り返し処理の分散かができ、アプリのパフォーマンスアップが見込めるのです。ただし、分散できるのは繰り返し処理だけ。それ以外の処理は従来通り。まあそれでもそこが一番時間のかかっていたところなので効果はあるんでしょうね。JAVAも3月にリリースしたJAVA8でラムダ式に対応しました。Scalaという関数型言語も注目されています。JavaVM上で動くためJavaの言語資源を利用することができるところがメリットです。

 データベースでは、MongoDBでしょうか。
 JavaScriptで記述でき、データ構造もJSON形式。Web系には最適です。分散化は標準装備でデータベースのスケールアウトができる。一般的にデータベースはデータを一元管理するため分散管理できないんです。よってスケールアップしかできない。まだまだ発展途上ですが期待できるモノでしょう。

 サーバーサイド関連では、node.jsです。
 これもjavascriptで記述できます。ステートレスが多くなるなかでステートフルコネクションが標準。しかもメモリの消費が非常に少ない。一万コネクションを数キロバイトのメモリで管理できる。ステートフルでのメリットはリアルタイム通信です。ステートレスでは、クライアントとの接続が維持されないため、クライアントからのリクエストがないとサーバーから情報を戻せない。ステートフルではクライアントと繋がりっぱなしなので、必要なときにサーバーから情報をプッシュできるのです。地震通知サービスなどこのような仕組みを利用していますね。


 新しければいいわけではないが、適材適所。

 必要な技術を選定することも大切です。稼働実績なんてものに捕らわれてると、チャンスを見逃すことになるかもしれません。


 大事なのは物事の本質を見極めることと、一歩を踏み出すことです。