とっておきの「夜食」教えて下さい

各コンピュータ言語の特徴(得意・不得意)を教えてください。

ネットワークプログラミングに関して知りたいので、それに
関連する言語に関して教えていただければ幸いです。

この質問の背景を以下で説明したいと思います。私はネット
ワークプログラミングに関しては素人なので、質問自体が
的外れの点もあるかもしれませんが、どうかご了承いただき、
私の言わんとすることを汲み取ってご回答いただければ
幸いでございます。(知識に欠けている中で、的確な質問
をすること自体が難しいので、どうかご理解ください。)

私は以前に機械系のエンジニアをしておりました。そのため、
プログラミングは専門ではありませんが、ハードウェアの
制御のプログラム(例えばモーター制御や、DI/DO、AI/AO、
CCDからの画像取得など)を書いた経験はあります。

そのときに、もともとCでプログラムを作成しておりま
したが、マルチスレッドプログラミングでかなり苦戦
しました。専門書を買ってきてその通りにプログラミング
してもうまく動作しませんでした。散々悩んだ挙句、
ハードウェアに特化したプログラミング言語である
LabVIEWでプログラミングをしてみると、マルチ
スレッドもタイミングも何も考えずにプログラミン
グができました。今まで何ヶ月も悩んでいた問題が
一瞬にして解決しました。

このとき感じたのは、プログラミング言語には
得意・不得意があって、開発したいアプリケーション
によって、プログラミング言語を選択するのが
効率的なのかなあということでした。

よく、どんな言語でも、極めればどんなことでも
できるという人がいます。確かにCなんかは、
どんなこともできるのではないかと私も思います。

ただ、上述の私の例のように、プログラミング
言語毎に、得意・不得意があったり、すでに
ある機能に対してそれを実現するパッケージが
存在する言語があったりして、実質的に作業
効率を考えると、実現したい機能(アイデア)
に応じて、それに適したプログラミング言語が
決まるような気がしています。

そこで、今私はネットワークプログラミングの
勉強をほぼゼロから始めようと思っています。
ネットワークプログラミングで使用される言語
はいろいろありますが、それぞれの特徴
(得意・不得意)あるいは、それに適した
アプリケーションの種類などを、大まかに
まとめることはできませんでしょうか。

例えば、前述の私の例で言いますと、
C: 自由度があって、様々な設定ができるが、
めんどう。
LabVIEW: マルチスレッドやタイミング
などを考えずに簡単にプログラミングできる
が、タイムクリティカルな処理はCで記述
してインポートする必要がある。

こんな感じにネットワークアプリケーションに
関して分類できると、初心者にとっては
とっつきやすく、こういうソフト開発を
したいからこの言語を勉強してみようと
なります。

また、上述の例のように、ネットワークプログ
ラミングにおいても、得意な部分のパッケージ
をインポートしてつなぎ合わせるような
プログラミングはあるのでしょうか。

果たして私の意図がうまく伝わったか分かり
ませんが、ご回答いただけましたら幸いです。

A 回答 (4件)

(経験者)人に聞くと見解もそれぞれですが、


http://thinkit.co.jp/free/article/0711/1/1/
こういう系統のコラムか著書を探してみると良いと思います。
ネットワーク系であれば、いいのですが。
    • good
    • 1
この回答へのお礼

ご回答いただき、ありがとうございます。

ご紹介いただきましたサイトをざっと拝見させて
いただきました。(細かいところは今の私には
理解できない部分も多々ありますので。)

実際の開発現場ではやはりどの言語を選択
するのが適当かという問題があるのですね。

こういう系統のサイトがあると言うことを知りませ
んでしたので、よい勉強になりました。この
系統でいろいろと探してみたいと思います。

どうもありがとうございました。

お礼日時:2011/01/06 23:25

ネットワークプログラミングというのは、サーバーを書いたりソケットを扱ったりでしょうか。



最近の言語では、楽なのはC#ですね。
ただ問題として、Windowsでないと動きません。
Monoプロジェクトもあるにはありますが、実用的かは疑問です。

最も現実的なのはJavaでしょうか。
元々サーバーサイドが得意なだけあって、ソケットの扱いもマルチスレッドの扱いも楽です。
C#が多少複雑になった感じですね。

多くのスクリプト言語では、ソケットの扱いが意外とプリミティブなので、避けた方が無難です。
後々クラスが多くなることを考えても、やはりJavaのような重厚な言語のほうがお勧めですね。
    • good
    • 0
この回答へのお礼

ご回答いただき、ありがとうございます。

Javaは昔少し勉強したことがあります。Cに似ている
印象はありました。

#2さんのご回答からしますと、PHPに比べて難しい
のでしょうね。ただし、ソケットやマルチスレッドなど
が問題になりそうなものは最終的にJavaを使わない
といけないということでしょうか。

どうもありがとうございました。

お礼日時:2011/01/06 21:36

まず「ネットワークプログラミング」が何を意味しているのかが疑問ですが、ApacheなどのWebサーバーを設置して、そのサーバー上で動作するものとさせていただきます。


(あるいは、ブラウザに表示するための言語)

Apacheが認識する言語としては、HTML、CSS、JavaScriptがあります。
そして通常、この中ではJavaScriptだけが、プログラミング言語となります。

これ以外の言語は、基本的にこれらのHTML,CSS,JavaScriptを出力するプログラミング言語となります。

Javaは、C言語と似たようなもので、何でもできる言語である分、使いこなすのは難しいです。

Java以外の、PHP,Ruby,Perlなどは、通常簡易言語と呼ばれています。
しかし、簡易言語と言っても、まず大抵のことはできますので、大規模なものでない限り、これで充分でしょう。

これ以外にも、Flash,ASPなど他にもありますが、あまり詳しくないので割愛しました。

そして、いきなり結論ですが、私としてはPHPが一番のお勧めです。
理由としては、たぶん一番利用者が多いと思います。

※なお、厳密には間違っている箇所があるかと思いますが、考え方においては大きく外れていないでしょう。
    • good
    • 0

http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD% …

あたりを一通り眺めてみてはいかがですか。
    • good
    • 0
この回答へのお礼

ご回答いただき、ありがとうございます。

拝見させていただきましたが、多くは今はあまり使われて
いないものや特殊用途のマイナーな言語なのでしょうか。

素人の私にとっては、読んでもよく分からないところが
多いのが正直な感想です。もう少し、噛み砕いて説明
したものがあると助かります。あと、言語間の比較が
あるとよいのですが。

お礼日時:2011/01/06 20:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報