These are the things that would benefit from contributions:

Tool Use/Projects/Bug reports

The most important thing right now for the progress of the project is people using it and telling me what works and what doesn’t! I want to get a real feel for what it’s like to be a developer using the tool to make some cool Arduino projects!

Social media

Related to this, in order to take the project to the next level, one of the most important things we need is people sharing their stories and work on social media. Examples of developers using the product to build something cool, or even just recreating a hello world, flashing lights or one of the other examples on YouTube and videoing themselves or uploading photos… would be such an amazing boost for us!

New examples

On github we started a site for people to contribute their examples and sample code. It would be great to see some new project ideas uploaded there.

Third party library code

Now we are getting to the harder stuff… ;)

We made a conscious decision not to work with the existing Arduino ecosystem code. That community is great but we want to start a new one from scratch and create a different way of making code. (This is partly a bit like what Swift themselves have done where they wrote some of their core libraries like dispatch and foundation again from scratch.)

There are many peripherals out there that could use support code. If you have Arduino shields and you want to help, it would be a great contribution to write library code to drive them, get it working and contribute it to the community site. (For example, if someone has an ethernet shield and wanted to write the code to make it work on Swift for Arduino that would be great!)


comments from our compiler hacker...

I cannot emphasise strongly enough how much harder it is to hack on compilers than doing any other sort of coding I am used to. You need to have a really good understanding of AVR assembly language, AVR architecture, SIL, LLVM IR, C, C++, STL… all that before you get into the hugely complex structure of the source code of the swift compiler and related projects or the llvm libraries and code structure. It’s insanely hard to contribute anything useful. After nearly two years I’m barely there myself. I’m attempting to do a build of swiftc from source with some patches to enhance support in the LLVM. Any help with building a cross compiler version of swiftc on OSX for the avr architecture would be useful.

Also, to emphasise, not only is the compiler work about 1000 times harder than anything else, it’s arguably the least important thing for the whole project right now. It will be necessary for getting the later versions (versions 3, 4 etc.) going and adding cool new features but it doesn’t help much now and it’s incredibly hard.