MATLAB, Python and R are commonly used in bioacoustics. Whilst all three languages are excellent choices, it is difficult to ask entrants into bioacoustics to learn all three. I have tried to put together a table with a summary of what each language is good/bad at - any thoughts on the scores/ additional rows to add?
MATLAB | Python | R | |
---|---|---|---|
How easy/intuitive is it to get started | Excellent (totally integrated code and IDE) | Good (Spyder IDE is great) | Good (R Studio) |
Open source | No | Yes | Yes |
Price | Very expensive (but often paid for in academia) | Free | Free |
Documentation | Excellent (consistently comprehensive help files) | Good (help depends on package) | Good (help depends on package) |
Speed | Slow | Slow | Slow |
Audio functions e.g. opening files etc. | Excellent (includes X3 libraries) | Excellent | Excellent |
Signal processing functions | Excellent (includes GUI toolbox) | Excellent (scipy.signal) | Good |
Deep learning tools | Good | Excellent (the default language for Deep Learning) | Medium? |
Statistics | Medium (patchy at best) | Medium? | Excellent (designed for stats) |
Package Management | Less choice but easy and integrated | Lots of packages - can be confusing | Easy in R studio but lots of competing packages |
Building UIs (graphical programs) | Easy and integrated | More complex (and perhaps powerful) with lots of different packages e.g. Tkinter, wxPython, and PyQt. | Easy with R shiny |
Use with PAMGuard | Well developed library to read PAMGuard output | Library planned for 2023 | Well developed library to read PAMGuard output |