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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Node.js

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

JavaScript

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

6回答

8532閲覧

C言語系でシンタックスが似ているのでjavascriptを学んだ人は次にPHPをやるといい?

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Node.js

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

JavaScript

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

3クリップ

投稿2017/03/05 06:42

C言語系でシンタックスが似ているのでjavascriptを学んだ人は次にPHPをやるといいとききましたがrubyやpythonよりもPHPのほうが文法が似ているので簡単に習得できると考えてよいでしょうか?

Nodejsは同じJSですが、非同期IO、コールバック地獄などがあり、同じ言語なのにPHPよりも初めてサーバサイドの言語を学ぶ人には難しいと聞き混乱しています。
同じ言語だからNodejsが文法も関数も新しいことをちょっとした違い程度を学ぶだけでいいので絶対良いと思っていたのですが、
PHPとJSの違い以上にJSとNodejsは違うと考えるべきなのでしょうか?

しかもPHPはWEBアプリ制作で5年以上揺るがない8割近くの仕事を占めているが、
その次がrubyが1割くらいで、Nodejsとpythonたちが残り1割というイメージが当分ゆるがないと考えるべきなのですね。

Nodejsはそもそもサーバサイドの言語として、流行らないでこのままなのでしょうか?海外ではかなり使われていると聞きますが。

これが正しい認識であればやはり、WEBアプリ制作やWEBのサーバサイドのプログラミングを小規模サイト政策で請けるのであれば、PHP一択となるのですかね。

前にも似たような質問をしてしまいましたが、非常に重要な選択なので、
色々な方の意見をお聞かせください。

http://mikumikuplay.com/it/beginner_should_learn_javascript_and_php/
より

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

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

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

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

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

guest

回答6

0

農民「今度武士になろうと思うんですが、武器は何を練習したらいいですか?」
旅人「農民なら日常的に鎌を使ってるだろ? 鎖鎌が習得しやすいんじゃない?」
農民「わかりました」

数日後

農民「士官に来ました。鎖鎌が少し使えます」
武士「実績は?」
農民「使い方の本を読みました」
武士「いらん。銃の使い方教えるから鎖鎌は捨ててこい」

投稿2017/03/05 09:29

Zuishin

総合スコア28660

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

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

退会済みユーザー

退会済みユーザー

2017/03/05 10:07

↑まさにこれ
toutou

2017/03/05 10:29

わからない。結局どっちがいいの?
ikedas

2017/03/05 11:16

+1しました。 > toutouさん 鎖鎌でも鉄砲術でも酔拳でも、なんでもいいと思いますよ。 「炬燵兵法」という言葉の意味を調べてみてはいかがかと。
guest

0

もし、「仕事が多い」という理由でPHPをするのであれば、同時に「できる人も多い」ということを忘れてはいけません。

[中間発表版]2016年版プログラミング言語別給与ランキング – HRog
「プログラミング言語別 平均年収」を発表! – 求人検索エンジン「スタンバイ」

根拠になるデータや算出方法が異なるので単純に比較できませんが、どちらも、

平均年収: Python > Ruby > JavaScript > PHP
求人数: PHP > JavaScript > Ruby > Python

となっています。PHPは求人数が多いのに平均年収が低いです。これは需要が多いが供給はもっと多いと言うことです。物価と同じで、供給が多くなるほど、つまり、できる人が多くなるほど単価は下がります。PHPは典型的な供給過多の例です。なお、Javaも同じ傾向があります。

つまり、PHPだけできるようになっても、同じようなPHPだけできるライバルがたくさんいるので、別にあなたである必要は無い、替わりの人はいくらでもいると言うことです。未来は誰にもわかりませんが、PHPが下火になったとき、今できている人ができなくなるわけではないので、この供給過多はさらに増すことになるでしょう。そのときは二束三文の仕事しかないかも知れません。

「仕事が多い」と言うことを単純に良い評価とすることは大変危険です。需要だけではなく、供給をみないと、参入すべきかどうかの判断はできません。そういったセールスマンの謳い文句みたいなのを鵜呑みにしてはいけません。

※ もちろん、PHPで高い給料を貰っている人もいます。ただ、そういう人はPHPの内部(Cのソース)まで知り尽くしていたり、ライブラリを自分で作ることができたりするような人です。


