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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Q&A

解決済

3回答

7162閲覧

今はPHP、RUBYがサーバサイトでは主流ですが、Node.jsはいつごろ実務で、十分に使えるようになりますか?

退会済みユーザー

退会済みユーザー

総合スコア0

Node.js

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

0グッド

3クリップ

投稿2016/02/15 06:40

今はPHP、RUBYがサーバサイトでは主流ですが、Node.jsはいつごろ実務で、十分に使えるようになりますか?

また、jQueryを学んだのですが、
JSをガリガリ素で書くことが少なくなっているので、次に学ぶのであればJS自体でなく、
アンギュラJSにするのが、今は良いのでしょうか?

その後フロントをやりながらNodejsの勉強をやり、将来サーバサイドにも参加するという形が良いのかなと思っています。

将来はネイティブアプリをハイブリットアプリが侵食していくと聞いているので、
JS関連を突き詰めていくのは、非常に将来性がありますよね。

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

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

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

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

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

guest

回答3

0

普通に実務でNodeJSを使っている会社もありますよ。
使いたくなったらとか、使わなくてはいけなくなったら使えばよいのではないでしょうか。

次に学ぶものですが、これに関しては質問者次第だと思います。

JavaScriptフレームワークはそもそも素のJavaScriptがあるからこそ成り立っているのでフレームワークを勉強したとしても理解する必要は出てくると思います。
結局のところ、用途にあったものを勉強したら良いと思います。(最近の盛り上がりがあるのはAngularやReactでしょうけど、素で素早く対応できるのであれば素で良いでしょうし)

投稿2016/02/15 07:14

編集2016/02/15 07:18
fagai

総合スコア2158

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

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

退会済みユーザー

退会済みユーザー

2016/02/15 07:45

ありがとうございます。 今はアンギュラJSが良いので、それをやるべきとよく言われるのですが、JSそのものができれば、そもそも上記などのライブラリ自体不要で、一番普遍的に学ぶ価値があり、実務でも問題ないのがJS自体を学び、仕事もJS自体で行うことなのですね。 これなら、WEB以外のアプリ制作やロボット開発などに将来変わっても間違いなく仕事に一番生きる方法なのですね。
fagai

2016/02/15 07:51 編集

不要ということでは無いのですが、実際に使う必要性あったり、フレームワークを使うことで効率化が出来るのであれば使えば良いと思いますよ。 フレームワークを利用する場合というのは、開発速度の向上や効率化が見込めるから使うこともありますし、メンバーの知識レベル等からPureなJavaScriptを使わないということもあります。
退会済みユーザー

退会済みユーザー

2016/02/15 08:16

JSそのもので作れれば特に一般的には仕事でも問題ないが、 メンバーのレベルが低くてjQueryを使わなくてはいけなくなったり、 効率化を考えてアンギュラJSを使わなくてはいけなくなることはあるということですね。 自分ひとりで在宅で仕事を請けるなら極端な話JSそのものだけでも良いということですね。
fagai

2016/02/15 08:17

そうですね。極端な話それだけでも良いです。
退会済みユーザー

退会済みユーザー

2016/02/15 08:54

ありがとうございます。 Node.jsはすでに現場によっては使われているのですね。 使っている所は、PHP>RUBY>>Node.jsですが、今も使っているところはあり、今後増えていくということですね。
退会済みユーザー

退会済みユーザー

2016/02/19 07:22

Meteorというライブラリは、ハイブリトアプリ、サーバサイド、クライアントサイドすべてできるそうなので、jQueryからステップアップするには一番効率的で幅広く、アンギュラより新しく将来性があるというわけではないのでしょうか? まだ新しいだけに仕事がないし、はやるかもわからないし、日本語の情報はないし、 JSそのものができれば、ハイブリトアプリ、サーバサイド、クライアントサイドすべてできるので、MeteorはJSそのものができれば必要ないのでしょうか?
guest

0

ベストアンサー

単純に実務で使えるか否かで言えば、
Webエンジニアなら業務に取り入れるべきと言い切れる程度には実用的に使えます。
但し、単純なWebサーバーとしては日本国内では地位を築いているPHPやRubyより流行る事はなさそうです。

