QA@IT

[2013夏]Webアプリケーション開発で必要な技術

3584 PV

いま[2013夏]から独学でWebアプリケーション開発を行うにあたって、
サーバサイドの開発言語は何が良いかアドバイスを下さい。
何かを開発するわけでなく、勉学のためです。
オブジェクト指向の多少知識はあります。
そのほかMVC, DB、TCP/IP、C++、Javaも少々。

検索したら選択肢が多すぎて迷っています。
まずは軸を決めて関連する技術も学んでいこうかと思ってます。

  1. ポピュラーな技術、開発しやすい、と言ったらどういうのがありますか?
  2. 個人的にはこれが面白い!と言ったらどういうのがありますか?

以下は私の勝手な解釈です。

PHP よく見る?こなれてる?
Ruby 日本人なら?
Python 言語仕様が簡潔?
Perl 今から学ぶなら他の言語のほうがよい?非オブジェクト指向言語?
Java 本格的なものをつくるならこれ?勉学レベルなら大げさすぎる?
C++ 分野が違う?クライアントアプリケーション向け?
.NET系 Windowsにロックオンされる?Windowsに特化したものを作る以外は除外?

回答

他の方も書かれていますが、最終的な目標が何かにもよるかとは思います。
また環境(OSなど)によっても多少違いがでてきます。

Webアプリケーション(やHTTP)の基本的な動きを学びたいのであれば、
phpやレガシーaspなどがいいのではないでしょうか。
またそういう目的であれば最初はフレームワークは触らない方がいいかもしれません。
フレームワークが何を隠ぺいしてくれるのかに気づきにくくなると思うためです。
ただ、この段階は早めに切り上げてしまっていいようにも思います。

フレームワークを使ってWebアプリケーションを構築したいのであれば、
Rails(ruby), ASP.NET MVC, Django(python) などがあります。
公式日本語チュートリアルもあると思います。

個人的に、phpはどっぷりやる分にはいいんですが、
設定などもきちんと見ないと落とし穴が多い気がするので熱心にはすすめません。
面白そうなフレームワークはあるんですけどね。

また、素のASP.NET(WebForms)は癖があるのでお勧めしません。

いろいろと試してみるつもりがあるのであれば、node.jsに触れてみるのも面白いかもしれませんね。

編集 履歴 (0)

オンライン・オフラインで、周囲に質問が出来る人がいる言語を選ぶのはどうでしょうか。

編集 履歴 (0)

言語を学びたい訳じゃなくてWebアプリケーション開発を勉強したいんなら、PHPが一番いいんじゃないかなあ。
Webアプリケーションって広範な技術を広く浅く知っておく必要があって、実際に作りながら習得する場合、できるだけ環境や言語で引っかからない方がいいと思うので。
次点でJavaでしょうか。多少習得してらっしゃるようなので。

PHPは比較的習得が容易なので、はじめての言語に向いてると思います。
WindowsでもMacでも、環境構築が簡単ですぐ動くものを書き始めることができます。
比較的著名なフレームワークがあり、日本語での情報量も豊富です。
特に公式マニュアルの充実ぶりは圧倒的です。
独学の初心者はつまずきポイントで手詰まりになってあきらめることが多いので、つまずきポイントがあまりないか、あっても検索すればなんとかなりやすいものがいいかな?と思っています。

ただ、情報量が豊富と言っても間違った情報がブログなどでそのまま広まっていることも多いので、できるだけ公式か、@ITなどのようなIT系情報サイトを参照するようにした方がいいです。
少なくとも言語習得できたと感じるまでは。

まあでも、挙げられている言語はどれもWebアプリケーションで使われている言語です。
好みがあるならそれでもいいんじゃないでしょうか。
最終的な目標や目的があるなら、それも教えていただいた方がいいかもしれません。

編集 履歴 (0)

一応最新 Perl(5以降)はオブジェクト指向風言語ですよ。


言語 備考
Java 基幹系システム(社内システム)向け
php ECサイト、コーポレートサイト向け
ruby この言語好きのPMに出会えればw
Python この言語好きのPMに出会えればw
perl オブジェクト思考化が進んでいる。
C系 Windows Server(+IIS)ならこの選択肢も

  • Windows Serverで作りたい => C言語(C# C++ 等含む)
  • オペレーター操作系システムを作りたい => Java
  • カスタマー操作系システムを作りたい => P言語またはR言語

特殊なところでは lua でもくめますよ。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。