5

What language(s) would be best to learn for someone interested in contributing to XMR (and, less relevantly, Bitcoin)?

I have a long term goal to contribute more and more significantly to these awesome projects but I have a long way to go.

I'm not sure what I want to code but ideas will come if I start learning...

sgp
  • 8,806
  • 6
  • 42
  • 113
gdoober
  • 685
  • 4
  • 14

1 Answers1

8

Monero is for most parts written in C++ and C. That is, currently 81.2% of the code is written in C++, whereas 15.9% of the code is written in C. The remaining languages are CMake, Shell, Python, Perl6, and Other. The "language distribution" can be seen here (click on the purple/pink bar to see the distribution). Thus, if you want to contribute to Monero you, preferably, ought to learn C++ and C. For Bitcoin this relatively similar. One small deviation is that the Bitcoin repository also contains a significant percentage of Python code. However, this is probably demo code. For Monero you can find this demo code in a seperate repository.

In addition, there is also the GUI to which you can contribute. Its repository can be found here. The GUI is for most parts written in QML and C++. That is, currently 80.0% of the code is written in QML, whereas 15.9% of the code is written in C++. The remaining languages are QMake, Shell, and Javascript. The "language distribution" can be seen here (click on the purple/pink bar to see the distribution). Thus, if you want to contribute to GUI you, preferably, ought to learn QML and C++. Note that for some GUI features you will also have to make changes to the general Monero repository.

dEBRUYNE
  • 15,227
  • 17
  • 57
  • 114
  • 1
    Very informative answer thank you! I'll search for some c++ tutorials to begin with but if there's any you'd recommend I'll definitely start there. The gui would be a great thing to contribute to, I just need to start using monero more to get some ideas for the GUI. – gdoober Nov 03 '16 at 11:41
  • 4
    I personally don't have any recommendations regarding c/c++ tutorials. However, you might want to look into "Mastering Bitcoin", which has a lot of code examples. – dEBRUYNE Nov 03 '16 at 12:18