web-dev-qa-db-ja.com

最新のテクノロジーを使用しますか、それとも開発者として成熟したテクノロジーを使用しますか?

グループで利用できるアプリケーションを開発したいと思います。 Pythonを使用して開発することにしましたが、python 2.Xまたはpython 3.Xを使用することを考えています。python 2.X、将来のためにアップグレードする必要があります...しかし、より成熟していて、多くのツールとライブラリがあります。3.Xを使用して開発する場合、将来について考える必要はありません。統合されていますが、現在、ライブラリは多くありません。実行可能ファイルへのpythonでも、すべてのプラットフォームで使用できるわけではありません。

また、考慮事項の1つは、これがまったく新しいアプリケーションであるため、古いライブラリを維持するための履歴の負担がないことです。

このジレンマに関する推奨事項はありますか?

このアプリケーションの詳細:

  • ネイティブアプリケーション
  • メンテナンス期間:5年以上
  • ライブラリ/ツールに必要なもの:まだわからない。
  • 2.Xの機能が必要です:WindowsとMac OSXの両方の実行可能ファイルに変換します
2
Ted Wong

それは本当にあなたのアプリケーションが何をするか、そしてあなたが利用したいライブラリの種類に依存します。 python 3.xの最大の欠点は、ライブラリ/フレームワークのサポートがないことです。Webアプリケーションを構築している場合、2.xを使用することによる欠点はほとんどありません。選択できるフレームワークとライブラリの配列がはるかに広くなります。 これが良い記事です on python 2.x vs 3.x.

言語/プラットフォーム/フレームワークを選択する際のいくつかの一般的な考慮事項:

  1. アプリケーションの寿命。年?月?数十年?
  2. アップグレードの費用はいくらですか?そうしない場合のメンテナンス費用はいくらですか?多くのアプリケーションは、必要に応じて、今後20年間、独自のvirtualenvでpython 2.xを実行します。
  3. アプリケーションは言語のどの機能を利用しますか?多くのWebアプリケーションは、かなり基本的な方法でのみpythonを使用します。これは、作成しているコードよりも、使用しているライブラリの保守性に関するものです。

お役に立てれば。

3
Paul Sanwald

まず、最新のものと成熟したものが常に対照的であるとは限りません。

たとえば、Pythonの場合、2.xが3.xよりも「成熟している」とは言えません。逆に、いくつかの点で3.xはより成熟しています。クラス、Unicodeサポート、そしてもちろんバグの修正。

一方、Python Twisted-のcampareNode.JS-そしてTwistedは最新の焼けるように暑いNode.JSよりも成熟していると言えます。

さて、あなたが行くべきことは、約2.x/3.xよりも、保守性の観点からあなたが扱えることについてです。

後でアプリを3.xにアップグレードするのにそれほど苦労しないことがわかっている場合は、今すぐ2.xを使用して、2.xエコシステムを活用できます。

一方、アプリを3.xにアップグレードするのはメンテナンスの悪夢であり、不足しているライブラリやツールを自分で開発しても問題ないと思われる場合は、必ず3.xを使用してください。

1
treecoder

Windowsを実行可能ファイルにする必要がある場合は、py2exeが望ましいので、w /2.xを使用することをお勧めします。

参照: http://www.py2exe.org/

他にもウィンドウフリーズツールがありますが、私が尊敬している教祖はpy2exeによって誓い、それは常に私によって正しく行われてきました。

また、Pythonの新しいバージョンに移植する際の実際の難しさを考慮することもできます。たとえば、現在のプロセス(2.xから3.x)はそれほど悪くはなく、2to3のようにある程度の自動化を提供するツールもあります。

参照: http://docs.python.org/release/3.0.1/library/2to3.html#to3-reference

また、pythonのメジャーバージョン(「新着情報」ページ)と他の将来のAPIとの間の変更をチェックして、リビジョンの違いの潜在的な範囲を把握する必要があります。

新しいものがより大きく/より良くなるという問題に関しては、それは本当かもしれませんが、あなたが使用している、または使用することを検討するすべての改善されたアイテムのサブセットにあるものに関心を持ってください。

1
Kreychek