わかり易い使い方ですと、静的コンテンツのジェネレータですかね。
うちの職場ではCoffeeScript(LiveScript)、Jade、Stylusの環境で静的コンテンツを生成していますが、
これらに一度触ってしまうともう生のJS、HTML、CSSを書くのがかったるくてやってられません。

PHPやRunyのフレームワークを使う場合、
フレームワークに付いているテンプレートエンジンの関係でHTML部分を置き換える事は難しいですが、
Node.jsを使ってJSやCSSを生成して利用するというのが今後の主流になるでしょう。


AngularJSに関してですが、一番大きなメリットはオブザーバーパターンです。

例を交えて説明します。
jQueryは基本的には処理の流れを書くものです。
なのでAjax通信でユーザー一覧tableを書き換える時はこのようなフローになります

1.Ajax通信を行う
2.結果が帰ってきたらユーザー一覧table内の全tr要素を削除する
3.結果を解析し、tr要素を生成してユーザー一覧tableに差し込む

対してAngularJSはHTML上にオブジェクトを設置するというイメージで配置出来ます。

1.ユーザー一覧tableに「変数usersの値を参照してよしなにtrを生成しろ」と命令しておく
2.Ajax通信を行う
3.結果が帰ってきたら変数usersの値を更新する
4.変数usersを見張ってたユーザー一覧tableが「あ、変数usersが更新されてる!」と察知し、自分で勝手に配下のtr要素を書き換える

これだけではオブザーバーパターンでやるメリットは分かりにくいかとは思いますが、
ユーザーは商品を幾つか購入しているから、購入履歴をDLする必要がある。
どんな商品を購入したかの情報も欲しいから商品マスタもDLしてくる…という風にロジックが肥大化してくると、
jQueryでは収集がつかなくなってきます。

このオブザーバーパターンを実現しているのがデータバインディングという技術で、
この概念や技術はAngularJS以外にも沢山のJSフレームワークで用いられています。

AngularJSの他にもReact.js等様々なJSのフレームワークが群雄割拠していますので、
今すぐにやる必要はありませんが、今後を考えると出来る、概念を知るに越したことはないでしょう。

投稿2016/02/16 03:21

miyabi-sun

総合スコア21158

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

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

退会済みユーザー

退会済みユーザー

2016/02/19 05:35

>>> Webエンジニアなら業務に取り入れるべきと言い切れる程度には実用的に使えます。 但し、単純なWebサーバーとしては日本国内では地位を築いているPHPやRubyより流行る事はなさそうです。 すでに仕事としての需要はあるが、今後3年たっても、RUBYやPHPのように、沢山需要があり、 特に在宅希望の場合は、ほぼ需要はないということでしょうか? 在宅希望のWEBプログラマーを目指すなら、今ならRUBY>PHP>>>>node.jsですかね。 というよりフロントエンドエンジニアを極めるのがもっとよいのでしょうね。 >>> うちの職場ではCoffeeScript(LiveScript)、Jade、Stylusの環境で静的コンテンツを生成していますが、 これらに一度触ってしまうともう生のJS、HTML、CSSを書くのがかったるくてやってられません。 JSそのものができればそれでよいというわけではないのですかね? fagaiさんはそのようなお考えのようですが、人によって考え方が違うのですね。 CoffeeScript(LiveScript)、Jade、StylusはjQueryのように、少ないコードでかけるので、 ソースがシンプルで、JS自体より、学習も簡単なのですね。 HTML>CSS>jQueryときたのですが、JSそのものかアンギュラJSかTypeScript 次に学ぶものが難しいですね。
退会済みユーザー

退会済みユーザー

2016/02/19 07:22

Meteorというライブラリは、ハイブリトアプリ、サーバサイド、クライアントサイドすべてできるそうなので、jQueryからステップアップするには一番効率的で幅広く、アンギュラより新しく将来性があるというわけではないのでしょうか? まだ新しいだけに仕事がないし、はやるかもわからないし、日本語の情報はないし、 JSそのものができれば、ハイブリトアプリ、サーバサイド、クライアントサイドすべてできるので、MeteorはJSそのものができれば必要ないのでしょうか?
miyabi-sun

2016/02/19 08:19

