<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Programming-Languages on Living Systems_</title>
    <link>https://livesys.se/tags/programming-languages/</link>
    <description>Recent content in Programming-Languages on Living Systems_</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 13 May 2024 17:05:00 +0200</lastBuildDate>
    <atom:link href="https://livesys.se/tags/programming-languages/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Why didn&#39;t Go get a breakthrough in bioinformatics (yet)?</title>
      <link>https://livesys.se/posts/golang-for-bioinformatics/</link>
      <pubDate>Mon, 13 May 2024 17:05:00 +0200</pubDate>
      <guid>https://livesys.se/posts/golang-for-bioinformatics/</guid>
      <description>&lt;p&gt;&lt;p class=&#34;image&#34;&gt;&#xA;    &lt;img src=&#34;gopherbinfie.jpg&#34; alt=&#34;A gopher doing&#xA;bioinformatics&#34;  /&gt;&#xA;&lt;/p&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;As we are - &lt;a href=&#34;https://a16z.com/the-century-of-biology/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;according to some expert&#xA;opinions&lt;/a&gt;&#xA; - living in the&#xA;Century of Biology, I found it interesting to reflect on Go&amp;rsquo;s usage&#xA;within the field.&lt;/p&gt;&#xA;&lt;p&gt;Go has some great features that make it really well suited for biology,&#xA;such as:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A relatively simple language that can be learned in a short time&#xA;even for people without a CS background. This is super important&#xA;aspect for biologists.&lt;/li&gt;&#xA;&lt;li&gt;Fantastic support for cross-compilation into all major computer&#xA;architectures and operating systems, as static, self-sufficient&#xA;executables making it extremely simple to deploy tools, something&#xA;that can&amp;rsquo;t be said about the currently most popular bio language,&#xA;Python.&lt;/li&gt;&#xA;&lt;li&gt;Fantastic support for concurrency and writing code as a set of&#xA;parallell operations that streams data between them. Again, as&#xA;opposed to Python. More on that later.&lt;/li&gt;&#xA;&lt;li&gt;A large standard library that contains a lot of common needs, even&#xA;for writing user interfaces and web servers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Go has in fact garnered some use for bioinformatics tools over the years, with&#xA;some indications that its use is increasing. Examples of popular tools and&#xA;toolkits are &lt;a href=&#34;https://github.com/shenwei356/seqkit&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;SeqKit&lt;/a&gt;&#xA; (a veritable &lt;em&gt;swiss&#xA;army knife&lt;/em&gt; for bioinformatics), the &lt;a href=&#34;https://github.com/biogo/biogo&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BioGo&#xA;toolkit&lt;/a&gt;&#xA;, the &lt;a href=&#34;https://github.com/pbenner/gonetics&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Gonetics&#xA;package&lt;/a&gt;&#xA; and lately the &lt;a href=&#34;https://github.com/vertgenlab/gonomics&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Gonomics&#xA;package&lt;/a&gt;&#xA; and finally the&#xA;&lt;a href=&#34;https://github.com/bebop/poly&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Poly&lt;/a&gt;&#xA; package for synthetic biology. And this&#xA;is besides heavy use in infrastructure-oriented projects like the&#xA;&lt;a href=&#34;https://www.benthos.dev&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Benthos&lt;/a&gt;&#xA; stream processing tool, the &lt;a href=&#34;https://github.com/grailbio/reflow&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Reflow pipeline&#xA;tool&lt;/a&gt;&#xA; and &lt;a href=&#34;https://pachyderm.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Pachyderm orchestration&#xA;suite&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Go is growing in bioinformatics workflow tools</title>
      <link>https://livesys.se/posts/golang-growing-in-bioinformatics-workflows/</link>
      <pubDate>Fri, 10 Nov 2017 12:54:00 +0100</pubDate>
      <guid>https://livesys.se/posts/golang-growing-in-bioinformatics-workflows/</guid>
      <description>&lt;p&gt;&lt;p class=&#34;image&#34;&gt;&#xA;    &lt;img src=&#34;gopher_thinking_workflows.png&#34; alt=&#34;Gopher thinking with logos of different workflow tools in the air&#34;  /&gt;&#xA;&lt;/p&gt;&#xA;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;TL;DR: We wrote a post on gopherdata.io, about the growing ecosystem of&#xA;Go-based workflow tools in bioinformatics. &lt;a href=&#34;https://gopherdata.io/post/more_go_based_workflow_tools_in_bioinformatics/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Go read it&#xA;here&lt;/a&gt;&#xA;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;It is interesting to note how Google&amp;rsquo;s &lt;a href=&#34;https://golang.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Go programming&#xA;language&lt;/a&gt;&#xA; seems to increase in popularity in&#xA;bioinformatics.&lt;/p&gt;&#xA;&lt;p&gt;Just to give a sample of some of the Go based bioinformatics tools I&amp;rsquo;ve&#xA;stumbled upon, there is since a few years back, the &lt;a href=&#34;https://github.com/biogo/biogo&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;biogo&#xA;library&lt;/a&gt;&#xA;, providing common functionality&#xA;for bioinformatics tasks. It was recently reviewed in two great blog&#xA;posts (&lt;a href=&#34;https://medium.com/@boti_ka/a-gentle-introduction-to-b%C3%ADogo-part-i-65dbd40e31d4&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;part&#xA;I&lt;/a&gt;&#xA;,&#xA;&lt;a href=&#34;https://medium.com/@boti_ka/a-gentle-introduction-to-b%C3%ADogo-part-ii-1f0df1cf72f0&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;part&#xA;II&lt;/a&gt;&#xA;).&#xA;Further, Brent Pedersen also wrote a little collection of Go based&#xA;bioinfo tools, compiled down into a single static binary, called&#xA;&lt;a href=&#34;https://github.com/brentp/goleft&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;goleft&lt;/a&gt;&#xA;, and finally, I there is the&#xA;&lt;a href=&#34;https://github.com/exascience/elprep&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;elprep tool&lt;/a&gt;&#xA;, used to prepare&#xA;.sam/.bam/.cram files for variant calling, which was published in a&#xA;&lt;a href=&#34;http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0132868&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;PLoS one&#xA;paper&lt;/a&gt;&#xA;.&#xA;Just a few examples.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Combining the best of Go, D and Rust?</title>
      <link>https://livesys.se/posts/the-best-of-go-d-and-rust/</link>
      <pubDate>Sat, 11 Jun 2016 14:24:00 +0200</pubDate>
      <guid>https://livesys.se/posts/the-best-of-go-d-and-rust/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been following the development of &lt;a href=&#34;http://dlang.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;D&lt;/a&gt;&#xA;,&#xA;&lt;a href=&#34;http://golang.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Go&lt;/a&gt;&#xA; and &lt;a href=&#34;https://www.rust-lang.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Rust&lt;/a&gt;&#xA; (and also&#xA;&lt;a href=&#34;http://www.freepascal.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;FreePascal&lt;/a&gt;&#xA; for &lt;a href=&#34;https://github.com/NBISweden/mdc-file-export&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;some use&#xA;cases&lt;/a&gt;&#xA;) for some years&#xA;(&lt;a href=&#34;http://saml.rilspace.org/moar-languagez-gc-content-in-python-d-fpc-c-and-c&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;been into some benchmarking for bioinfo&#xA;tasks&lt;/a&gt;&#xA;),&#xA;and now we finally have three (four, with fpc) stable statically&#xA;compiled languages with some momentum behind them, meaning they all are&#xA;past 1.0.&lt;/p&gt;&#xA;&lt;p&gt;While I have went with Go for &lt;a href=&#34;http://scipipe.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;current projects&lt;/a&gt;&#xA;, I&#xA;still have a hard time &amp;ldquo;totally falling in love&amp;rdquo; with any single of&#xA;these languages. They all fulfill different subsets of my wishlist for&#xA;an optimal compiled data munging language.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
