Esoteric Programming Languages
10
8
Entering edit mode
13.0 years ago
Fabian Bull ★ 1.3k

First: Please no programming language war!!!!

Question: I wonder if anybody ever used a esotheric programming language to solve a bioinformatician problem? (I know there are people out there) What let you choose it? Do you regret it?

I am building a scala framework to solve my day-to-day bioinformatics task and realized that many tasks could be solved in one line. But thats only true because I am starting with the simple algorithms. But what about more complex algorithms?

Anybody ever coded a forward-backward algorithm (e.g.) in functional style?

P.S.:
What I mean by esotheric language: scala, prolog, lisp, erlang, haskell

What I do not mean: casual languages like: c, java, python, perl, ... and useless languages like: brainfuck

functional • 6.3k views
ADD COMMENT
4
Entering edit mode

none of the listed languages are esotheric at least by commonly accepted definitions. http://en.wikipedia.org/wiki/Esoteric_programming_language.

Being new or not widely used does not mean its esotheric.

ADD REPLY
0
Entering edit mode

Looks like everyone except you had an idea what I meant by esotheric language. So I can thankfully ignore your concerns.

ADD REPLY
6
Entering edit mode
13.0 years ago

I love XSLT for processing some XML data.

I've played with various languages/databases ( erlang , couchdb, node, xquery,... ) but I've never even tried to use them in production because my code code have to be maintained if I leave my lab.

People using various languages/database:

ADD COMMENT
0
Entering edit mode

Code maintenance is a real problem when using new languages. I know the clojure post but I dont like it. Its completely oversimplified and doesnt get to the point.

ADD REPLY
5
Entering edit mode
13.0 years ago

Michael Hoffman put together a ridiculous global and local alignment tool in Excel: .

ADD COMMENT
0
Entering edit mode

I think I would rather wait for HL3 than try to do that!

ADD REPLY
5
Entering edit mode
13.0 years ago

I've done a fair bit of work in Common Lisp, including a SAM implementation, a BAM file read-management application, a bio-sequence library and a lot of pipelines and bespoke RNA-seq analysis for the WTSI.

I chose Common Lisp (specficially SBCL) because I get great language features and good speed. Features including the ability to write real DSLs using Lisp macros (NOT the same thing as C macros!), the condition system (e.g. exceptions that do not need to unwind the stack, restarts), a good object system with multiple-dispatch, an easy interface to C. This make it easy to write and maintain code for the various moving targets in bioinformatics.

I don't regret it. It's made certain coding problems easy to solve and has improved my productivity and code quality in other languages. The best investment of time in my programming career. I've more than recouped the time spent learning it (unlike Prolog). The one downside is that now I'm sometimes disappointed at the lack of features in more modern dynamic languages (I'm looking at you, Ruby).

Common Lisp isn't a purely functional language, however. You can do what you like, pretty much. If you're interested in purely functional algorithms, Chris Okasaki's Purely Functional Data Structures is worth a look.

ADD COMMENT
0
Entering edit mode

great post. thank you very much.

ADD REPLY
2
Entering edit mode
13.0 years ago
Farhat ★ 2.9k

I've coded a few algorithms in Mathematica, if you count that as esoteric. It had partly to do with visualization and I am comfortable with Mathematica on that aspect. Why would I anyone regret anything like that?

ADD COMMENT
2
Entering edit mode

As far as I know, some biologists really like Mathematica.

ADD REPLY
0
Entering edit mode

Maybe because your co-workers are not able to help you in a way they could with casual languages. Maybe because the performance was bad. Maybe because functional languages are imho hard to learn and the time is not worth learning them.

ADD REPLY
0
Entering edit mode

haven't used mathematica, but really like maple/matlab, peri4n's complaints seem somewhat misplaced tbh

ADD REPLY
2
Entering edit mode
13.0 years ago
Samuel Lampa ★ 1.3k

I didn't code it myself, but I learnt to know a cool Prolog based bioinformatics toolkit: Blipkit.

ADD COMMENT
2
Entering edit mode
13.0 years ago

Back in grad school - and this is way back - I wrote a simple restriction enzyme finding program in BASIC. I did it because I needed to be certain the gene I was studying could or could not be cut by a few select enzymes. In those days, there was GCG and DNA Star but it was not so easily available and sequence entry/retrieval was a bit of an issue.

I did it in BASIC because that was what I knew at the time and what the lab PC - we shared one computer then (!) - could handle. I used what I knew combined with my skill set to move my research a bit forward - no regrets for that.

ADD COMMENT
1
Entering edit mode

It reminds me when I wrote a database for the Restriction Enzyme Database in Apple Hypercard :-)

ADD REPLY
0
Entering edit mode

BASIC was pretty popular back then no? Only BASIC i've been exposed to is the similar language found on TI graphing calculators. Good times :)

ADD REPLY
1
Entering edit mode
13.0 years ago

I have a web development background, so whenever I have a large amount of data, I usually code a small javascript/html web app so users can get to their data without having to comb through huge excel files.

ADD COMMENT
0
Entering edit mode

with data you mean results right? you can not make serious calculations with javascript.

ADD REPLY
0
Entering edit mode

Yeah its just for displaying data in an interactive way. No heavy lifting. Me and my PI are actually trying to write a grant for developing a local standalone web app for displaying NGS data. So far I've got a IGV like genome viewer working. Hopefully something pans out.

ADD REPLY
1
Entering edit mode
13.0 years ago
mcc ▴ 80

I happen to know of at least one instance where Lisp and Haskell were used by a computer scientist turned computational/biologist. I believe 'rickl' spent his early years at MIT in the computer science dept, so his knowledge of older, more 'esoteric' languages shines thru. Although, I don't believe his papers let on as to which languages he uses.

http://www.ics.uci.edu/~rickl/rickl-publications.html

ADD COMMENT
1
Entering edit mode
13.0 years ago

The Cactvs Chemoinformatics Toolkit still sticks to using Tcl as the primary scripting interface language - for a solid reason: Much better multithreading support than Python (with its global interpreter lock), etc...

ADD COMMENT
0
Entering edit mode
13.0 years ago
vodka ▴ 80

I have used c# with linq, but really...esotheric? Algorithms are algorithms, which language should be used to implement them depends on the programmer's skills,the available libraries, the maintainers' skills and, sadly in bioinformatics, the users' skills. My personal productivity and the desired efficiency/portability drive my language choices. In another project we had an F# simulator which has been recoded in Java, then Ocaml and then C++...in the end we landed on a "casual language".

ADD COMMENT

Login before adding your answer.

Traffic: 2701 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6