在宅云々が何を指すのかイマイチわかりませんが、 Webサーバーの選択肢として「よし、我が社はNode一本でいこう!」と思い切った選択をする企業はベンチャーだけでしょう。 一部のプロジェクトは試験的にNode.jsのサーバーでやってみよう!…というのはありえます。 ですのでプロジェクトの数で言えば「PHP>Ruby>>Node.js」となるのはほぼ確実で、 高速である事を求められる堅牢なWebサーバーにはJavaやScalaが人気の選択肢としてあります。 > JSそのものができればそれでよいというわけではないのですかね? JSそのものが出来る事はマストで大前提です。 しかし、JS自体は技量や思想でガラリとソースコードが変わるとても扱いにくい言語で、 AltJSで書いてコンパイルすることが求められます。 http://qiita.com/raccy/items/fae9fc5923d78112d935 > JSそのものかアンギュラJSかTypeScript これらは相反する概念ではないので全て同時に習得、勉強していきましょう。 JSコアな勉強は壁にぶち当たった段階で構いませんし、高度な迂回策を取る必要がある場面でも、ある程度はTypeScriptが吸収してくれます。 TypeScriptはMicrosoft製のIDEの恩恵を受けられる現状ベストなAltJSの選択肢の1つです。 なあなあにしてしまいがちな所をきっちりと書けるので大規模プロジェクトに向きます。 jQueryでは大規模なプロジェクトになると死ぬので、 大規模プロジェクトに強いAngularJS(他の選択肢もあるのでJSフレームワーク)は必須です。 AngularJS+TypeScriptを同時に使ってプロジェクトを勧める事は今後のトレンドになるのでそういった視点でも良いでしょう。 独学で同時に使うのは難しそうなのでまずどちらを先に覚えるかはお任せします。
miyabi-sun

2016/02/19 13:49

> MeteorはJSそのものができれば必要ないのでしょうか? ずれてると思います。 JSに関する歴史を知ればJS・Node.jsの関係が分かると思いますので軽く解説します。 2000年前後のJavaScriptは有効活用する方法が全くわからず、ブラウザをチカチカさせるくらいの役にしか立たない、ギークの間ではPC開いたらまずJSを切れと言われる可哀想な存在。 2006年頃、GoogleMapという動的に地図情報をDLしてマウス操作で検索ができる神サービスが登場、Ajaxというバズワードが与えられ一躍JavaScriptやるじゃん!という評価に。 でもJavaScript自体の挙動は分かりづらく、Ajaxの実装も困難でブラウザ毎に挙動が違うため開発者疲弊。 それを打破するjQueryというライブラリが登場し、どのブラウザでも同じコードで簡単にJavaScriptが使えるように、Ajaxも楽に飛ばせるように! FirefoxやGoogleChromeのコンパイラ合戦で速度もスクリプト言語最速に! JavaScriptやるじゃん!すげー!サーバーサイドでも使いたいぜ! →でもファイル操作やインクルード等、プログラミング言語にあるべき機能が殆ど無いんだよな… GoogleChromeのJavaScriptエンジン(V8)を流用したNode.js登場 Common.jsという概念を皆に広め、ファイル操作やライブラリ管理も完備! 俺たちの戦いはこれからだ! フロントエンドはフロンドエンドで、大規模案件じゃjQueryではどうしようもない… AnglarJSや今挙げたMeteor等のフレームワークを使う試み。 RubyはRails一択だけど、JSはどれも出たばかりで知名度の戦争でどれが勝者になるかはわからない。 ついでに日本でSPA(シングルページアプリケーション)の成功例は殆ど無い。 夢はあるが未来も読めない業界。 こんな感じです。
退会済みユーザー

退会済みユーザー

2016/02/20 05:50

