【node.js】サーバサイドjavascript 5【Nashorn】

1デフォルトの名無しさん2018/02/13(火) 22:21:33.91ID:moEhrPrC
pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。

node.js - googleが開発したV8エンジン上で実行できる処理系
http://nodejs.org/
ayo.js - node.js 互換で Rod の影響からの脱却を目指す処理系
https://github.com/ayojs/ayo
Nashorn - Java8 からRhinoに代わって同梱されているJavaScriptエンジン
http://www.oracle.com/webfolder/technetwork/jp/javamagazine/Java-JA17-Nashorn.pdf

ayo.js の経緯
https://web.archive.org/web/20170821212745/https://github.com/nodejs/TSC/issues/310
javascriptはrubyと比較してもかなり速い
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv
基礎から学ぶNode.js
http://gihyo.jp/dev/serial/01/nodejs
node.jsの概要とアプリケーション開発の準備
http://gihyo.jp/dev/serial/01/realtimeweb/0002

前スレ
【node.js】サーバサイドjavascript 4【io.js】
http://mevius.5ch.net/test/read.cgi/tech/1460359714/
【node.js】サーバサイドjavascript 3【io.js】
http://echo.2ch.net/test/read.cgi/tech/1419673207/
【node.js】サーバサイドjavascript 2【Rhino】
http://peace.2ch.net/test/read.cgi/tech/1358937029/
【node.js】サーバサイドjavascript【Rhino】
http://toro.2ch.net/test/read.cgi/tech/1310087535/

2デフォルトの名無しさん2018/02/13(火) 22:45:24.68ID:dgfWGlMV
スレ立てとテンプレ更新乙

3デフォルトの名無しさん2018/02/13(火) 23:16:03.20ID:RZh6bj8U

4デフォルトの名無しさん2018/02/14(水) 07:27:19.83ID:QhkCr6hZ
>>1={乙}

5デフォルトの名無しさん2018/02/14(水) 12:47:30.67ID:QhkCr6hZ
じゃぁ聞くけどjavaで作るよりnode.jsの方がいい利点はなに?

6デフォルトの名無しさん2018/02/14(水) 12:51:28.06ID:Dh0Ktwjh
じゃあ?

7デフォルトの名無しさん2018/02/14(水) 13:32:00.27ID:eUHthdqL
>>5
サーバサイドとクライアントサイドでコードの共有化ができるくらいかな。
俺はTypeScript大好きっ子だからjsに型がないという弱点も克服したし。

8デフォルトの名無しさん2018/02/14(水) 14:53:00.89ID:GP+9iuzv
javascriptは言語仕様も実装も活発に更新されてる生きた言語だけどjavaは……
去年はjava9とjava ee 8が出たけど内容は乏しくて死につつある言語
cobolのように現役で使われてはいるけど見向きもされない言語にまっしぐら

9デフォルトの名無しさん2018/02/14(水) 16:25:13.94ID:H2gVyVCN
>>8
そのくせ昔のが動かなくならないようにとバックワードコンパチビリティがキチガイみたいに徹底してるのが好き。
rubyとかpythonとかphpとかとてもやってられない。

10デフォルトの名無しさん2018/02/14(水) 16:34:15.53ID:I0RXr+6s
Javaはこれからの言語じゃなくてこれまでの言語ということだな
未来より過去が大事

11デフォルトの名無しさん2018/02/14(水) 16:41:30.19ID:X6WT15xX
大体Oracleが悪い

12デフォルトの名無しさん2018/02/14(水) 16:59:02.39ID:OvGNKU5V
「そのくせ」の使い方を間違えている
活発に更新されている言語なのに(逆接)互換性命なら「そのくせ」でいいけど

13デフォルトの名無しさん2018/02/14(水) 17:52:07.97ID:X6WT15xX
ネガティブに対してポジティブだから逆接であってる

14デフォルトの名無しさん2018/02/14(水) 17:57:48.03ID:QhkCr6hZ
javaの本は今でもたくさんあるのに、node.jsの本はちょっとしかなく、前より減ってるけど
それでも未来はあるの?

15デフォルトの名無しさん2018/02/14(水) 18:07:53.31ID:0/UN9UNj
それは視点ないし評価の反転であって主従ないし因果関係としては順接だろう
「そのくせ」よりも「だからこそ」の方が適切だと思う

16デフォルトの名無しさん2018/02/14(水) 18:08:56.46ID:0/UN9UNj
>>14
プログラミングの本には未来がないだろうね

17デフォルトの名無しさん2018/02/14(水) 18:14:23.49ID:Dh0Ktwjh
>>15
お前は日本語以前の問題とみた

18デフォルトの名無しさん2018/02/14(水) 18:15:48.39ID:tUoPyiUs
>>17
バレたか

19デフォルトの名無しさん2018/02/14(水) 18:38:00.97ID:eUHthdqL
>>14
前スレで言ってたように言語仕様が毎年更新されるから出しづらいのかも。
と言うか皆買わないんじゃないかな。
本なくても使えるし。

