|
|
|
|
|
by mhenders
2337 days ago
|
|
http://www.dalkescientific.com/company.html Boy, what a body of work. Would love to hear your take on Seq if you get a chance to dig in more. I come from more of a Python background and really like what I see: - Python syntax for the most part
- Mypy style type annotations
- |> for pipelining and ||> to parallelize
- match constructs (ML-ish with guards)
- s'ACGT' and k'ACGT' for sequences and k-mers
It's relatively early in the project but I think the choices they have made give them a chance to continue to build momentum. |
|
I don't have the interest to evaluate Seq. I only did bioinformatics for a couple of years, and that was almost 20 years ago. I am incapable of giving it a serious look. My cursory look is that it's only really meant for DNA, and highly optimized for the specific k-mer benchmark compared.
My personal opinion is that developing a new programming language is a hard and almost thankless task. Yet they are also so very fun to do.
Back in the 1980s and 1990s, a number of computational life sciences packages (eg, Sybyl Programming Language (SPL) from Tripos, X-PLOR, Scientific Vector Language (SVL) from CCG) developed their own domain specific languages. They were successful (IMO) more because of the tools available through them than the language themselves.
In the early 1990s I started work on VMD. We had a simple scripting language. As one did back then. I found that Tcl was similar, embeddable, more powerful, and cleaner than anything we did, so we switched to that.
As a result, we got a lot of things "for free", like easy access to third-party packages designed for Tcl, and the faster bytecode engine from Tcl 8.
I switched to using Python full-time in the late 1990s, and again saw just how much I got "for free" by using a language designed by people with software language design and implementation expertise, and with the vast set of support packages.
Seq also gets some things "for free" because it builds on LLVM.
But since it's completely independent of the CPython run-time and garbage collection model, it's impossible to build on any of the existing modules.