2009-12-11 13 views
5

私はいくつかのポインタを探しています、私はこのサイトを指摘しました。ネットワークプログラミング:完全な初心者のためのPython対C

私の主な関心はネットワークプログラミングです。私はかなりの読書と実験を行い、ほとんどのプロトコルの仕組みに精通しています。今私はコードを書くことを始めたいと思う。私はPythonの入門的なものを読んで、それもよく掴んだ。私はちょうどPythonのモジュールで遊んで始めました。私はいつもPythonをとても簡単に後で学ぶことができると私に言ったローカルラグの会合で誰か(高めの評判で)に会いましたが、Cは私の知るべき言語でしたネットワークプログラミング。私はいくつかの研究を行い、男が正しいかもしれないと考えました。だから、私はk & rで4週間働いています。それは私を脅かすことはありませんでしたが、私は非常にゆっくりと進んでいます。私は今でも私を心配している段階にいるので、私はこれを投稿しています。私はいつも、私はPythonで私は今、ものを構築することができると思っています。私はPythonが私にメモリ管理などの低レベルのものを教えてくれないことを知っていますが、私の進歩はC言語で辛抱強く遅いです。

質問:私は今のように戦い続けなければなりません。それは、私はもう少し簡単になりますPythonに切り替えるか?高水準の言葉はあまりにも後でCに戻ってくるのですか?

+0

Go http://golang.orgは、ネットワークプログラミングのためにCより良い代替手段かもしれません。 – jfs

+2

もし 'ポインタ'を探しているのであれば、Cは方法です;-)もっと真剣に、この状況ではおそらくPythonがもっと適したアプローチです... – mjv

+0

xkcdの漫画へのリンクを "ポインタ"ここに入れます。 はい。 「ちょうどこの個々のビットに何が起こったか」でネットワーキングを学びたいのであれば、cを知る必要があるでしょう。レベル。あなたはおそらく、少なくとも今はいないでしょう。 – neminem

答えて

14

ちょうどPythonを使用してください。間接参照とメモリ管理について同時に学習することなく、Cと同じ低レベルソケットAPIにアクセスできます。

その後、Pythonがあなたの目的には遅すぎると分かった場合は、Cでいくつかの部分を書き直すことができます。

1

pythonプログラマーとして、私はあなたに反対のアドバイスをします。最初にPythonを学んでください。少なくとも、あなたがCでできることと比較して限界と可能性を学ぶまでは、Pythonで修正できない遠くの問題に対してはCを使います。 :)

5

あなたが働きたいネットワーキングスタックのレベルによって、Cは不可欠、有用、またはほとんど関係がないかもしれません。しかし、まずCに取り組もうとすると、あなたのモチベーションが下がってしまいます。是非Pythonに戻り、成功を収め、インセンティブを得てください。後でCに戻ることができます。より簡単な言語を最初に学び、より難しい言語を後で学ぶことは、完全に自然な進歩です!例えば、MITは、いくつかの "プログラミング101"コースにPythonを使用していますが、それはC言語のような難しい言語(より難しいC++など)から生徒を後のコースで学ぶことはありません。

7

これは、ネットワークプログラミングの目的によって異なります。あなたは非常に安定した、安全性が高いだけでなく、低速の高水準言語を使いたいのですか、高速低レベル言語ではなく、疲れて(私の意見)作業したいですか?

速度に依存しない場合は、私はPythonを使用します。あなたはそれで多くのことをすることができます。そしてあなたが必要なものはすでにそこにあります。 PythonはC言語で構築されているため、同じAPIにもアクセスできます。

Pythonでは簡単ですが強力です。あなたが新しく追加されたので、私はあなたを助けるかもしれない、いくつかのリンクを持っている:

たくさんの本があります。

そして、ちょうど楽しみのために、いくつかの漫画:

私はこれがあることを願っています役に立つあなたのために。

5

20年前、10日でも、あなたはそれなしでは生活できませんでした。

今多くあります。

世界のプログラマーの半数以上がCを知らない可能性があります(実際にはそうかもしれません)。ウェブ作業とほとんどのアプリケーション作業にはまったく必要ありません。私はこれに恵まれています。あなたが本当にウェブ、趣味、海外のコンサルタントなどを含めるならば、Cを使った人の割合はおそらくかなり低いでしょう。

EmbeddedはよくC言語を使用しますが、私はJavaの仕事以外は何もしていない2つの組み込みプラットフォーム(波形アナライザとケーブルボックス)に取り組んできました。

正直なところCの基本的な理解は、ドライバと理解ポインタを書くための素晴らしいですが、それはかなり使われていますが、あなたは簡単に今までC. I 個人を必要とすることなく、全体のキャリアを介して取得することができ、これらの日には完全に、C++をスキップします私は今それを学ぶのに大きな利点はないと思う。

1

プログラミング初心者の方には、Pythonをお勧めします。ネットワーキングでは、Pythonがうまくいくと思います。

ネットワークでは、メッセージの送受信にかなりの時間がかかります。あなたの言語がCよりはるかに遅い場合でも、あなたは何の違いに気付かないかもしれません。とにかく、Pythonネットワーキングライブラリの低レベルの欠点はおそらくCで書かれています。 Pythonは、Cコードを呼び出す方法としてPythonを使用しているとき、それほど遅くはありません。

また、初級者は、考えられるすべてのエラー条件を処理するためにC言語でどのくらいの作業が行われているかに驚くでしょう。 Pythonでは、例外処理を使用してエラーを簡単に処理できます。それは本当に良いです。

最後に、アプリケーションがうまくいくが、Pythonで遅すぎるとは限りませんが、Pythonアプリケーションのパフォーマンス重視の部分を置き換えるCモジュールを簡単に記述できます。プロトタイプを手に入れて、速くなければならない部分を見つけて、その部分をCで置き換えます.Cで全体をやっているよりもはるかに仕事が少なくて済みます。

現時点では、楽しみのためにPythonを書いてください。 Pythonのいくつかの行で多くのことができます。あなたはPythonで学ぶのが簡単で、より多くのことができ、少ないバグがあり、もっと楽しむことができます。

書籍Learning Pythonから始めることをおすすめします。

幸運を祈って!

1

あなたが絶対にスピードを必要としない限り、私はPythonから始めることをお勧めします。プログラミング言語はツールボックス内の単なるツールであり、特定のタスクを他のものよりも優れたものにすることができると言われることがよくあります。速度が必要ない場合、Pythonはコードを少なくして達成しようとしているタスクを達成し、学習がより簡単になります。

私は完全に独学で、Apple II BASICからアセンブリ言語を使ってスクリプト言語(Perl、PHP、Ruby)に移行しましたが、現在ほとんどCを使用しています。Cは比較的小さな言語ですが、 Cと一緒に、私はおそらく私の動機を失ってしまったでしょう。 Pythonを使い始める - あなたはプログラミングの要点を学びます。必要がある場合や、後でCを学びたい場合は、ピックアップするのが簡単になります。

2

Pythonの使用をお勧めします。 Cよりも高いレベルの言語なので、「方法」ではなく「何」にもっと集中することができます。つまり、今すぐ実行する必要があるものを達成するために、Cが必要とする詳細レベルを避けることができます。

これは、決して低いレベルの詳細が決して必要でないと言うわけではありません。それは確かですが、現時点では、あなたがそれを無視して将来的にそれを拾うことをお勧めします。

0

Lispを学ぼうとすると、その性能はCのものとほぼ同じであり、学習するのが簡単で、Pythonで学ぶよりも習得が容易です。問題を解決するために自然言語プログラミングを行うこともできます。リスプに行く。

関連する問題