読者です 読者をやめる 読者になる 読者になる

マネー報道 MoneyReport

マネーにまつわる報道を取り上げ、自分の切り口で切り取り、噛み砕いてお伝えします。

Webサービス開発に適した開発言語「Perl/PHP/Ruby/Python」。JavaScriptは別物?

スポンサーリンク
あとで読む

1/2早朝から開発言語の話題に(^^;

2015/01/02です。
まだまだ正月三箇日。
のんびり過ごされている人が多いのではないでしょうか?
Uターンラッシュも今日からスタートするみたいですが、メインは明日と明後日ですね~。
正月くらいはノンビリ過ごしたいもの。

ですが今日は早朝から開発言語の話題を他のブロガーさんと喋っていました(^^;
私もWebサービス向けの開発言語についてはさして詳しくない人間なのですが、開発言語の初心者のブロガーさんが

「プログラミングやりたい!」

との事でしたので、少々相談に乗っていました。

プログラミングは一朝一夕で出来るものではない

というのが私のプログラミングに対する認識です。
これは私が毎日終電で、時に徹夜、時に休日出勤を繰り返す中でなんとか身に付けたのがプログラミングだからです。

確かに若い人でプログラミングの才能のある人を見ていると

「そんなにプログラムって簡単に出来るものなの?」

と思う程の敏腕ぶりを発揮する人もいますが、それは天性のもの。
大抵の人は苦労して泣きながらプログラムに噛り付いて、なんとか身に付け取り組んでいるのが実情ではないのかなぁ、と思っています。

と、まぁ1年ばかし業務でプログラミングをした経験があるだけの私がWeb開発言語の話題について書いてみます。
いっぱい間違った事も書くかもしれませんが、そこはご指摘いただければと思います。

サーバーサイドとクライアントサイド

プログラミング初心者の方が間違ってしまう所の1つに

「プログラムはどこで動くのか?」

を意識せずに、開発言語を選んでしまう事があるように思います。
パソコン上やスマホ上だけで動くプログラミング言語は全て「クライアントサイド」の開発言語になりますが、Webサービスを考えた時には「Webサーバー側で動くプログラム」「パソコンやスマホ等のクライアントサイド側で動くプログラム」がある事を理解しないといけません。

ついつい初心者の方はここを混同しがちです。

簡単に切り分けると、Webサービスを提供する上では下記のような切り分けになるかと思います。

【サーバーサイド言語】

  • Perl
  • PHP
  • Ruby
  • Python
  • Java
  • ASP.NET


【クライアントサイド言語】

  • JavaScript
  • ActionScript

一昔前だと、サーバーサイドにはCGIやASP、クラインとサイドにはJavaアプレッットやVBスクリプト等もありましたが、現在は上記の様になるのかな、と。

それぞれ出来ることが違うので、自分が手掛けたいWebサービスに合わせてどちらの開発言語を勉強するのかを切り分けなければいけません。

サーバー側でDBアクセスして、データを取りだして表にして表示したいとかってなると、サーバーサイドの言語でやらなければいけません。
逆にブラウザ上(クライアント側)で色々な見栄えや動的に見せるような制御をしようと思うならクライアントサイドの言語を使って処理をしなければいけません。

ここの勘所を理解した上で、「じゃあ自分はどちらの言語を学ぶ必要があるのかな?」というのを考えなければいけません。

私の場合だとWebサイトでDBからデータを取りだして表示をしたかったので、サーバーサイドの開発言語を勉強して習得しました(まだ見習いレベルですが(^^;)。

またサーバーサイドの開発言語においても、向き不向きがあるようですね。

Webシステムでは、サーバOSにはLinuxが、プログラミング言語には俗にLL(LightweightLanguage)と呼ばれるPerl/PHP/Ruby/Pythonなどのスクリプト型言語が多く利用されます。サーバOSとしてWindowsServer、言語としてJavaなども利用されますが、一般的に開発工数が激増するため、スピード重視のWeb業界ではLinux+スクリプト言語が主流です。

PHPとRubyを徹底比較!開発効率をあげて収益を増やす | TechRacho

PHPなどのスクリプト型言語はLLと呼ばれているんですか~。
Lightweight Languageって「軽い言語」って事でしょうかね?
PHPの習得すら重かった私にとっては「軽い言語だなんてとんでもない!」という思いですが、開発言語の世界では軽いみたいですね(^^;

Javaは開発工数が大きく掛かってしまうんですね~。
安定する分、作るのが大変なんですかね?
Javaは書いたことがないので分からないですね(^^;

スピード重視のWeb業界ではLinuxサーバーとLLでの開発がしばらくは主流ですか~。
PHP頑張っておきますか!

サーバーサイドとクライアントサイドの繋がり

私はまだPHPを使っているだけで、JavaScriptとの連携とかはまだやった事がないのですが、PHPとJavaScriptの間で変数の受け渡しなんかも出来るみたいですね~。

Javascript から PHP に変数を渡すには?


Javascript は(普通は)クライアントサイド技術であり、一方 PHP は(普通は) サーバーサイド技術です。また HTTP は"ステートレスな"プロトコルです。 そのため、この二つの言語はダイレクトに変数を共有することができません。


しかしながら、この二つの言語の間で変数を渡すことは可能です。 一つの方法は PHP と一緒に Javascript のコードを生成し、 ブラウザに自動的にリフレッシュ(再ロード)させることです。 以下の例はまさにそれで、PHP に画面の高さと幅を認識させています。 これは通常はクライアントサイドでしかできないことです。

PHP: PHP と HTML - Manual

PHPでJavaScriptも出力してしまうんですか~。
なるほど、それなら好きにPHPの変数の内容を選んで、JavaScriptに渡すことができますね~。
クライアント側の制御は確かにPHPでは難しいですから、JavaScriptの出番という訳ですか。

この辺は今年勉強しないとダメですね~、私の場合は(^^;

開発言語別のプログラマーの年棒

おまけで、各開発言語別のプログラマーさんの年棒が出ていたのでご紹介しておきます(^-^)/

プログラミング言語別の年収表が面白い!1位はPythonで2位はRuby。人気はJava : IT速報
求人年俸額1位となったのは「Python」で、求人年俸額平均は382万2,018円、求人件数は281件。Pythonは比較的新しい言語だが、利用範囲が広く、様々な環境で動作し、かつ読みやすく書きやすいなど、生産性や保守性が高いことが特徴。今回は、プログラマの人口も他の言語と比べてまだ少ないことから、1位になったと分析している。

開発言語別の年棒一覧グラフ
f:id:MoneyReport:20150102091105p:plain

へ~、Python(パイソン)が断トツで1位ですね~。
Pythonなんてやったことないので、想像できませんが今人気のある言語なんですね~。
2位がRubyですか。
3位はPerl?まだ需要があるんですか?
4位がJavaScriptにPHP、Javaですか~。
一番年棒が低いのはCOBOLなんですね(^^;


開発言語別の年棒と求人数
f:id:MoneyReport:20150102091112p:plain

求人数と年棒にも密接な繋がりがありそうですね~。
求人が少ないというか、まだ書ける人が少ないPythonが高くなっている感じですか。
JavaとPHP、JavaScriptの求人が多いんですね~。
仕事はあるけど、その分年棒は低めになってしまったりするんですかね?

うーむ、難しいですね。

まとめ

  • プログラミング初心者はサーバーサイドとクライアントサイドのどちらの処理を自分が行いたいかを理解してから、言語を選ぶべき!
  • スピード重視のWeb業界ではLLと呼ばれるサーバーサイドスクリプト言語が人気!
  • サーバーサイドとクライアントサイドで変数の受け渡しも出来る!
  • 開発言語別年棒は「Python」が1位!