何度もありがとうございます。 SPAというのは、ハイブリットアプリのことなのですね。 下記には今はまだまだだが、今後増えるのではとありますが、 http://qiita.com/KENJU/items/b65d671dc8f79cb42bb6 >>> 在宅云々が何を指すのかイマイチわかりませんが、 在宅で、サーバサイドのプログラミングを行い、出来上がったファイルを送ったり、リモートでサーバをいじったりするようなことは、 セキュアではないということで、サーバサイドはほぼないのでしょうか? クライアントサイドはhtml、jsファイルを自宅で行って送るということも少なくないですが。 >>> jQueryでは大規模なプロジェクトになると死ぬので、 大規模プロジェクトに強いAngularJS(他の選択肢もあるのでJSフレームワーク)は必須です。 上記のような働き方が希望名場合は、おそらく大規模はあまりないのではないでしょうか? その場合は、jQuery>JSそのものだけでよいのですかね。 >>> 下記のような意見もありますが、jQuery>meteorというのはずれているのでしょうか? jQuery>js>meteorないしは、アンギュラなのでしょうか? もう時代はReact * meteor一択です。 https://teratail.com/questions/27334 miyabi-suさんは jQuery>AngularJS+TypeScriptを同時に使ってプロジェクトを勧める事がよいとお考えということですね。
miyabi-sun

2016/02/21 05:44

在宅云々ですが、GitやSSHの技術があるので、セキュリティ上は大した問題にはなりません。 まぁ、いくらセキュアでもリモート作業者に機密情報を渡す以上、ノートPCごと盗まれたりスタバの作業中に後ろから見られる等、いくらでも考えられますので、その辺でどうなるかという話はあります。 ですので、そのプロジェクトやその会社がどう考えるかだけの問題なので、実際に就職活動やクラウドワークで相手の企業と対話しないかぎりどうにもならないと思います。 そこにフロントエンドやバックエンドの差異はありません。 >もう時代はReact * meteor一択です。 いやいやいや…ご自身でAngularJSと仰ったのではないですか! AngularJS+TypeScriptが絶対に流行るから絶対にそれでやれと言った覚えはありません。 きっと今の質問者さんに何を教えても混乱するばかりで 自ら勉強する事はないと思うのでレスを止めます。 まずはjQueryをWebアプリを自分の手で構築して、 その後色々と自分の手で触って目で見て判断してください。
退会済みユーザー

退会済みユーザー

2016/02/22 09:31

うまく伝わってないようですね。 >>> もう時代はReact * meteor一択です。 https://teratail.com/questions/27334 上記は下記W3Qのコメントで、私のコメントではありません。 下記のようなコメントがありましたがどうですかということをお聞きしたかったのです。 w3q.jp/t/9579 ただなぜかURLが変更されています。 もしかするとライバルサイトのリンクなので変更されたのかもしれませんね。
退会済みユーザー

退会済みユーザー

2016/02/22 10:05

在宅での仕事という形態から言えば、クライアントサイドもサーバサイドも需要や仕事が請けられる可能性は同じなのですね。 サーバの方が厳しいのかと思っていました。
guest

0

さて、node.jsですがこれは海外では特に多く使われています。
https://github.com/nodejs/node-v0.x-archive/wiki/Projects,-Applications,-and-Companies-Using-Node
有名なところでは、LinkedIn / netflix / paypal / NASA / conde nast / intuitでしょうか。
国内では、サイバーエージェントやニコニコ動画で有名なドワンゴなど、node.jsを使っている企業はいくつもありますが、いずれもまだ「node.jsでほぼ全部やっています!」というところはないですね。
一部または実験的なところでの利用が多いようです。

ただしサーバーサイドのjsは、jQueryを中心としたjsに比べて覚えることが多いので、やや大変かもしれません。
AngularやReactをやりつつ、開発環境としてgulp/gruntを覚える過程でnodeを覚えるのがいいかもです

投稿2016/02/16 02:31

kohashi

総合スコア158

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

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

退会済みユーザー

退会済みユーザー

2016/02/16 02:48

ありがとうございます。 PHP>RUBY>>Node.jsですが、多少の需要は出ており、3年後くらいには、在宅のWEBプログラマーなどでも、十分仕事ができるようになりそうという感じですかね。 JSそのものができれば、Nodeも変わらないと聞いていたのですが、 もっと難しいのですね。 HTML5、CSS3、jQueryとやってきたのですが、その後はjs>>Node>>モンゴDBかmysqlという形が良いでしょうか? これから学ぶならjsそのものかアンギュラか迷います。WEBクリエイターならどちらが良いのですかね。
kohashi

2016/02/16 06:07

