Skip to Main Content

Open-source: code and hardware

A resource for users or producers of open-source code, software, and hardware for researchers in biomedical or life science

Writing open-source code for scientific computing

Summary of best practices for writing code for your research (adapted from Wilson et al (2014) "Best practices for scientific computing", PLoS Biology.) For a more detailed explanation of these principles, please refer to the full Wilson et al article at: https://doi.org/10.1371/journal.pbio.1001745

General best practices
Specific examples
Write programs for people, not computers Make code style consistent; use meaningful names
Let the computer do the work Make the computer repeat tasks; automate workflows
Make incremental changes Use a version control system that includes any manual creations
Don't repeat yourself (or others) Re-use code instead of rewriting
Plan for mistakes Use an off-the-shelf unit testing library; use assertions to check operations
Optimize software only after it works correctly  Use the highest-level language possible when writing code
Document design and purpose, not mechanics Embed documentation into the software
Collaborate Use pair-programming; use an issue tracking tool

Languages

Common programming/scripting languages for open source programs

Java: is a general-purpose programming language with syntax derived from C and C++. Java is used for Android app development, among otehr features. Oracle maintains a New to Java Programming Center, which includes training materials, tutorials, and other resources. OpenJDK is another resource for open source development of JavaSE, learn more at: http://openjdk.java.net/

PHP: PHP Hypertext Preprocessor. This is an HTML-based scripting language with syntax borrowed from C, Java and Perl. PHP is useful for quickly generating dynamic webpages and is often used for web development as well as general purpose programming. PHP is free under the open source PHP license. For more information, including documentation, downloads and FAQ, see: http://php.net/. 

Python: a general-purpose programming language designed to be highly extensible. The Python Software Foundation site has tutorials and code samples: https://www.python.org/. License information is available at: https://docs.python.org/3/license.html.

Perl: a family of programming languages; current versions are Perl 5 and 6. Perl is used in a variety of contexts, including bioinformatics, system administration, and GUIs. Perl is licensed under the Artistic License and the GNU General Public License. Training materials, downloads and documentation are available on the Perl site: https://www.perl.org/.

 

Most common programming languages on GitHub, 2014 - 2019: 

(retrieved from https://octoverse.github.com/projects#languages on 22 May 2019)

top languages in Github