This question is aimed mostly at the kind of disability we are susceptible to and I have been living with for the past 15 years. Even though we have speech recognition, it doesn't solve any problem except writing text. There have been a couple of attempts at making speech recognition more useful to programmers , but they have failed. The needs are clear:
 A working full-vocabulary, continuous recognition system on Linux.
 Tools that don't expect you to "speak the keyboard."
 Tools that let you edit as well as create code.
So why don't more geeks work on securing their own future, or at the very least, work to help their fellow geeks to stay on the economic ladder?
 VoiceCode and VR-Mode: VoiceCode or is an amazing piece of work. It makes it possible for a disabled programmer to generate Python code very quickly. Unfortunately, it does not solve the editing problem. Even more unfortunately, it's hand-wearingly complicated to set up and get working. VR-Mode makes it possible to use Naturally Speaking's "Select and Say" mode in Emacs — that is, if you can get it to work. It seems to have drifted into non-functionality as Emacs has moved forward.
 Naturally Speaking works well, is reasonably cheap, and works somewhat under Wine today. If we can make it work reliably under Wine, it solves the problem in months rather than decades. Other tools such as Sphinx 1-4 are great IVR systems if you have a vocabulary and grammar under 15,000 words. In contrast, Naturally Speaking's working vocabulary is in the 100,000-word range. Any disabled user will choose Naturally Speaking because it works so much better than the nearest alternative. We have people who are injured now and need these tools. They can't afford to wait 10 years or more for an OSS solution.
 "Speaking the keyboard" refers to speech user interfaces developed by people who don't use speech recognition. They expect you to say too much, which creates a vocal form of RSI — see . Listen to what disabled users do, not to what you think they should speak.
 See VoiceCode in . Unfortunately, today's tools are only for writing code, not correcting code. Code correction is a very different process and must be spoken in a different way: "change index" instead of "search forward left bracket leave mark search forward right bracket copy region." This is also an example of "speaking the keyboard."