質問

生産に入るテキストを処理するためのパイプラインを開発しています。私が自分自身に尋ね続けている質問は、私が特定のタスクを実行するためのツールを探しているときにプロジェクトのための1つの言語に固執するべきです(例えば、NLTK、PDFMiner、CLD、CRFSUITEなど)?

またはプロジェクトの言語を混在させて一致させるのは大丈夫ですか?だから私はそれが書かれている言語(opennlp、parscit、poppler、cfr ++など)と私のコードの周りの私のコードを使いましたか?

注意、私はではありませんは、開発者が自分のキャリアのために1つの言語に固執するべきです。

役に立ちましたか?

解決

完璧な世界では、私たち全員が1つの真の言語™を使っているでしょう。現実はいくらか異なります。

  1. あなたが単一の言語を主張するならば、あなたが選ぶ言語に関係なく、あなたのツールベルトから多くのツールを除外するかもしれません。

  2. アプリケーションの中には不可能または非実用的な言語で書くことが不可能です。 Webアプリケーションはこれの良い例です。 Node.jsにWebサーバーを作成したいのでない限り、ほとんど確実にクライアントとサーバーにさまざまなプログラミング言語を使用する予定です。

  3. あなた自身を1つの言語に制限することによって、あなたは他の言語に存在するパラダイム、ソフトウェアパターン、その他のアイデアを奪っています、あなたが彼らを学ぶかどうかいくつかあなたの選択の言語に適用することができるいくつか。

  4. 実際には、単一のプラットフォームでできることがたくさんあります。人気のあるプログラミングエコシステムのほとんどには、母国語で利用可能な豊富なツールがあります。あなたが他の方法を得ることができない機能が必要なときにのみ言語の相互コップを選択してください。

他のヒント

私は、大きなマルチプログラマー、多年のプロジェクトが単一の言語で最もよく提供されることを発見しましたが、小さい一人のプロジェクトは "Works"ポリシーで最もよく提供されています。

問題はメンテナンスと新規プログラマーに入れることです。あなたが長年にわたる大きなプロジェクトを持っているならば、あなたはコードベースに大きな投資を持っています。あなたが人々を募集するとき、あなたのプロジェクトが使用する単一の技術を知っている人々を募集することができます。それを知らないプログラマーは、それを学ぶことができます。あなたが10の異なるテクノロジを使っているプロジェクトがあるならば、それぞれがそれがどのようにしていることにおいて最善のものがあるならば、あなたはいくつかのプログラマーがいくつかの部分で作業できない状況があるか、それともあなたはそれを雇うことができるという状況を持っているでしょう。すべてのコアテクノロジーを知っています。

小さなプロジェクトがある場合、それが使用する唯一の技術はソロ開発者に知られているものになります。これは時間とともに維持するための混乱です。しかし、あなたはそれを維持する必要がないということです。

小さいものから大きなものに成長したプロジェクトを持っていました。 4 4年に、C ++、Java、Python、Perl、SQLでコードを書いたことがわかりました。 UNIXで利用可能なすべてのプロセス間通信システムを使用しました。私たちはそれが人々を雇うことがほとんど不可能であることがわかりました、そして、私たちがしたとき、彼らは私たちのコードベースの大多数に働くことができませんでした。物事がうまくいかなかった。

ライセンス: CC-BY-SA帰属
所属していません softwareengineering.stackexchange
scroll top