2016-04-23 9 views
0

まず、私はPythonが大好きです。私は現在、ほとんどのものに使っています。しかし、PhDの学生として、私は主にアイデアのテストと評価のためのプロトタイプを実装しています。これには、私が通常はコーディングする唯一の人も含まれており、効率的なコードの半分を書くことは確かですが、パフォーマンスは重要な問題ではありません。そして素早いプロトタイプ作成のために、Pythonは私のためにちょうどいいです。PythonプロジェクトをJavaに書き直す - それは価値がありますか?

私は自分のものをいくつか "真剣に"、すなわち生産的な環境に持ち込み、より保守性に優れ、多分より効率的にすることを検討しています。だから、私のコードをJavaに書き直す価値があるのだろうか(それは私もかなり慣れている)。私はPythonが遅いのではないことを知っていますが、Javaの静的な型定義のようなものは、特に異なるプロジェクトが同じプロジェクトで作業する場合に、より大きなスケールでエラーを起こしにくいようです。

+3

これは主観的です。それはプログラマーにとっては良いかもしれない。 – Harry

+2

IMHO、静的なタイピングの利点を得るために*唯一*行っているのなら、あなたの時間は、現在のコードベースの堅牢さを向上させ、ドキュメントの改善と仲間のプログラマーの教育に費やされることでしょう。 – jedwards

+1

これはプロジェクトによって異なります。通常、Pythonはバックエンドでかなりの量のCを呼び出すので、より良くなるはずです。しかし、Pythonはコードをより簡単で読みやすくします。 – mattsap

答えて

1

それは、ノートそれだけの価値がある、という問題は、私は私が私のCOLOに電力要件を低減することがより速く移動する必要があり、より良い何か

  • を学びたい

    1. である可能性があります。
    2. は[人工言語をここに挿入]の人数とプールを雇う必要があります。
    3. ここには数え切れないほどの問題があります。

    PythonとJavaは両方とも、生産に適しています。あなたやあなたのチームが直面している問題を解決するのが最も簡単なものを書いてください。いくつかの問題を先取りしたい場合は、あなたの宿題を完了してください。彼らがC/C++を選択したために、多くのプロジェクトが死亡しました。これらの言語をうまく使用するための余計な努力について考えることなく、パフォーマンスが重要な要素になると信じていました。

    メンテナンス性について述べました。あなたはJavaでそれを書き換えるためにより多くのコードを必要とするでしょうし、BugsとLOCの間には直接の相関があります。メンテナンスが簡単な議論の場です。私は両方のキャンプが彼らのことを信じていると確信しています。

    2人のうち、最もコーディングを楽しんでいますか?

  • +0

    すべての有効なポイント、ありがとう!私はPythonが私にあまりにも多くの自由を与えてくれることを恐れるだけです。たとえば、メソッドが追加の値を返さなければならないと思うなら、私はreturnステートメントにそれをアドバタイズします。メソッドが追加の入力パラメータを必要とすることがある場合は、メソッドの使用方法に影響を与えないように、メソッドのheadにデフォルト値を追加するだけです。しかし、ええ、これは私が宿題をする必要があるというあなたのコメントの下に落ちるでしょう。 – Christian

    +1

    あなたが説明している柔軟性、つまり正しく使用された場合の自由は、実際には非常に堅牢なシステムにつながります。将来的にいくつかのバージョンが必要になるかもしれないので、余分なデータを返す必要があるかもしれないので、埋め尽くされたC構造体に遭遇することは珍しくありません。 Pythonはすばらしい言語であり、それを悪用し、悪用したり、パフォーマンス上の問題に遭遇したりすると、C関数などのオプションを調べ始めます。Javaも素晴らしい言語であり、同じことが適用されます。あなたが目を覚ますときに笑顔を見て、それを楽しみにしているものを試してみてください。 – Harry

    0

    Javaは本質的にオブジェクト指向です。あるいは、Pythonは手続き型です。

    大規模なプロジェクトを処理する言語の能力については、いずれかを行うことができます。

    私は、ブラウザでの実行可能性のために、Javaとは対照的にJavaスクリプトを推奨します。公開されているWebサイトにjsを埋め込むことで、コーディングの知識のない人もブラウザでプロジェクトをシームレスに実行できます。

    さらに、HTMLのGUI設計機能は、自由に利用できます。

    これは、どの言語でも起伏があり、私がここで言ったことは単に私の認識であると言いました。それが本当の問題を解決するかどうか

    +0

    Pythonはそうではないが、Javaは*厳密にはオブジェクト指向であると言う方がより正確かもしれない。よく書かれたオブジェクト指向のPythonプログラムが、Javaプログラムよりオブジェクト指向性*が少ないと言うのは、単に真実ではありません。 – jedwards

    +0

    @kpie:私は実際にWeb開発について話していません。 – Christian

    +0

    開発は開発、Webは機能です。 – kpie

    1

    "Javaの静的な型定義は、大きなスケールでエラーを起こしにくいようです"という重大な質問があります。ここで重要な言葉は「思われる」です。確かに、Javaは、この1つの特定のタイプのエラーをキャッチするのに役立ちます。しかし、それはどれくらい重要なのですか?それに何を支払う必要がありますか? Javaのタイプシステムによって課されるオーバーヘッドは、より多くのコード行を記述する必要があることを意味します。これは、生産性の低下を意味します。私は両方を使いました。私はPythonでより生産的であることは間違いありません。私は、Pythonの型関連のバグは、一般的に見つけて修正するのが簡単だということを発見しました。プロの環境では、コードをきちんとテストせずに出荷するつもりはないことに注意してください。プログラミング環境の最終行は、生産性です。開発中に見つけて修正したバグの数ではなく、作業単位あたりの使用可能な機能です。

    私のアドバイス:Pythonで書かれた作業中のプロジェクトがある場合は、利益があると確信が持てない限り、書き直してください。

    +0

    はそれで議論することはできません。 Pythonでは確かに高速です。しかし、私は、Pythonが、複数の出力を返すことや、オプションの入力値を定義することを許可するなど、時々私にちょっと混乱させると感じます。明らかに、それはPythonの問題ではなく、私の問題です。したがって、PythonからJavaに移行するいくつかの具体的な理由があるかどうか、私の質問です。以来、私はそれに固執する可能性が高いが、リファクタリング、改善し、私のコードをテストします。 – Christian

    +0

    @ChristianでもOKですが、Javaベースのバイアスに注意してください。 Javaの良いスタイルはPythonの良いスタイルと同じではありません。 Pythonを使ってJavaスタイルのプログラムを書くことができます(これはPythonを使用してFortranのスタイルでプログラムを書くことができます)。しかし、Pythonのパワーをあきらめているかもしれません。 –

    関連する問題