I have been reading a blog post titled - What I’d tell myself about startups if I could go back 5 years
and came across these comments -
The programming language/ framework wars are great fun in the pub, but of limited value in real life
A good developer can pick up any language or platform in a few weeks
It is a great list and I encourage you to go through the rest.
Given that academic labs are also like start-ups (at least when the professor is pre-tenure), I was surprised by reading this comment from (post-tenure) Titus Brown -
I disagree strongly with Jared’s black & white statement that “this isn’t a language problem” – part of it absolutely is! Scripting languages enable a much more flexible and organic interaction with algorithms than languages like Java and C++, in my extensive personal experience. People can also pick up scripting languages much more easily than they can C++ or Java, because the learning curve is not so steep (although the ultimate distance climbed may be long).
It immediately started the pub-brawl as expected, with Christopher Hogue being the first to protest -
I find your “elitist” language and “one-true-way” argument subjective and divisive.
“Fundamentally, moving from a lightweight Python layer on top of a heavier, optimized C++ library into a standalone binary seems like a step backwards to me.”
Well, the mass of software running is lighter as a standalone binary, as there is no language interpreter binary running in memory, so you have me confused as to your definition of “lightweight” and “heavier”.
This post seems like yet another argument for software implementation tribalism (i.e. my language/tools approach is best!). I’ve been around long enough to know that these arguments are always dependent on the tribal language experience and context of the participants.
If you have any doubt that academic labs do not operate like start ups, Jared’s comment should remove that.
I think part of bioinformatics education should be learning to pick the right tool for the job. This isn’t a C++ library for accessing VCF files, its a library for performing inference using very low-level data. I think the developers that are interested in contributing in this space will be fairly computationally sophisticated and willing to use C++. I hope.
Sure it would be nice if I had already had a well-designed library, bindings to high-level language, etc, but this project is ~three months old and I have limited time. I necessarily have to focus on the most important problems (how well the program works, can anyone else run it?).
BYOB (and one for Titus) and enjoy the rest of the fight !