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

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

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

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

PHP

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

Python

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

Q&A

解決済

3回答

31457閲覧

サーバー開発で使用する言語は、どれを使えば良いですか?

m.h

総合スコア149

Ruby

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

PHP

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

Python

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

0グッド

13クリップ

投稿2014/09/08 04:42

サーバー側の言語では、Ruby、Python、PHPが有名かとは思いますが、どの言語使うのが良いのでしょうか?
今までサーバー開発は経験が少なく、どれも見たことある程度の知識レベルです。
(JavaとPerlは使ったことがあります)
また、あまり大きな開発規模ではなく、3ヶ月程度で作成するくらいの内容です。

導入から保守まで、それぞれの言語のメリット、デメリットはどんなところでしょうか。
よろしくお願い致します。

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

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

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

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

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

guest

回答3

0

関数を選択する場合、次の要素の兼ね合いを考えるのが大事だと思います。

速度、コードの安全性 <--> 書きやすさ

例えば、静的型付けの言語の方がコードの安全性が上がり、大規模開発に向いてるけど、動的型付けの言語の方が書きやすく工数短縮につながるといった具合です。
速度も Native(コンパイル型)や VM の言語はコンパイルの手間がかかりますが速く、スクリプト言語は手間がない代わりに遅くなるということがあります。また、同じコンパイルでも静的型の方が速くなります。

そのうちブログで書こうと思って調べていたネタなのですが、サーバー開発で使われている言語の特徴をまとめてみたので参考にしてみてください。

ちなみに速度関連の話は以下のサイトを参考にしています。

================

C, C++ 言語
一応、フレームワークもあります。

  • 特徴 : 静的型、 Native
  • メリット : ダントツに速い、Web じゃなければシェア大
  • デメリット : 作るの大変

Go 言語
C++ じゃもう無理ということで Google が開発した言語です。
Web 開発用の機能も充実してます。ただ、 Native の割にはそんなに速くはないです。

  • 特徴 : 静的型、 Native

Java
Web 開発用の機能や VM を活かしたリソースのモニタリングツールなどが充実してます。
ただ、 Java は VM のシステムは素晴らしいのですが、言語仕様的な欠点も多いです。そのため、 JVM 上で動く JVM 言語がたくさん生まれています。

  • 特徴 : 静的型、 JVM
  • メリット : シェア大
  • デメリット : 言語仕様がイマイチ

JavaScript
Node.js を使うことによってサーバーサイド言語になります。 Ringo といって JVM で動くものもあります。 一番のメリットはサーバサイド、クライアントサイドで同じ言語で書けるという点だと思います。
スクリプト言語ですが、 Node.js では V8 エンジンが使われていて内部で JIT コンパイル(VM の速さの要因の一つ)できます。

  • 特徴 : 動的型、スクリプト(中で JIT)
  • メリット : シェア大、サーバー-クライアントサイドで同じ言語で書ける
  • デメリット : もともと大規模開発向けの言語ではない

Dart
こちらは JavaScript じゃもう無理 ということで Google が開発した言語です。
JavaScript と違い、初めからクライアント、サーバーサイドの両方で動作するように作られています。 Dart VM は V8 エンジンを改良して作られており、 Google 発表では JVM よりも速いらしいです。
Google App Engine で使えるようになるなど、 サーバーサイド言語としても Google は推してきているようです。

  • 特徴 : 動的型、スクリプト(中で JIT、型チェックあり)
  • メリット : サーバー-クライアントサイドで同じ言語で書ける
  • デメリット : 開発段階からようやく安定してきたぐらい

Clojure
JVM 上で動作する LISP 系の関数型言語です。関数型言語は並列処理に強い言語です。
実用的な LISP といった感じの言語です。ただ、 LISP は素晴らしい言語ですが、その分とっつきにくいです。
また、ClojureScript という JavaScript に変換できる altJS の言語もあります。

  • 特徴 : 関数型、動的型(型チェックも一応あり)、JVM
  • メリット : LISP、サーバー-クライアントサイドで近い言語で書ける
  • デメリット : LISP

Scala
JVM 上で動作する関数型言語です。関数型ですが、制限が緩いので、気をつけて書かないとベター Java 程度の言語になってしまいます。
Twitter が Ruby(Rails) から Scala に変更したことで有名になりました。

  • 特徴 : 関数型、静的型、 JVM

