After a somewhat “rantish” response to Alexei Drummond’s interview on Blind.Scientist I have put in a few more well tempered comments to the interview. The reason I reacted so fast (and so unwisely) is that because most of the content impacts directly with what I am currently doing.
So here are my comments to the interview, commenting each point that interests me:
When biologists start asking about where they can learn to program a computer, just so they can do their job you know something is wrong!
This line of thinking seems to be highly pervasive with lots of researchers in Biology/Computational Biology/Bioinformatics. This is my main point of disagreement. I do think that in this brave new world everybody will have to know how to do basic scripting. I am not saying doing an industrial-strength application. Just doing basic data moving and processing. Like maths become in the 20th century a fundamental tool, basic programming will become one also. Especially when more data becomes available and lab work becomes more automated and fast/easy to do.
Firstly, software development isn’t science.
This I completely agree, although I suppose the author is not referring to some of the underlying algorithms that are below the application (like an alignment algorithm). But, just doing an application is not science, it is enabling science, which is quite different.
Secondly, most academic programmers are not interested in (or good at) designing user interfaces, and certainly developing software is not a scientific outcome that gets recognized like publishing papers does.
Designing a good user interface is surely something I don’t think should be required by scientists when I talk that doing basic scripting is becoming a requirement. It is interesting to note that one can publish papers on applications (program notes, application notes, …), so one can make a “scientific” CV with applications. If it makes sense to use the same reward system for applications and research papers is a completely different issue, but, for now one can get publication entries on the CV with applications.
Thirdly, academics are quite bad at supporting software and documenting it.
Most are bad at developing software in the first place. Using publication as a reward for an application might make sense (if at all) after an application is well established, but I doubt it makes much sense in the beginning of the life cycle of the application. Call me cynical, but on this publish or perish culture, putting the reward in the beginning of the life of a product is a strong invitation not to support it at all (as the main reward is already obtained).
So it seemed to me, that for a lot of reasons, a professional software company was the best avenue to realize a software system that would dramatically improve the productivity of molecular biologists by putting bioinformatics at their fingertips.
Makes full sense, but the idea that all of the programming effort can be taken from the hands of scientists seems to me exaggerated. My main line of reasoning is that most science is a creative process, not a factory process, and some of that creativity cannot be foreseen by application developers, so, some “tweaking” will be needed by the final user (even in less creative professions sometimes word processors and spreadsheets have to be programmed), that tweaking is really something like “script programming”.
Java is a general-purpose programming language — so you can do in Java pretty much anything you can do in software. The main reason for choosing Java is that it is very easy to write sophisticated user interfaces that run on Windows, Linux and Mac OS X.
I currently use the same line of reasoning when developing software. I am currently working on a selection detection application that works inside JVM. Note that I say JVM and not Java. One can use the good things (portability of libraries, especially Swing and AWT) of the JVM using other languages that work on JVM, Jython and JRuby come to mind.
While I do subscribe to the JVM almost completely, I have some doubts about Java. For small applications it is clearly an over engineered language. Even for big applications, although I think some of Java features are good (like explicit typing), there is space for extensibility to be provided by scripting languages like Jython/JRuby (MODELER4SIMCOAL2 works just like that).
For biologists beginning programming (another issue), I would surely not start by teaching Java because of the excessive verbosity and difficulty in getting “simple things done” that puts off a lot of people. Furthermore the learning curve is steep. Python would be my clear suggestion on this front.
Our goal is a happy marriage where academic programmers can get on with developing great new algorithms, and Geneious can provide the interoperability, the user interface and the support.
One of the best ideas I have read in a long time. There is a big difference in thinking an algorithm and the process of developing an industrial strength, easy to use (and, I would like to add, script and extend) application plus maintain/support it. The reward for the algorithm that makes more sense to me is the publication, the reward for the application should be money, to put it in simple terms. The bridging between the two sides of the equation can (should) be done in the way Alexi proposes.
5 Comments to "Comments to Alexei Drummond’s interview on Blind.Scientist"
Please share your thoughts
Filed in: bioinformatics, science











[…] blog is fast becoming a favorite. He responds to an interview with Alexei Drummond and I figured I’d respond to […]
[…] on August 18th, 2007 A interview with the head of a bioinformatics software company got Tiago thinking about how much time biologists should devote to computing. Deepak also has a few ideas on the topic. This […]
[…] 19, 2007 in Research skills, Comments The interview with dr Alexei Drummond inspired an interesting discussion. While I agree that some level of training in programming would be very […]
Interesting, I agree with most of the points. I know that software development might not be appreciated in chemistry and biology, because it is just a way to process the produced data. And producing the data is usually a challenge otherwise people would not get a PhD from it
Anyway, I must clearly say that ’software engineering’ is definitely a scientific discipline! The goal os producing code, which can be re-used. Some buzz-words are design patterns, waterfall model, extreme programming, prototyping.
Finally, just the ’software development’ or programming part is not recognized as science, also not in ‘computer science’. This is like being able to read/write, or holding a pipette and flask. This is the basics. The question is rather where to go from there.
[…] couldn’t let this edition go by without including a reference to the recent interview with Alexei Drummond and also the question if scientists should have programming […]