アカウント名:
パスワード:
Javaもnode.jsも使っていますが,適材適所で双方を使い分けるのが良いと思います
性能に関しては,まともなプログラマがコーディングすればJavaでもnode.jsでもそれなりの性能がでます.細かいところでは,セッションの生成はnode.jsとか,スループットはJavaとか色々ありますが,それらはケースバイケースで,どちらが良いとかは一概に言えません.
開発効率については大規模,特に複数人で開発をするなら Javaそれ以外,特に一人/数日で開発が終わるようなものは node.js が良いと思います
たとえば,Javaだと,Javadocやアノテーションがあり大規模なものを複数人で開発する際はとても効率良いです反面,小規模なものを短期間で作る場合だと,Javaでクラス設計とかアノテーションをいちいちやっても,工数の無駄でしかありません.自己満足で終わるだけです.
今は大規模開発に耐えうるよう静的型付けに対応させたTypeScriptがあるので開発規模による適正の差はさらに縮まりつつあるさらにJavaは関数が第一級関数でないため最近の関数型の潮流に追随できない致命的とも言える欠点があるそれでもJavaは実績と信頼感が大きいので当分需要は減らないだろうが長期的には言語の進化から取り残されシェアを失うだろう
>Javaは関数が第一級関数でないJava8「」
8ではかなり改善されてScalaっぽくなってます、7までに慣れた人は戸惑うかもしれません。
int sum = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) .filter(e -> {return e >= 5;}) .reduce(Integer::sum).get();
System.out.println(sum);//45
Java8は各日に次の世代の基準点ですよね。あるJava8前提のフレームワークとか最初に見たときはほんとに動くんかいなと思いました。
今のところ自分の範囲では第一級関数であるかどうかは必須条件では無いのでこれがないと致命的欠陥であるという意見は不思議ではあります。書き方面倒でも今までなんとかなってたじゃんとか関数型言語にすればすべての問題が解決するわけでもないじゃんと思います。ま、ケースバイケースということで。
「関数型の機能を取り入れればすべての問題が解決する」なんて誰も言っていないのに、「関数型の機能を取り入れてもすべての問題が解決するわけじゃない」という人が多いのはなぜなんだろうか。
関数型言語の機能は必須じゃないよ。もちろんなくてもコーディングはできる。オブジェクト指向言語の登場以前、クラスやインターフェイスがなくても何とか開発できていたように。ただオブジェクト指向が登場して、オブジェクト指向はすべての問題を解決するわけじゃないけど、すこし開発が楽になった。関数型の機能が導入されて、関数型はすべての問題を解決するわけじゃないけど、また少し開発が楽になる。それだけの話だ。勝手に銀の弾丸に祀り上げて勝手に失望してはいけない。
他の人も言っているけど、「適材適所」「ケースバイケース」「状況に応じて」はとても聞こえの良い言葉だし、間違ってはない。ただ、それは「高度の柔軟性を維持しつつ臨機応変に [nicovideo.jp]」というのと同じくらい具体性がない。何の指針にもならないし、何も言っていないも同然だ。
「関数型の機能を取り入れればすべての問題が解決する」わけじゃないかもしれませんが「関数が第一級関数でないことは致命的欠陥」らしいですよ。
> 何の指針にもならないし、何も言っていないも同然だ。
だから「開発者のマインドシェアを奪い合うJavaとNode.js」ってのは変な話でJavaとNode.js のどちらが良いかなんて議論しなくていいじゃん,って言ってるんですが…
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
大規模ならJava,それ以外はnode.js (スコア:4, 興味深い)
Javaもnode.jsも使っていますが,適材適所で双方を使い分けるのが良いと思います
性能に関しては,まともなプログラマがコーディングすれば
Javaでもnode.jsでもそれなりの性能がでます.
細かいところでは,セッションの生成はnode.jsとか,スループットはJavaとか色々ありますが,
それらはケースバイケースで,どちらが良いとかは一概に言えません.
開発効率については
大規模,特に複数人で開発をするなら Java
それ以外,特に一人/数日で開発が終わるようなものは node.js が良いと思います
たとえば,Javaだと,Javadocやアノテーションがあり
大規模なものを複数人で開発する際はとても効率良いです
反面,小規模なものを短期間で作る場合だと,
Javaでクラス設計とかアノテーションをいちいちやっても,工数の無駄でしかありません.自己満足で終わるだけです.
Re: (スコア:1)
今は大規模開発に耐えうるよう静的型付けに対応させたTypeScriptがあるので開発規模による適正の差はさらに縮まりつつある
さらにJavaは関数が第一級関数でないため最近の関数型の潮流に追随できない致命的とも言える欠点がある
それでもJavaは実績と信頼感が大きいので当分需要は減らないだろうが長期的には言語の進化から取り残されシェアを失うだろう
Re: (スコア:0)
>Javaは関数が第一級関数でない
Java8「」
8ではかなり改善されてScalaっぽくなってます、7までに慣れた人は戸惑うかもしれません。
int sum = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
.filter(e -> {return e >= 5;})
.reduce(Integer::sum).get();
System.out.println(sum);//45
Re: (スコア:0)
Java8は各日に次の世代の基準点ですよね。
あるJava8前提のフレームワークとか最初に見たときはほんとに動くんかいなと思いました。
今のところ自分の範囲では第一級関数であるかどうかは必須条件では無いのでこれがないと致命的欠陥であるという意見は不思議ではあります。
書き方面倒でも今までなんとかなってたじゃんとか関数型言語にすればすべての問題が解決するわけでもないじゃんと思います。
ま、ケースバイケースということで。
Re:大規模ならJava,それ以外はnode.js (スコア:1)
「関数型の機能を取り入れればすべての問題が解決する」なんて誰も言っていないのに、
「関数型の機能を取り入れてもすべての問題が解決するわけじゃない」という人が多いのはなぜなんだろうか。
関数型言語の機能は必須じゃないよ。もちろんなくてもコーディングはできる。
オブジェクト指向言語の登場以前、クラスやインターフェイスがなくても何とか開発できていたように。
ただオブジェクト指向が登場して、オブジェクト指向はすべての問題を解決するわけじゃないけど、すこし開発が楽になった。
関数型の機能が導入されて、関数型はすべての問題を解決するわけじゃないけど、また少し開発が楽になる。それだけの話だ。
勝手に銀の弾丸に祀り上げて勝手に失望してはいけない。
他の人も言っているけど、「適材適所」「ケースバイケース」「状況に応じて」はとても聞こえの良い言葉だし、間違ってはない。
ただ、それは「高度の柔軟性を維持しつつ臨機応変に [nicovideo.jp]」というのと同じくらい具体性がない。
何の指針にもならないし、何も言っていないも同然だ。
Re: (スコア:0)
「関数型の機能を取り入れればすべての問題が解決する」わけじゃないかもしれませんが「関数が第一級関数でないことは致命的欠陥」らしいですよ。
Re: (スコア:0)
> 何の指針にもならないし、何も言っていないも同然だ。
だから「開発者のマインドシェアを奪い合うJavaとNode.js」ってのは変な話で
JavaとNode.js のどちらが良いかなんて議論しなくていいじゃん,って言ってるんですが…