I'm developing a pipeline for processing text that will go into production. The question I keep asking myself is: should I stick to one language for the project when I'm looking for a tool to do a particular task (e.g. NLTK, PDFMiner, CLD, CRFsuite, etc.)? Or is it OK to mix and match languages on the project?  So I pick the best tool regardless of what language it's written in (e.g. OpenNLP, ParsCit, poppler, CFR++, etc.) and warp (wrap) my code around it?Note, I am not asking about should a developer stick to just one language for their career.
Is sticking to one language on a particular project a good practice?
programming languages;programming practices;languages;patterns and practices
In a perfect world, we'd all be using the One True Language.  The reality is somewhat different.  If you insist on a single language, you may be be excluding many tools from your toolbelt, regardless of the language you choose.Some applications are impossible or impractical to write in a single language.  Web applications are a good example of this; unless you want to write a web server in node.js you're almost certainly going to be using different programming languages for the client and server.By limiting yourself to one language, you are depriving yourself of paradigms, software patterns and other ideas that are present in other languages, some of which you can apply to your language of choice once you learn them.In practice, however, there's a lot one can do on a single platform.  Most of the popular programming ecosystems have a wealth of tools available in their native language; choose language interop only when you must have functionality that you can't get any other way.