A lot of people point out other software.
The whole point is the algorithm [1] which how Anki schedules your cards. It is based on Supermemo's [2], and improved a lot over the years, so I think it's the most optimal from all of the SRS software's out there.
Also I think Anki has a very simple UI, not sure how people can find it complicated. You just add cards, and by review you press a button, that's all. Cards are just HTML, but you can edit them with the built in WYSIWYG editor.
Anki is great for learning programming languages!
See the Janki method [3] and another blog post [4] how to use it effectively. I found the last one especially helpful, and started learning Programming languages based on that. It works great.
You can also learn linux commands, whatever.
People also asked for sharing cards. It is very important to make your own cards progressively and learn from those, because you know what you need to emphasize for the info to stick. Just use small information on every card, use your own terms, and it will be much easier to learn, compared to some random deck you downloaded.
[1]: http://ankisrs.net/docs/manual.html#what-spaced-repetition-a...
[2]: http://www.supermemo.com/english/ol/sm2.htm
[3]: http://sivers.org/srs
[4]: http://www.jackkinsella.ie/2011/12/05/janki-method.html