質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

4635閲覧

reactと相性良いのはどっち、Node.js or Go??

jack_kanzaki

総合スコア106

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/10/19 10:38

編集2020/10/19 12:13

高速なwebの投稿型アプリを作成しようと作成しようと考えています。
フロントはreactで
サーバはgoもしくはnodejsで書こうと思っているのですが、
経験者の方から見て、
どちらの方が便利、やりやすいなどございますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/10/19 10:42

「高速な」とありますが、どの程度の速度が必要なのでしょうか?
jack_kanzaki

2020/10/19 10:45

すみません。 速度に関して、というより、やりやすさ(値の受け渡しなど)を意味しておりました。 よろしくお願いします。
hentaiman

2020/10/19 11:27

どちらの言語も使えるんですか?
jack_kanzaki

2020/10/19 11:33

いろいろ言語はいじっているので、言語にこだわりはないです。
jack_kanzaki

2020/10/19 11:33

ご回答ありがとうございます。
hentaiman

2020/10/19 11:37

相性なんてないので、どの言語も使えなくて学習に時間を掛ける事を惜しまないのなら好きに使えばいいですね ↑に書いた学習コスト等、他の観点から見て決めればいいんじゃないですか
jack_kanzaki

2020/10/19 11:58

すみません。 学習コストで見た時には如何様でしょうか。 よろしくお願い致します。
hentaiman

2020/10/19 12:09

nodejs nodeではなくnodejs
miyabi_takatsuk

2020/10/19 12:26

情報の多さ、だけで言うと、今のところはNode.jsの方が多いような印象を受けるので、 学習のしやすさで言ったらNode.jsかなと思います。 あくまで、現段階で。
jack_kanzaki

2020/10/19 12:44

そうなんですね! ありがとうございます。
hentaiman

2020/10/19 14:02

自分は他の組み合わせで使ってるから本当に好きにすればいいと思うけどね
guest

回答1

0

ベストアンサー

そもそもの所で
Webサーバのサーバーサイドの要件は下記です。

  • 80番ポート(変更可能)でHTTPリクエストを待ち受ける
  • HTTPレスポンス(HTMLやJSON等の文字列が主)を返す

それ以外の所では、
データは下手に自分の作ったプログラムで管理すると消えて困る事があるので、
MySQLみたいなデータベースに突っ込んで管理するのが基本です。

じゃあ何?
HTTPリクエストを受け取ったらMySQLに読み書きの指示を出して待ちぼうけ?
何の言語で作っても同じじゃね?

好きな言語でやれ、おしまいになるわけですね。
それじゃアレなので、別の切り口で採用理由を探して行きましょう。


ReactでWebアプリと作りたいとありますが、
Reactのチュートリアルの紹介を見る限りNode.jsですね。

少し読み進めると、ローカルの開発環境を構築しましょう。
まずは下記のコマンドを打ち込んでくださいと紹介されています。
npx create-react-app my-app

npxコマンドはNode.jsのnpmパッケージ管理ツールのスピンアウト的な存在です。
この時点でフロントエンドでReactを選ぶならNode.jsがなければままならない事がわかります。
ならサーバサイドも一気通貫してNode.jsでやるのが自然ですね。

Next.jsのようなNode.jsのサーバーサイドと、
Reactのフロントエンドの雛形をさくっと作って動かしてくれるフレームワークもあります
楽さで言えばNode.jsの圧勝と言っても過言ではないでしょう。


まぁ、Go言語でやる意味もあります。
サイボウズという会社ではWebのサムネイル画像を編集するImageMagickを捨てたそうです。

参考記事: さようなら ImageMagick - Cybozu Inside Out

画像処理は多数の数値計算を行うので、
Node.jsのようなスクリプト言語よりもGo言語のようなコンパイラ言語の方が圧倒的に速度が出ます。
単純な数値計算の比較だと20倍くらいかな?

Go言語はコンパイルして1コマンドにして、
Node.jsのchild_processという機能越しに呼び出せますが、
Go言語製のモジュール作ったらimportで関数単位で引っ張ってくる方が100倍使い勝手が良いでしょう。

こういう独自機能を盛り込む場合、
Node.jsのReactとの相性を一旦忘れてでも採用する理由足りえます。
Pytnonの機械学習とWebサービスを組み合わせたいからWebフレームワークのDjangoを使うのと同じような理屈ですね。

投稿2020/10/20 04:57

編集2020/10/20 05:03
miyabi-sun

総合スコア21203

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問