我正在开发一种用于处理将进入生产的文本的管道。我继续问自己的问题是:当我正在寻找一个特定任务的工具时,我应该坚持一个语言吗?(例如,Nltk,Pdfminer,Cld,Crfsuite等)?

还是可以在项目上混合和匹配语言?所以我挑选最好的工具,无论它写入哪种语言(例如,OpenNLP,Parscit,Poppler,CFR ++等)和扭曲(包装)我周围的代码?

注意,我不是询问一个开发人员应该粘在职业生涯中的一种语言。

有帮助吗?

解决方案

在一个完美的世界中,我们都使用一个真正的语言™。现实有点不同。

  1. 如果您坚持单一语言,您可能会从工具包中排除许多工具,无论您选择的语言如何。

  2. 某些应用程序是不可能的或不切实际地写入单一语言。 Web应用程序是一个很好的例子;除非您想在Node.js中编写一个Web服务器,否则您几乎肯定会使用不同的编程语言,为客户端和服务器提供不同的编程语言。

  3. 通过将自己限制为一种语言,您剥夺了诸如其他语言中存在的范式,软件模式和其他想法,其中一些您可以应用于您的首选语言一旦您学习。

  4. 然而,在实践中,在一个平台上有很多人可以做到。大多数流行的编程生态系统都有丰富的工具,以其母语提供;只有当您必须具有无法获得任何其他方式的功能时,才能选择语言互操作。

其他提示

我发现大型多程序员,多年项目最好用单一语言服务,而小型,一人项目最好提供“无论任何作品”的政策。

问题是维护并带入新程序员。如果您有许多跨越多年的大型项目,那么您在代码基础上有重大投资。当您招聘人员时,您可以招募了解您的项目使用的单一技术的人。不知道它的程序员可以学习它。如果您有一个使用10种不同技术的项目,其中每个项目都是最好的,您将有一种情况,一些程序员无法在某些部分上工作,否则您只能雇用人了解所有核心技术。

如果您有一个小项目,那么它使用的唯一技术将是独奏开发人员已知的技术。随着时间的推移,这是一团糟。但是,你不需要维护它。

我们有一个从一个小一个到一个大的项目。在4年,我们意识到我们在C ++,Java,Python,Perl和SQL中编写了代码。我们使用了Unix中提供的每种进程间通信系统。我们发现几乎不可能雇用人,当我们这样做时,他们无法履行大多数代码基础。事情没有良好。

许可以下: CC-BY-SA归因
scroll top