【追記1】言語難易度と平均年収について

難しいから給料が高いというわけではありません。言語の難しさと仕事としてできる人の多さはあまり関係ありません。需要に対して供給が少ないと給料が高くなるだけです。そもそも「言語の難しさ」というのは人によって指標が異なるため、絶対的なことは言えません。(私はC++よりJavaScriptの方が難しいと考えていますが、某所でそう書いたらはてブで叩かれました。)

二つの資料で平均年収が異なるのは算出方法の違いです。資料の最後にどのようにして算出したかが書いてあります。各資料内で言語間の違いは参考になりますが、資料間での比較は無意味です。また、どちらも求人情報からですので、実際のプログラマの平均年収ではありません。

顧客の立場から言うと、仕様通りに作ってあって、ずっと保守してくれるならなんでもいいと言うのが本音です。そして、安ければさらにいいというだけです。保守してくれることが前提ですので、あなたが保守をしないのであれば、保守する立場の人が保守しやすい言語を指定するだけです。


【追記2】文法と言語設計について

プログラミング言語間の違いは文法(シンタックス・書き方)よりも考え方の方が重要になります。文法の違いなど何度か書いていればそのうち慣れます。しかし、言語の考え方、いわば言語設計自体は体系だって覚えないと使いこなすことはできません。

ES5以前のJavaScriptはプロトタイプベースオブジェクト指向というかなり特殊な分類に入る言語です(他にメジャーなプロトタイプベースオブジェクト指向はLuaしかありません)。ES6からはクラス構文が追加され(中身はプロトタイプベースのまま)クラスベースオブジェクト指向としても書けるようになりましたが、ES5以前しか知らなければ、(Lua以外の)どの言語をやってもオブジェクト指向については初めから学ぶような物になることでしょう。

PHPとJavaScriptで似ていることはC言語風文法という所だけで、言語設計は大きく異なります。あえて共通点を探すとなると、悪名高い曖昧な==と厳密な===があることぐらいでしょうか。ただ、曖昧な==であってもPHPとJavaScriptではその法則が異なります("" == nullがPHPではtrueですがJavaScriptではfalseです)。関数をそのままオブジェクトとして扱えるという点で、まだPythonの方がJavaScriptに近いと思います。


【追記3】Node.jsについて

Node.jsで使う言語はJavaScriptそのものです。Chromeと同じJavaScriptエンジン(V8エンジン)を使っています。Chrome版のJavaScriptにはDOMがあるように、Node.jsではブラウザには必要ないIO処理などが標準ライブラリとして追加されているに過ぎません。別の何かでは決してありません。もし、Node.jsができないというのであれば、そもそもJavaScriptができていないと言わざるをえません。非同期もコールバックもブラウザのJavaScriptでも言えることであり、Node.js特有のことではありません。

もし、JavaScriptはわかるけどNode.jsが難しくてわからないとか言っている人がいれば、そもそもその人はJavaScriptがわかっていません。やり方は何も変わらないからです。Node.jsが難しいと感じるのは、非同期処理ではない旧来の言語でサーバーサイドを書いていた人達です(同期処理と非同期処理ではシステムの設計そのものから違いがでてくるから、旧来の方法が使えなくなるため)。JavaScriptをきちんと学んでいる人にとっては何ら苦になる物ではありません。


なお、PHPという言語の善し悪しについては、私がするとただの悪口になってしまうので控えさせていただきます。

投稿2017/03/05 11:01

編集2017/03/05 21:30
raccy

総合スコア21735

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

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

退会済みユーザー

退会済みユーザー

2017/03/05 11:56

難しいですね。 javaは求人数がもっと多いのにPHPと一万円しか違わないので、PJHP以上に難しいのになぜか供給過多になっているという状態なのでもっと選ばないほうがいいという事ですね。 見事に給料と求人数の高さが反比例しているので、これがいいという言語がありませんね。 ビズリーチは平均年数が高すぎるので実際はもう一つのほうがほんとうの年収でしょうが、 ruby(11694)の数字の部分が求人数なのですかね? わかりにくいですね。 ちなみにWEBのフロント中心に学んできたものであればraccyさんのお勧めはどの言語ですか? WEBの小規模サイト制作の仕事を在宅中心にできればありがたいと思っています。
退会済みユーザー

退会済みユーザー

