Logo
  • Home
  • About
  • What we do
  • Partners
  • News
  • Resources
  • Careers
  • Contact
New programming languages

Rust: A promising programming language for large biological datasets

20 Sep 2022

Alex Cloherty - Junior marketing associate
Alex Cloherty - Junior marketing associate

 

Not everybody can cook a perfect meal…

To really excel at this, you need a deep understanding of how flavours will mix and enhance each other, and to be able to draw on that knowledge to identify exactly which spice or condiment will bring a dish to the next level. In much the same way, having a solid background in programming languages and knowing which one to use when is one of the main skills that every Lizard has in their toolbox.

6750358-01

Within the bioinformatics community, there is no doubt that R and Python are the most successful programming languages, and are likely to remain popular for some time. However, just like salt is not always the answer to improving every dish, R and Python are not always the best solution for every data analysis problem.

From experience, we have seen that effective software is often the keystone that can bring research in drug discovery or disease treatment to the next level. But depending on the project and the type of data, there will be different bioinformatic requirements and priorities. At Biolizard, we strive to apply the best solution to the problem at hand, by picking a programming language that matches the needs of the dataset in question. Over the next three weeks, we will introduce you to three new programming languages that we use at BioLizard – starting with Rust.

 

Rust is a general-purpose programming language that unifies the expressiveness and flexibility of languages like Python with the speed and efficiency of languages like C and C++. When a programming language is fast, it not only means that code can be written and bugs fixed quickly, but also that it is able to efficiently handle massive datasets like those found in modern biological databases. 

 

rust1

One of the features that make Rust so fast is that it compiles to native code across multiple platforms, from Windows to macOS to Linux. Put simply, this means that information written in Rust is directly translated from the code that is understandable to programmers, into information that makes sense to the computer – without additional, in-between translation steps that languages like Python require. This speeds up the process of the computer interpreting the code that has been fed to it.

Rust is unique in that while it is fast like C and C++, it is also very safe to use. In fact, Rust originated out of Mozilla Research in 2010 as a more reliable, safer alternative to C++. That safety is thanks to its efficient memory management system, which prevents programmers from inappropriately re-accessing or releasing memory from the operating system. This means that if there is a memory error in Rust code, which could cause crashes or create code vulnerabilities that hackers can abuse, the programmer is notified and forced to fix any errors before the program even runs. In other words, Rust simply won’t allow programs that attempt unsafe memory usage to run, making this language a great option to use with highly sensitive data.

That all sounds great, right? Unfortunately, there is one downside: compared to other programming languages, Rust has a relatively steep learning curve. However, the community of Rust users, self-styled as “Rustaceans”, have tried to ameliorate this by including all of the requirements needed to produce a Rust binary in one package. This makes it easier for newcomers to get going with Rust right away, without needing to download any additional tools. Thanks to these fast and effective features and its vibrant community, Rust has quickly become one of the most popular programming languages according to the most recent yearly Stack Overflow survey.

Do you have a large database that needs to be analysed both efficiently and safely? Then perhaps Rust is the language for you – and BioLizard is here to help! Be sure to contact us to discuss your data analysis needs, and return here next week to learn about a different programming language that is particularly suited to tackling heterogeneous data.

 

Let us help you…

Contact us!

Trust the data professionals

blog1_CTA-01

 

Resources

https://www.nature.com/articles/d41586-020-03382-2

https://www.infoworld.com/article/3218074/what-is-rust-safe-fast-and-easy-software-development.html

https://developer.okta.com/blog/2022/03/18/programming-security-and-why-rust

 

Acknowledgements

This text was prepared in collaboration with Erik Vandeputte – Software & IT architecture Team Lead.

Let's do something
great together

Contact us

Join the social
media discussion

Stay informed with
our latest news

Read our news
  • Home
  • About

©2022 BioLizard nv. All Rights Reserved. Design by Just Jax. Development by TYL.

  • Privacy Policy
Logo
Biolizard Cookie Consent Information

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.

Cookie SettingsAccept All

Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDurationDescription
cookielawinfo-checkbox-advertisement1 yearSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
CookieDurationDescription
bcookie2 yearsLinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognize browser ID.
langsessionThis cookie is used to store the language preferences of a user to serve up content in that stored language the next time user visit the website.
lidc1 dayLinkedIn sets the lidc cookie to facilitate data center selection.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
CookieDurationDescription
_ga2 yearsThe _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors.
_gat_gtag_UA_164325847_11 minuteThis cookie is set by Google and is used to distinguish users.
_gat_UA-164325847-11 minuteThis is a pattern type cookie set by Google Analytics, where the pattern element on the name contains the unique identity number of the account or website it relates to. It appears to be a variation of the _gat cookie which is used to limit the amount of data recorded by Google on high traffic volume websites.
_gcl_au3 monthsProvided by Google Tag Manager to experiment advertisement efficiency of websites using their services.
_gid1 dayInstalled by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
CookieDurationDescription
_fbp3 monthsThis cookie is set by Facebook to display advertisements when either on Facebook or on a digital platform powered by Facebook advertising, after visiting the website.
bscookie2 yearsThis cookie is a browser ID cookie set by Linked share Buttons and ad tags.
fr3 monthsFacebook sets this cookie to show relevant advertisements to users by tracking user behaviour across the web, on sites that have Facebook pixel or Facebook social plugin.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
CookieDurationDescription
a3aa548f857642d7ad9818410843280acd93d104c52e466aa7c59da011282bb01 yearNo description
AnalyticsSyncHistory1 monthNo description
li_gc2 yearsNo description
UserMatchHistory1 monthLinkedin - Used to track visitors on multiple websites, in order to present relevant advertisement based on the visitor's preferences.
SAVE & ACCEPT
Powered by CookieYes Logo