Erlang
BEAM という JVM とはまた趣の異なった VM の言語です。こちらは耐障害性が重視されています。耐障害性というのは安定性とは違い、落ちても自動で復帰することによって障害に強くしています。
電話会社のエリクソンが開発していて、ライフラインのように速度よりも止めないことを重視されるサーバーに向いています。

  • 特徴 : 関数型、動的型、 BEAM(Erlang VM)
  • メリット : 耐障害性、分散コンピューティングに強い
  • デメリット : 遅い、書きづらい、シェア小

Elixir
Erlang は実はすごく書きづらい言語です。 Java で JVM 言語がたくさんできているように Elixir は Erlang VM 上で動く言語です。
Ruby 風の言語で、 Erlang のメリットをそのままに書きやすさを向上させています。

  • 特徴 : 関数型、動的型、 BEAM(Erlang VM)
  • メリット : 耐障害性、分散コンピューティングに強い
  • デメリット : 遅い、シェア小

C#
最近では、.NET もサーバーサイドでのシェアを増やしてきています。

  • 特徴 : 静的型、.NET
  • メリット : Web 以外ではシェア大

F#
.NET で動作する関数型言語です。 F# は新しい言語ですが、その実態は OCaml の移植なので、わりと実績のある言語です。次のような流れでできています。
ML(関数型の走り) → Caml(ML の方言) → OCaml(オブジェクト指向を取り入れる) → F#(.NET への移植)

  • 特徴 : 関数型、静的型、.NET

Haskell
純粋関数型言語です。純粋なので制限がきつく、 OOP に慣れているとパラダイムシフトにちょっと苦労させられます。
コンパイル型ですが、 Native の割に遅いです。 JVM や .NET の言語であれば、 Java や C# のライブラリーなども使えるので、シェアが低いのはそれほどデメリットでは無いのですが、コンパイルなので、そのデメリットが効いてきます。

  • 特徴 : 純粋関数型、静的型、 Native
  • デメリット : シェア小

Ruby
書きやすさに重きをおいたスクリプト言語です。 Rails により Web 用言語として一気に広まった感があります。
JVM への移植である jruby でも Rails を動かすことができます。

  • 特徴 : 動的型、スクリプト(内部は VM)
  • メリット : 書きやすい、シェア大

Groovy
Ruby 風のスクリプト言語ですが、より JVM への親和性を高めた言語です。

  • 特徴 : 動的型(コンパイル用に指定もできる)、 JVM

Python
何かと Ruby と比べられる言語ですが、こと Web に限れば Rails の分、遅れをとっている気がします。

  • 特徴 : 動的型、スクリプト(PyPy を使えば内部で JIT)

PHP
実はここで挙げた言語の中で、唯一かじってさえいない言語です。
個人的に興味が持てなかったからなのですが、シェアは広いのでそんなに悪い言語ではないような気はします。

  • 特徴 : Web 専用言語、動的型(型チェックできるものもある)、スクリプト
  • メリット : シェア大

================

いろいろ挙げましたが、私のお勧めは ClojureRuby です。
作成される規模も考えれば、 ベタですが Ruby がいいんじゃないかと思います。

投稿2014/09/10 16:35

yohshiy

総合スコア863

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

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

m.h

2014/09/12 05:35

いろいろ教えていただき、ありがとうございました。 これほど多くの言語で、サーバー開発が出来ることは知りませんでした。 Ruby on Railsを使うと、簡単にサーバー開発が出来るという噂は聞いているのですが、 紹介して頂いたURLでは、かなり下の方になってしまうのですね・・・。 クライアントとサーバーで、同じ言語で開発できる JavaScript も良いかなと思いました。
guest

0

ベストアンサー

初めての挑戦ということであればPHPが良いのではないでしょうか。
メリットとしては、サーバーに置いとけばとりあえず動くのでプログラミング以外のことに気を払う必要が無いということでしょうか。
無料のレンタルサーバーでも動かせるのでコスト面でも優れていると思います。
あとPHPできる人は多いと思うので、困ったときに聞きやすいとか。

Webアプリだけでなくて、普段使えそうなちょっとしたツールとかも作りたい、という考えをお持ちでしたらRubyやPythonをやってみると良いのでは。
PHPは良くも悪くもWeb特化の言語なのでそういう使い方にはあまり向いていないかも。

Rubyのメリットは日本語の情報が多い点と、こちらもPythonに比べると質問できる人が多いんじゃないかという点です。
Rubyの場合、言語だけでなくフレームワークもRailsやSinatraというある程度スタンダードになっているものがあるというのもメリットだと思います。Pythonはその辺Django以外は乱立してるので。