20デフォルトの名無しさん2018/02/14(水) 18:44:00.97ID:eUHthdqL
javaはjavaでjava vmの部分で生き残るんじゃないの
kotlinがあるから最新トレンドの言語仕様が使えるし。
最近はASTとかを駆使してコードの変換も個人でかけるようになったし気にせずいろんな言語で書いて最悪トランスレータをかけばいいよw

21デフォルトの名無しさん2018/02/14(水) 19:09:33.80ID:nJ8XQB9a
kotlinはnativeもやってるからjvmなくても生きていける可能性がある
そこら辺はandroid次第

22デフォルトの名無しさん2018/02/14(水) 19:32:54.87ID:H2gVyVCN
>>9だけどjavascriptのこと書いたんだけどjavaと勘違いしてる人がいるみたいで…
言葉足らずだったわゴメンゴメン

23デフォルトの名無しさん2018/02/14(水) 21:24:49.82ID:zjyx6XTj
ブラウザではともかくnode.jsでは後方互換性が徹底されてるとは感じない

24デフォルトの名無しさん2018/02/14(水) 23:05:01.77ID:1QOtYRN6
>>23
つまりAPIの破壊的変更が多いってことかね?あんまし使ったことがないから知らんかった。どの辺の話?

25デフォルトの名無しさん2018/02/14(水) 23:28:14.70ID:itb3AbpA
v0.12まではほとんどどこでも壊れてたイメージ
streamから何から
v4以降はネイティブアドオンでなければ深刻じゃないかな
細かい非互換性は日本語のブログなんかでもまとめられてる
今はsemverだからメジャーバージョンアップは後方非互換なんでLTSでも年に一回は動かなくなる可能性がある

26デフォルトの名無しさん2018/02/14(水) 23:32:27.00ID:4HiMoKqx
なーんだ、結局rubyやpythonやphpとおんなじじゃん。ガッカリ

27デフォルトの名無しさん2018/02/14(水) 23:49:34.96ID:X6WT15xX
>>25
active期間が終わってから1年間のmaintenance期間があるわけだからその間に移行しろってことでしょ
メジャーバージョンアップが頻繁だってのは分かるけど

28デフォルトの名無しさん2018/02/15(木) 00:44:38.71ID:xvxGqpCI
Meteor.jsを結構前にチュートリアルを一通りやったときは
バックエンドとクライアントでコードを共有できる喜びは感じたかな。
ただ惜しむらくはDBがmongoDB固定だったこと。
今は変わっただろうか?
仕組み上他のDBにしづらいフレームワークで色々ロックインしちゃうんだけど
当時からなんだかとってもPWAって感じだった。

29デフォルトの名無しさん2018/02/15(木) 07:48:47.58ID:0lPDoa5Y
今jsしてないんだけどフロント周りはまだ暴風雨状態なの?

30デフォルトの名無しさん2018/02/15(木) 08:00:29.63ID:SuVvVuMr
うん

31デフォルトの名無しさん2018/02/15(木) 13:45:36.01ID:ungn8NGW
React選んだ人は3年くらい無風じゃね
あれこれ手を出してる人もいるだろつけど

32デフォルトの名無しさん2018/02/15(木) 13:52:45.80ID:J0hKQiJo
reactはreduxとか, 本体より周辺が暴風雨なイメージ

33デフォルトの名無しさん2018/02/15(木) 14:53:55.86ID:Z5nyO2py
非同期はいいぞーって言われても、処理終了まで待ちたい場合は、プログレスバーとか出せばいいの?

34デフォルトの名無しさん2018/02/15(木) 14:54:13.33ID:YSj3CECL
react無風か?今やv16だぞ何年前のライブラリだっけ?

+reduxでreactと同等のことができるhyperappがスンバらしい。300行しかないのにコードが読みやすい。

35デフォルトの名無しさん2018/02/15(木) 15:04:03.11ID:2TdTJC2z
reactはv0.14→v15→v16だから落ち着いたものだよ
非互換な変更はまず警告が出るバージョンがリリースされて次のバージョンで変更とかだし移行のためのツールも提供されるし

36デフォルトの名無しさん2018/02/15(木) 15:25:42.03ID:Z5nyO2py
Electronってやつと同じことはjavaじゃできないんですか

37デフォルトの名無しさん2018/02/15(木) 16:02:18.16ID:Y2MAEGuu
vscode→electronベースのide
webstorm→javaベースのide

同じようなアプリを作れるかって意味ならできるんじゃね?

38デフォルトの名無しさん2018/02/15(木) 16:14:19.77ID:Z5nyO2py
これから業務用アプリもスマホ化してきますやんかー、
そうしたらHTML5とかで作るって話になりますやんかー
javaには無理?node.jsじゃないとだめ?

39デフォルトの名無しさん2018/02/15(木) 16:30:14.63ID:1CgTZOOO
wasmにコンパイルすれば?