2017/03/05 12:36

求人が少なくて、給料が高いものは良い言語なのでしょうから、pythonはそれに該当しますね。 無難なのは求人数、給料ともにまずまずなrubyですかね? NodejsはJSの中に入っているのですかね?JSもまあまですが、Nodejsという記載がないのでわかりません。 恐らく求人が非常に少なく最下位いくらいで、給料は高めなイメージですかね? swiftに近いイメージくらいですかね? するとNodejsは仕事はあまりないものの、評価はpythonと同じくらいの評価でrubyよりもいいのかもしれないですね。 ruby、pythonはロリポなどの格安レンサバにも頑張れば最新版にすることができるようですが、 JSを学んでいるものに学びやすい言語でしょうか? PHPは文法がif分などそっくりなのでJSがわければ、メソッドの違いだけ覚えれば文法はすんなりできると聞いていますが上記二つはだいぶ違うのでしょうか? NodejsはJSなので文法は同じで、関数も半分はクライアントサイドと被るでしょうが、 その割にPHPより難しいと聞いています。
raccy

2017/03/05 21:31

> saiboutaiさん 長くなりそうなので、回答に色々追記しました。
退会済みユーザー

退会済みユーザー

2017/03/06 02:18

お返事ありがとうございます。 >>> 【追記3】Node.jsについて Nodejsは、参考先サイトにはJSができてもPHPよりも難しいと記載がありましたが、 そうではないのですね。 JSの基礎がきっちりわかればやはりシンタックスが同じで、 関数も3割るくらいは同じなので、PHPより簡単か同じくらいなのですね。 rubyやpythonのほうが、文法もすべてが違うので、大変なのですね。 ただPHPの評価は低くても、小規模サイト制作の仕事だと使わざる負えないことが多いでしょうから、 最低その場合に対応するためにPHP工房で問い合わせフォームを導入できるようにだけしておけば、 そのような仕事はクリアーできるので、まずこれだけPHPを学んで、 それ以上追及しても評価されないので、その後すぐにNodejsに移るという手が、 いいとこどりかなと思いました。 小規模サイト制作の仕事だと使わざる負えない場合9割は問い合わせフォームで、 せいぜいショッピングカートがまれにある程度だと思うのでこれで仕事としては処理できるかなと思います。 ・下記のような記事も見たのですが、 read("ファイル名", function(data) { }); の部分はJSの基礎をやっている自分には特になんとも感じません。 eventlisnerとかと似ているなとしか思わないので、そのような人には特に難しいわけではないのですね。 日本語の情報が少ないというのは確かにありますが。 >>> node.jsはシングルスレッドノンブロッキングIOなのでコードが難しい 例えばPHPでファイルを読む時に以下のような書き方ができます。 $data = read("ファイル名"); ブロッキングIOの書き方です。分かりやすいですよね。 それに対して、node.jsの場合、ノンブロッキングIOの書き方をしなければなりません。 read("ファイル名", function(data) { }); ファイルを読んで取得したデータをコールバック関数の引数として受け取らなければならないんです。初心者には難しいですよね? http://mikumikuplay.com/it/nodejs-yori-php/
raccy

2017/03/06 09:57 編集

> saiboutaiさん 私には、あなたの中では既に結論が出ていて、単に不安だから、賛同者が欲しいだけとしか思えません。色々言い訳しているだけで、私の言っていることの一割も伝わってないようです。なので、はっきり言います。 * 案件が多いからと言う理由だけで言語を選択するのは危険。 * JavaScriptと同じC言語風文法だからといって簡単になるわけではない。 だからといって、PHPを学ぶのを辞めた方が良いというわけではありません。私が言いたいのは、そんな言い訳じみたことを自分にしても意味が無いということです。 「問い合わせフォームやショッピングカートを作りたい」→「できあがりのPHP工房やEC-CUBEを使えばできそう」→「これらをカスタマイズするにはPHPの知識が必要」→「PHPを学ぼう」 これで十分じゃないですか?なぜ、これで不安になるのですか?今必要だからする、それだけで十分なはずです。 あなたがしたいのは何ですか?プログラミングですか?それとも仕事でWebサイトを作ることですか?もし、プログラミングをしたいというのであれば、より広い視野を持てるように全く別の言語(CとかHaskellとか)を私は勧めますが、単にWebサイトをつくりたいというのであれば、必要だと思った物(PHP)をやれば良いのです。何も迷う必要は無いかと思います。PHPの将来が不安?はっきり言いますけど、安泰な言語なんて存在しません。JavaScriptだって5年後、10年後はわかりません。でも、今JavaScriptが必要で、PHPが必要なら、それを学べば良いだけです。 もし、仮に、本当のプログラマーになりたいなら、EC-CUBEを使う側ではなく、EC-CUBEを作る側になりたいなら、最終的に全部やるぐらいの勢いがないと厳しいです。難しそうだから避けようという人は本当のプログラマーにはなれません。
guest