Pythonのメリットは…特に思いつきませんね^^;
でも個人的にはRubyに比べて、「あれ、これってどうなってんの?」と思うことが少ない気がします。
デメリットとしては求人を探してもPythonという言葉自体あまり見かけないということでしょうか。

あとRubyとPython共通のデメリットですが、JavaやJavaScript、PHPといった多くの言語と書き方が異なる(セミコロンとかインデントとか)ので、初めて作るのであればその辺りが障害になってくるかもしれません。

RubyとPythonどっちが良いかは、ドットインストールとかのチュートリアルを見てしっくりくる方を選べば良いんじゃないでしょうか。

サーバーサイドの開発、頑張ってください。

投稿2014/09/11 11:17

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

m.h

2014/09/16 01:42

レンタルサーバーを調べてみたところ、どれもPHPとMySQLがインストール済みなので、 始めるのは楽そうで良いですね。 Pythonもインストール済みなところが多いのですが、日本語の情報が少ないようなので、 そういう意味では、Rubyの方が良いかもしれないですね。 今回は、導入の簡単さと情報の多さで、PHPを選ぼうと思います。 サーバーサイドの開発頑張ります!ありがとうございました。
退会済みユーザー

退会済みユーザー

2014/09/16 04:31

Pythonも最近はネット上の情報は増えてるみたいですけどね。 でも多分実際周りを探してみるとRubyの人の方が多いのかも。 PHPで有名なフレームワークはCakePHPやSymfony、FuelPHPといったところでしょうか。 RubyのSinatraやPythonのFlask相当のマイクロフレームワークとしてはSlimなんてのもあります。 言語の基礎を抑えたら、フレームワークにも挑戦してみると良いかもです。
m.h

2014/09/19 16:03

日本語の情報が増えるのは嬉しい限りです。 先日、現場のリーダーがセールスフォースのイベントで、 Herokuというサーバー3万円分の無料券を貰ってきたので、 それを使ってみようしているところです。 まだ、最初のチュートリアルの途中ですが、なかなか難しいです。 フレームワークも機会があれば、挑戦してみます。 ありがとうございました。
退会済みユーザー

退会済みユーザー

2014/09/19 23:01

Heroku3万円分とは羨ましい… HerokuのようなPaaSは普通のサーバーよりも難しいので、最初はレンタルサーバーで始めた方が良いかもです^^; 私も昨日から何度もデプロイしてますが思い通りに動かずだいぶ手こずってます… お互い頑張りましょう。
m.h

2014/09/24 10:23

いつも素敵なレスありがとうございます。励みになっております。 >最初はレンタルサーバーで始めた方が良いかも ですよねー。 Herokuアカウント登録とサンプル動作は出来たのですが、 これからどうして良いか分からす、まったく動かせてないです。 もう少しやって、無理そうなら日本のレンタルサーバーにしようと思います。
退会済みユーザー

退会済みユーザー

2014/09/24 22:13

やはり最初は無料のレンタルサーバでグリグリ動かしてみて、慣れてきたらHerokuとか使うのが良いかと思います。 Herokuは言語以外の学習コストも意外と高いので…^^; 最初はレンサバでログファイルをどんどん吐き出して、どんな動きしてるのか確認しながら進めていくのが楽だと思います。 無料のレンサバだとCakePHPみたいなフレームワークは動かせなかったりしますが、Slimみたいなマイクロフレームワークなら大丈夫かと。 私はすっかりPythonなので詳しくは知りませんが…^^;
guest

0

何かしらの事情でスクラッチ開発する必要があるのでなければ、まず最初にどのフレームワークを使うかを選択するのがいい気もします。フレームワークを選べば、書く言語は自動的に決まってきます。

  • Rubyでは、Ruby on Railsが主要なフレームワークです。
  • PHPでは、CakePHP、FuelPHP、Zend Frameworkなど、各種のフレームワークが存在しています。
  • Pythonでは、Django、Flaskなどがあります。

投稿2014/09/08 05:23

maisumakun

総合スコア145064

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

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

m.h

2014/09/10 01:33

回答ありがとうございました。 フレームワークで調べてみましたが、思ったよりも多くの情報が出てきてしまい、決めかねております。 ただ、調べているなかで、VBにもフレームワークがあることが分かり、簡単に開発できそうなので、候補の1つとして検討しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問