bioconda-recipes
Nim
Our great sponsors
bioconda-recipes | Nim | |
---|---|---|
5 | 347 | |
1,564 | 16,060 | |
1.3% | 0.8% | |
10.0 | 9.9 | |
3 days ago | 6 days ago | |
Shell | Nim | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bioconda-recipes
-
Why should academic researchers use Rust?
Rust makes distribution and maintenance near trivial. My lab develops a fairly widely-used tool, salmon, for the quantification of transcript expression from RNA-seq data. This tool is written in C++14, and has a substantial number of dependencies. The process of updating the tool (e.g. bumping dependencies) and cutting a new release is painful. To maintain widespread availability, we distribute this tool using bioconda which uses it's own CI and setup to build new releases for (in our case) Linux and MacOS. Things break all the time. For example, recently, they bumped the compiler used to build packages. This changed some default "implementation defined" behavior, causing previously functioning code to fail. We didn't find this locally, because we didn't test that specific compiler version. When we tried to release a new version, we had to go back and fix things etc. This is not just because different compilers exist, but because the C++ specification is soooo complicated and the set of undefined and implementation defined behavior is sooo broad that it's very brittle and it's easy for things to "break" via bitrot. However, the stability provided by Rust has been phenomenal so far. In our code, we only use stable Rust features, and we have benefited tremendously from the empirical guarantee that valid Rust code (except in exceptional cases like latent bugs in the language) will remain valid. While not all crates follow it religiously, there is a reasonable respect for semantic versioning. Thus, cutting a new release of one of our Rust tools is often as simple as just updating the Cargo.toml (and Cargo.lock in the case of applications), tagging a new release in GitHub, and letting the bioconda CI do it's business with the tagged artifacts. The build "scripts" are almost always trivial because the builds just work, across platforms, across CIs, etc. Now, new projects like cargo dist look like they make this process even simpler.
-
Software engineers: consider working on genomics
I contribute to Nextflow core (https://nf-co.re/) It's more of a collection of pipelines than traditional software, but there are users all around the world and a good community.
Most of the packages on bioconda (https://bioconda.github.io/) are open source. But you probably want to find a sub-field that interests you most before finding a project.
In grad school, we also had an ex-google software engineer volunteer with us one day a week. It was very impactful for many members of the lab to learn good engineering practices, and it wasn't at all like the sentiment others in this thread are expressing where engineers were "janitors".
-
Conda's Contrasting Command Clarification
Answering this because I believe there is no way other than looking at their "build.sh" in the recipes (e.g., in the build.sh of MOSCA, you can see the symbolic link in the 7th line will be mosca.py). One thing you can do to find the main script is also to run "find ~/anaconda3 (or miniconda3) -name *name_of_the_tool*" to find most of their scripts.
-
How to mix separated versions of Python in the cleanest way
In my world (research science) we usually use anaconda, which is just a slightly higher-level wrapper around python virtual envs. But they also maintain more repositories of various modules that scientists need. e.g. https://bioconda.github.io/
-
Seq: A programming language for high-performance computational genomics
Seems like there's a conda packaging on the works: https://github.com/bioconda/bioconda-recipes/pull/29660
Nim
- 3 years of fulltime Rust game development, and why we're leaving Rust behind
-
Top Paying Programming Technologies 2024
22. Nim - $80,000
-
"14 Years of Go" by Rob Pike
I think the right answer to your question would be NimLang[0]. In reality, if you're seeking to use this in any enterprise context, you'd most likely want to select the subset of C++ that makes sense for you or just use C#.
[0]https://nim-lang.org/
- Odin Programming Language
-
Ask HN: Interest in a Rust-Inspired Language Compiling to JavaScript?
I don't think it's a rust-inspired language, but since it has strong typing and compiles to javascript, did you give a look at nim [0] ?
For what it takes, I find the language very expressive without the verbosity in rust that reminds me java. And it is also very flexible.
[0] : https://nim-lang.org/
-
The nim website and the downloads are insecure
I see a valid cert for https://nim-lang.org/
-
Nim
FYI, on the front page, https://nim-lang.org, in large type you have this:
> Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula.
-
Things I've learned about building CLI tools in Python
You better off with using a compiled language.
If you interested in a language that's compiled, fast, but as easy and pleasant as Python - I'd recommend you take a look at [Nim](https://nim-lang.org).
And to prove what Nim's capable of - here's a cool repo with 100+ cli apps someone wrote in Nim: [c-blake/bu](https://github.com/c-blake/bu)
-
Mojo is now available on Mac
Chapel has at least several full-time developers at Cray/HPE and (I think) the US national labs, and has had some for almost two decades. That's much more than $100k.
Chapel is also just one of many other projects broadly interested in developing new programming languages for "high performance" programming. Out of that large field, Chapel is not especially related to the specific ideas or design goals of Mojo. Much more related are things like Codon (https://exaloop.io), and the metaprogramming models in Terra (https://terralang.org), Nim (https://nim-lang.org), and Zig (https://ziglang.org).
But Chapel is great! It has a lot of good ideas, especially for distributed-memory programming, which is its historical focus. It is more related to Legion (https://legion.stanford.edu, https://regent-lang.org), parallel & distributed Fortran, ZPL, etc.
- NIR: Nim Intermediate Representation
What are some alternatives?
Biopython - Official git repository for Biopython (originally converted from CVS)
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
pyenv-virtualenv - a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv)
go - The Go programming language
TeamTeri - Bioinformatics on GCP, AWS or Azure
Odin - Odin Programming Language
adam - ADAM is a genomics analysis platform with specialized file formats built using Apache Avro, Apache Spark, and Apache Parquet. Apache 2 licensed.
rust - Empowering everyone to build reliable and efficient software.
seq - A high-performance, Pythonic language for bioinformatics
crystal - The Crystal Programming Language
getting-started-with-genomics-tools-and-resources - Unix, R and python tools for genomics and data science
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io