0

なんか、率直な感想なんですけど、こういうことって、まともなコードが書ける人が気にすることじゃないの?

割と定期的にこの手の質問が上がるように思えるのですが、どの質問者もいったい何年先の心配しているんだろうと思います。しかも、この手の質問する人たちって、はたから見ると、スタートラインにすら立っていない。

行動を起こす前から、「効果が上がる方法は?」とか、「効率的に‥」とか聞くけど、結局楽したいだけでしょ?って思っちゃいます。

PHP vs Ruby とか何でわざわざ一つに絞る必要がある?

両方できる人が世の中で勝つに決まっていることじゃね?そんなこと小学生でもわかることじゃねーのか。

問い合わせフォーム作ってと言われて時に、phpをやったことが無くてもグクレバコピペと編集程度でできてしまうレベルなんですね。

ググってコピペで済むなら誰が金払ってくれるんでしょう。ググって業者を探すより、作った方がお金の節約になるし、自分でできちゃうなら誰も頼まない。


基本的な質問ばかりしている質問者が、プロフィール見ると意外とプログラマとして会社勤めしているとかたまに見受けられるけど、大丈夫かこの国のエンジニア?

一体どれだけのプロダクトが奇跡的に動いているんだ…

投稿2017/03/05 12:45

編集2017/03/05 20:11
terminator

総合スコア266

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

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

0

個人的な見解ですが…
プログラミング言語をどうするか?
という以前に、もっと環境(ここではWEB関連でしょか?)の
理解を進めた方がいいような気がしますわ~

そのために PHP をチョイスするというのはありだと思いますし、
下地が理解できていれば、どの言語を選んでも
実装に苦労することは少なくなると思います。

とくに仕事としてやっていきたいと考えていらっしゃるなら
そのへんを疎かにしない(最新技術の情報収集も含めて)
のは大事だと思います。
個人が趣味でやるなら、好きなようにすればいいと思います。

投稿2017/03/05 07:31

takasima20

総合スコア7458

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

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

退会済みユーザー

退会済みユーザー

2017/03/05 09:13

問い合わせフォームやショッピングカートなどを導入するのが、小規模サイトの場合、 WEBアプリ制作の制作の9割がたはこの二つですよね その場合必要な基礎とは、サーバの構築の基礎などという事ですか?
takasima20

2017/03/05 12:51

「WEBアプリ」の認識に齟齬があるような気がします。 サーバの構築は知見があればベターでしょうが、 どちらかというとHTTPに関する基礎知識のつもりでした。
退会済みユーザー

退会済みユーザー

2017/03/06 02:23

http://ponpoco.hatenablog.jp/entry/2015/03/06/011518 このあたりの、情報やパケットのヘッダーにどんな情報があるかなど、サーバ側というよりもTCP/IPの基礎側のことですかね? スリーウェイハンドシェイクとか
takasima20

2017/03/06 11:11

あーっと、表現がまずかったかな。 WEBページが表示される仕組みとか WEBページでできること、あたりのことです。 もちろんTCP/IPレベルで理解できるなら それに越したことはないと思います。
退会済みユーザー

退会済みユーザー

2017/03/06 12:03

レンダリングの仕組みなどですね。
guest

0

それなりに長く業界でのたくってる身から言わせてもらうと、
「どれだっていいじゃん、そんなとんでもなく違わないし」
ですね。

