If you are just beginning to develop BCIs, you have several options on how to actually implement your BCI software components. First, you can develop everything from scratch in a programming language of your choice (popular languages include Python, MATLAB, and C/C++). This approach has the steepest learning curve, but you will learn a lot about the inner workings of a BCI system. Second, you can choose among several existing BCI software platforms and implement your system using readily available common or custom building blocks. Finally, it is also possible to combine both approaches by picking the best components out of specific platforms and then bundling everything together with custom code.
The following section briefly summarizes the most popular BCI software platforms. Here, we focus on freely available non-commercial platforms, most of which are also open source. For a detailed overview of several major BCI software platforms, check out this recent book chapter. There is also a discussion group on BCI software platforms and standards.