40デフォルトの名無しさん2018/02/15(木) 16:32:27.60ID:x1xC6fNl
クライアントとサーバの区別は出来てるか?

41デフォルトの名無しさん2018/02/15(木) 16:38:36.43ID:Z5nyO2py
wasmなんかよさげなこと書いてますね、unityもいけるのか

42デフォルトの名無しさん2018/02/15(木) 19:06:28.24ID:IXv90w8V
wasmよくわからんかった
ためしにunityの何かを入れてみたけど、ぜんぜん動かない

43デフォルトの名無しさん2018/02/15(木) 21:04:19.20ID:soH0s4OR
JavaScriptがwasmにコンパイル出来たらいいんだがなぁ。
動的な部分が多いからコンパイル自体がそもそも難しいか。

44デフォルトの名無しさん2018/02/15(木) 21:40:37.57ID:wm9Pntzw
jsのサブセットともいえるasm.jsからwasmならできる
むしろ一番最初にwasm出てきた時やってたのがそれだろ

45デフォルトの名無しさん2018/02/15(木) 21:49:32.52ID:soH0s4OR
そりゃasm.jsじゃなくてAssemblyScriptのことだろ。

46デフォルトの名無しさん2018/02/15(木) 21:57:55.53ID:Z5nyO2py
wasmでできることのサンプルでいいのないですか

47デフォルトの名無しさん2018/02/15(木) 22:26:17.03ID:LVCrmyEJ
>>45
AssemblyScriptが中で使ってるBinaryenがasm.js→wasmサポートしてるじゃん
そいつってTS→asm.jsしてBinaryen呼び出してるだけだったりしてね?
俺が44で書いたのは元々wasmがasm.jsベースで実装始まったって見た気がしたからでそんなライブラリとは関係ないけど

48デフォルトの名無しさん2018/02/15(木) 22:56:54.50ID:soH0s4OR
あぁ、サブセットってところに引っかかっただけだ。
話を戻すと、RPythonに対するPyPyみたいなものがあればいいんだがなぁ。

49デフォルトの名無しさん2018/02/16(金) 07:32:01.09ID:9ipJLmm1
wasm調べてたらrustってのに行き着いたのだけど
rustっていいの?

50デフォルトの名無しさん2018/02/16(金) 07:38:32.94ID:WQE4iPFk
うんにゃ

51デフォルトの名無しさん2018/02/16(金) 07:48:59.59ID:N1s5Hdgd
websocketをやらねば!!

node.js!!

なんか使いづらい、ぐっさくね?

java!!

もう老人

wasm!!からの〜

なに?

52デフォルトの名無しさん2018/02/19(月) 10:37:50.14ID:TKHdwdGa
.Net

53デフォルトの名無しさん2018/02/19(月) 20:06:38.18ID:S3U39YpB
ナイスジョークw

54デフォルトの名無しさん2018/02/19(月) 20:23:50.11ID:lRCoRBcw
なんでnodeはwebsocket使いにくいの?
煽りじゃなく、ほんとなら個人的に対策立てたいので。

55デフォルトの名無しさん2018/02/19(月) 20:45:16.99ID:pKIDPIGb
NodeでWebSocket使おうと思ってるところなんだけど, どのライブラリを使うのがいいか分からん
統計だけ見ればwsかな?
Nodeとブラウザで同じコードで動くようにするにはisomorphic-ws使えばいいのかな?

使ってる人おせーて

56デフォルトの名無しさん2018/02/20(火) 07:23:49.73ID:GgzKQl9s
ぐっさいからWebAssemblyができたんでしょ
答え出てるやん

57デフォルトの名無しさん2018/02/20(火) 15:51:09.84ID:8AxQ9YzH
ワイ「firebase 」

58デフォルトの名無しさん2018/02/21(水) 19:31:38.94ID:O384HGBH
nodeでAPI作ったらテストツールはfrisbyしかないの?

59デフォルトの名無しさん2018/02/22(木) 20:46:37.90ID:c2upgmLY
sqlite3で、serialize関数の中に書くのと直に書くのの違いは何ですか?

60デフォルトの名無しさん2018/02/22(木) 20:55:18.66ID:4xFkIfES
>>59
質問の仕方とAPIリファレンスを調べる方法を学んでくれ
https://github.com/mapbox/node-sqlite3/wiki/Control-Flow

61デフォルトの名無しさん2018/02/22(木) 21:40:09.49ID:c2upgmLY
データベース読み取り完了後に処理するには直に並べて書いてもいいのでしょうか

62デフォルトの名無しさん2018/02/22(木) 21:45:11.82ID:c2upgmLY
コールバックの引数からしか結果を取得できないので無理でした

63デフォルトの名無しさん2018/02/22(木) 21:53:52.78ID:c2upgmLY
db.run(...)でクエリを実行

DBとは無関係の普通のjsの式を実行

serializeの中にこの2行を書いたらクエリの実行が完了してから2行目が実行されるのでしょか。

新着レスの表示
レスを投稿する