むろん、それぞれの言語系で作法が異なりますから、PHP に向いた仕事、Ruby で(というか Ruby on Rails ですかね)やるのが楽な仕事、Python でやる仕事、あるいは JavaEE でがりがりやる仕事、どれもそれなりにあるのです。ですが根幹となるアルゴリズムやサービスに必要な作法は、どのような言語であれ同一になります(得手不得手は別として)。
つまり、本来は言語で選ぶわけではないのです。どれを選べば(その仕事に対しては)コストパフォーマンスがよいか、だけの話です。案件の場合、たいていは事前の設計でコストパフォーマンスを考慮して、使用する言語が決定しているわけで。(このコストパフォーマンスには、人材の集めやすさも考慮されている)

そして給料の話ですが、今そうだからといってこれからもそうだとは限らないのです。
例えばかつては Perl がもてはやされた時期がありました(それこそ今の PHP や Ruby なぞ目じゃないくらいに)。Java も今は供給過多(しかも供給される質が低下している)だから安くなっているのであって、自然淘汰でまた回復する可能性は十分にあります。

※個人的にはなぜ Python 推しなんだろうとは思いますが…… Trac の改造で触りましたけど

投稿2017/03/06 03:11

tacsheaven

総合スコア13703

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

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

退会済みユーザー

退会済みユーザー

2017/03/06 03:50

>>> ※個人的にはなぜ Python 推しなんだろうとは思いますが…… Trac の改造で触りましたけど pythonはrubyと同じくバージョンが古いものの、ロリポなどのレンサバでも使えるという意味と、 人工知能ビックデータ関連でこれから伸びていき給料も良いので需要があるという観点で候補にいてれています。 あまり個人的には良くなかったのでしょうか?
tacsheaven

2017/03/06 03:57

まあ文法の癖がちょっと気になる、程度ですけどね。 他の言語も同時に触ってると切り替えにちょっと戸惑う、くらいで。
退会済みユーザー

退会済みユーザー

2017/03/06 04:13

JSを基準に考えるとNodejsとPHPが文法的にそっくりか同じで、 ruby、pythonはちょっと違うが、方言程度という事ですかね。
guest

0

ベストアンサー

業務上PHPを使用したアプリを運用しております。
使用環境でC10K問題等はないので、PHPでの運用を選択しました。
社内開発&社内でのみ運用とあって、開発期間が少なく他の言語(当初はC#)を断念しました。
それでも、会社から言われた3ヶ月の倍の6ヶ月かかってようやく本稼働しました。

サーバーサイドの言語として、PHPはHTMLの感覚で書けるのでお勧めですが、
一度使ってしまうと、楽すぎて他の言語を見たくなくなるのも事実だと思います。
また、当然ながらサーバーサイドで片付かない処理はクライアントサイドで行うので、
PHPだけで100%作りきるのは難しい問題かと思います。

ざっくりJSはクライアントサイド
Nodejsはサーバーサイドで小規模な計算または、C10K問題(クライアント1万件接続問題)の為
PHPはコーディング(と言えるのか微妙な位)が楽なサーバーサイド
と私は認識しております。

また、Webアプリと言ってもサーバーサイド・クライアントサイド両方を使用せざるを得ない場合が多いと思います。
昔はFLASHのアクションスクリプトもありましたが、今は非推奨ですので。

WEBのサーバサイドのプログラミングを小規模サイト政策で請けるのであれば、PHP一択にせざるを得ない状況が多いと思います。
Webアプリとして、工数によっては他の言語も選択肢に入ると思いますが、PHPは必ず入ってくるかと思います。

何が正しいのかは、環境によって変わってくるかと思います。
開発に十分な時間・費用が掛けれるのであればPHPで無くても良いと思います。
が、現状の社会のスピードから考えるにPHPが第一選択となるのも仕方ないのかと思います。

付け加えると、PHPをきっちり勉強しなくてもCを理解しててJSが出来てれば、ぶっつけ本番で何とでもなります。
だって、コンパイルとかしないし。

投稿2017/03/05 07:24

Marian-Heart

総合スコア25

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

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

退会済みユーザー

退会済みユーザー

2017/03/05 07:55

ありがとうございます。 phpはサーバサイドなのにクライアントのjavaScriptより簡単なんですね。 cssの次がphpでその次がjavaScriptですかね。 よってjavaScriptが分かれば、 問い合わせフォーム作ってと言われて時に、phpをやったことが無くてもグクレバコピペと編集程度でできてしまうレベルなんですね。 ビックリしています。 恐らくはプログラミング言語で最も簡単なんですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問