そうですね。日本語の情報が少ない間は、英語のドキュメントを読めないとnode.jsやreact.js/Angularは厳しいでしょうね。 > HTML5、CSS3、jQueryとやってきたのですが、その後はjs>>Node>>モンゴDBかmysql あまり英語のドキュメントを調べたりしなくて良いという意味では、まだRuby on Railsか PHP のほうが良いのでは無いでしょうか。 ただし、在宅での仕事となるとRubyでもPHPでもかなりのスキルを求められます。サーバーサイドは「ちょっとだけ触ったことがあります」程度にして、HTML5/CSS3と相性の良いAngularJSもしくはCSSフレームワークのBootstrapを触っておくほうが、『仕事になるか』という意味では良いと思いますね。
退会済みユーザー

退会済みユーザー

2016/02/19 03:21

>>> そうですね。日本語の情報が少ない間は、英語のドキュメントを読めないとnode.jsやreact.js/Angularは厳しいでしょうね。 WEB上では上記二つは、まだ数年はほとんど日本語の情報はないのですね。 日本語で学びたい場合は、本を購入するしかないですね。 需要はあるのに残念ですね。数年後ならだいぶ増えているかもしれませんね。 >>> ただし、在宅での仕事となるとRubyでもPHPでもかなりのスキルを求められます。 サーバーサイドは「ちょっとだけ触ったことがあります」程度にして、HTML5/CSS3と相性の良いAngularJSもしくはCSSフレームワークのBootstrapを触っておくほうが、 『仕事になるか』という意味では良いと思いますね。 とても貴重な意見大変ありがとうございます。 サーバサイトはセキュリティが絡むので、実務経験はあまり問わないが、その代わり、独学で、問い合わせフォームなどを作ったくらいでは、 まず在宅で仕事を請けるのは不可能なのですね。 独学程度では、いくら頑張っても、数年のサーバサイドでのプログラミング経験が必須という所が、ほとんどなのでしょうか? 在宅での仕事が希望なら、それよりもセキュリティがサーバサイドまでは、厳しくない、デザイン、コーディング、JSでのインタラクティブな部分に特化して、 そこを独学でもよいので極めて行って、サーバサイドは、問い合わせフォームなどプラグインを導入できるが、フルスクラッチや細かい変更はできない程度で十分ということでしょうか? 仕事でかかわった人から、サーバサイドができる人があまりおらず、クライアントサイドよりも、そちらの方をできるようになったら、 仕事が沢山あるよといわれたのですが、その会社はかなり稀なタイプで、ほぼ独学でWEBアプリをnodeでできるようになっても、在宅での仕事はほぼないのでしょうか? また仮にPHPやRUBYに変更したところで、ほぼ結果は変わらないということでしょうか?
退会済みユーザー

退会済みユーザー

2016/02/19 07:22

Meteorというライブラリは、ハイブリトアプリ、サーバサイド、クライアントサイドすべてできるそうなので、jQueryからステップアップするには一番効率的で幅広く、アンギュラより新しく将来性があるというわけではないのでしょうか? まだ新しいだけに仕事がないし、はやるかもわからないし、日本語の情報はないし、 JSそのものができれば、ハイブリトアプリ、サーバサイド、クライアントサイドすべてできるので、MeteorはJSそのものができれば必要ないのでしょうか?
kohashi

2016/02/20 09:11

node.js と angularJS と meteor を比べてる時点で、あなたが「何がなんだかわかってない」ということは分かりましたので、お好きなのを覚えて挫折するか、現状で必要とされている(取引先などから要望のある)ライブラリを覚えるのが良いと思います。 そのうえで、どうしても「サーバ側を書きたい!」というのであれば、ご質問レベルから察するに、PHPを覚えられるのが一番近道だと思います。 なお、ご参考までにいうとMeteor は「node.js, angularJS, React.js, Cordova/PhoneGap」あたりを組み合わせたプラットフォームともいうべきフレームワークなので、もちろんMeteorを使えばすべて作れますが、厳しいことを言うようですがこの理解ではおそらくマスターできないのではないでしょうか。 ■最後に:同じ質問をすべての回答者にマルチ投稿するのはやめてください。これをするくらいであれば、このスレッドを終了させ、新しく質問を立ててください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問