Slashdot Mirror


How One Programmer Is Coding Faster By Voice Than Keyboard

mikejuk writes "Is it possible that we have been wasting our time typing programs. Could voice recognition, with a little help from an invented spoken language, be the solution we didn't know we needed? About two years ago Tavis Rudd, developed a bad case of RSI caused by typing lots of code using Emacs. It was so severe that he couldn't code. As he puts it: 'Desperate, I tried voice recognition'. The Dragon Naturally Speaking system used by Rudd supported standard language quite well, but it wasn't adapted to program editing commands. The solution was to use a Python speech extension, DragonFly, to program custom commands. OK, so far so good, but ... the commands weren't quite what you might have expected. Instead of English words for commands he used short vocalizations — you have to hear it to believe it. Now programming sounds like a conversation with R2D2. The advantage is that it is faster and the recognition is easier — it also sounds very cool and very techie. it is claimed that the system is faster than typing. So much so that it is still in use after the RSI cleared up."

54 of 214 comments (clear)

  1. Probably not faster than auto complete by ModernGeek · · Score: 3, Insightful

    The first thing that came to mind was how much useless and repetitive things that a programmer has to churn out to make things work, however I'd have a hard time believing that this could be faster than someone using something like autocomplete as done in .NET.

    --
    Sig: I stole this sig.
    1. Re: Probably not faster than auto complete by alen · · Score: 3, Funny

      Yeah, but Microsoft is evil and everyone knows you are dumb as door nails if you cheat with autocomplete and code suggestions in a modern IDE rather than type everything yourself

    2. Re:Probably not faster than auto complete by complete+loony · · Score: 2

      I haven't RTFA, but I'd guess his biggest gains came from scripting things that were annoying to say. If you invested the same amount of effort in automating things that you would normally type, you can get very big productivity gains.

      My father is a (retired) software developer. When he was a kid he lost both of his hands in an accident. So how does he type? By holding a pen between his arms. How does he code efficiently? Lots and lots of domain specific vi macros. For example, with less than 10 key presses he can insert a well formatted SQL Insert statement, with all columns from the requested table pre-filled.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
    3. Re:Probably not faster than auto complete by exploder · · Score: 2

      Imagine if your .o object files were more malleable than text, now realize that they are, but you haven't developed the tools to do so.

      I'm on a horse.

      --
      Yo dawg, I heard you like the Ackermann function, so OH GOD OH GOD OH GOD
    4. Re:Probably not faster than auto complete by complete+loony · · Score: 3, Funny

      He's been in the local paper a few times as a human interest story during his life, but there's nothing available online that I can find. Though he has told me a fair number of anecdotes from work over the years.

      Once he turned up to a job interview after being referred by an old colleague. The interviewer hastily excused himself to call the guy; "You didn't tell me he didn't have any hands". "I didn't think it was relevant to his ability".

      After discovering that a Y2K compliance project was starting (ie using 4 digit dates everywhere), with an estimate of 8 people for 2 months. He came back after about 2 hours with all the changes checked in.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
    5. Re: Probably not faster than auto complete by Yvanhoe · · Score: 2

      Or, you know, install it for the editor you use. Dude, this is 2013, there are autocomplete packages for vim, for god's sake.

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    6. Re: Probably not faster than auto complete by Anonymous Coward · · Score: 3, Insightful

      Maybe you were too young, but they pretty much created the concept of autocomplete for programming with Intellisense.

      You might have had a point about my youth and inexperience if MS had developed autocomplete for punchcards, 'cos that's what I learned on, but in reality it's been around longer than Windows has been.

      I remember using autocomplete coding in some IDE on a Vax box in the mid '80s, and later using it on Suns and Amigas in the late '80s and early '90s (Pascal variant, maybe?). I know Delphi had good autocompletion.

      So no, Microsoft didn't invent it, and no amount of revisionist history here will change that....

    7. Re: Probably not faster than auto complete by PybusJ · · Score: 2

      Maybe I'm too old, but programmers editors have been supporting completion using ctags and its ilk since Microsoft were dabling in DOS. Intellisense didn't appear until the late 90s. Sure MS's focus on tools for developers helped to cement their OS monopoly at that time, but there was plenty of completion support, and a lot of research in context sensitive completion long before.

    8. Re:Probably not faster than auto complete by X0563511 · · Score: 2

      Why would you (routinely) want to directly edit your object files? What exactly are you trying to do that a non-experimental compiler can't do better?

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
  2. Emacs by captain_dope_pants · · Score: 4, Funny

    Really ? He'd have been better off with VI - everyone knows it stands for Voice Input :p

    --
    while (true != false) process_more_stupid_code();
    1. Re:Emacs by Immerman · · Score: 2

      > while (true != false) process_more_stupid_code();

      Ah, I see you've selected "a lawyer enters the room" as your stopping condition. Should I be suspicious of the code in that harmlessly named function?

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    2. Re:Emacs by newcastlejon · · Score: 2

      Should I be suspicious of the code in that harmlessly named function?

      Not really. The whole scope ceases to be a problem when vanish(puff_of_logic) gets called at the end.

      --
      If God forks the Universe every time you roll a die, he'd better have a damned good memory.
    3. Re:Emacs by doti · · Score: 4, Funny

      VI VI VI

      the editor of the beast

      --
      factor 966971: 966971
    4. Re:Emacs by hackula · · Score: 2

      "Computer! Colon Q! Return!"

  3. You can't win.. by Jah-Wren+Ryel · · Score: 5, Funny

    So how long until he gets laryngitis and has to start typing again?

    --
    When information is power, privacy is freedom.
    1. Re:You can't win.. by Seumas · · Score: 5, Informative

      If you watch the video, he discusses that. He does about 40-60% of his coding with this system and he does keep voice-strain in mind (in fact, he was sucking on a hard candy during the demonstration to keep his voice from drying out). You may not do 100% of your work in it, but just imagine if you could cut the amount of typing you do down to about half of normal? Suddenly, you're spreading some of the load to your voice, keeping either from being excessively stressed.

    2. Re:You can't win.. by Tablizer · · Score: 2, Funny

      It's best to spread out the load: 1/3 with your fingers, 1/3 with your voice, and 1/3 with your dick.

    3. Re:You can't win.. by Jah-Wren+Ryel · · Score: 2

      > Switch to a brain controlled interface.

      And then when your brain wears out you are totally screwed!

      --
      When information is power, privacy is freedom.
  4. Coding != Typing by JaredOfEuropa · · Score: 3, Insightful

    It's an impressive demonstration of voice recognition, and rather useful for people suffering from RSI, but to suggest that we may all benefit from this? Besides the fact that speech-to-text is a decidedly crappy input method in open plan offices (especially with the extra noises added on), it is also questionable if this will make us code faster. In my experience, typing speed is not really a major limiting factor in coding speed, when taking problem solving and debugging into account. When coding, I do not spend that much time ting, actually.

    --
    If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    1. Re:Coding != Typing by oodaloop · · Score: 5, Funny

      I do not spend that much time ting, actually.

      You don't say?

      --
      Tic-Tac-Toe, Global Thermonuclear War, and relationships all have the same winning move.
    2. Re:Coding != Typing by Krishnoid · · Score: 2

      It's an impressive demonstration of voice recognition

      Is it really? Since English is a non-phonetic language, I wonder if there's a parallel between coming up with consistently pronounced individual phonemes for special characters, and PalmOS Graffiti. In both cases:

      • the computer gets help in keeping input tokens distinct by restricting the breadth of expressivity of the input space,
      • the human has to alter their input to improve recognition for cases the computer has difficulty with.

      It is definitely impressive from a practical perspective in that tweaking the voice recognition like this can produce much improved results.

    3. Re:Coding != Typing by buchner.johannes · · Score: 3, Interesting

      In the talk he says open source voice recognition software, e.g. Sphinx, don't work at all, and you have to go for Dragon.
      But then creates writes his own command language.

      So I don't understand why do we need voice recognition software that recognizes English? All we need is a open source package that translates sounds into some phonetic dictionary (e.g. IPA), and from there the second problem is to translate that into a native language.

      Or even simpler, give it a dictionary of commands, and get it to find the closest match, or if all are unlikely, do nothing.

      Why try to go for something so hard, but there is no software for the simpler problem that would make people very productive by just commanding the computer?

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
  5. Codijng faster by voice because... by Anonymous Coward · · Score: 3, Insightful

    His coding by hand has been crippled by RSI. That's like saying someone can get around faster in a wheelchair because they've broken their legs.

    1. Re:Codijng faster by voice because... by CastrTroy · · Score: 2

      I think it means he's actually coding faster now than before he got the RSI. Although I think this works for the same reason that Palm Graffiti worked a lot better than regular handwriting recognition. Change the alphabet so there are no longer any ambiguous letters, and it's a lot easier to recognize them. In this case, he's only using a very limited vocabulary, with a very well defined grammar. This makes it a lot easier for the program to figure out what the correct interpretation is.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    2. Re:Codijng faster by voice because... by jeffb+(2.718) · · Score: 5, Insightful

      That's like saying someone can get around faster in a wheelchair because they've broken their legs.

      You might want to look up the record time for completing the Boston Marathon in a wheelchair vs. on foot.

  6. And you thought *your* cube mates were annoying by msobkow · · Score: 2, Insightful

    It's bad enough to hear people yelling at their phones in the cubes around. Now one can expect to hear someone yelling at the computer...

    --
    I do not fail; I succeed at finding out what does not work.
  7. Sounds Tedious by Polarised+Bear · · Score: 2

    I really can't imagine it being more effective than typing and I really don't want to sit and make sounds at my screen. If it works for him that's great but count me out.

    --
    Or, you know, that's just like my opinion.
  8. Writing is easy by rrohbeck · · Score: 3, Insightful

    90% of my work is debugging and even figuring out the failure scenario and testing against it. Writing the fix and new code is easy and quick.

    1. Re:Writing is easy by Tablizer · · Score: 2

      90%? Maybe you suck :-)

    2. Re:Writing is easy by rrohbeck · · Score: 4, Funny

      I'm not debugging *my* code :)

  9. Re:Try that with LISP by Mitchell314 · · Score: 4, Funny

    "Open parenthetheeth liphth wun too theven clothe parenthetheeth wetun"

    Huh, it actually works.

    --
    I read TFA and all I got was this lousy cookie
  10. This is like the corded keyboard by Required+Snark · · Score: 5, Interesting
    The mouse/keyboard combination was not the original combination envisioned by Douglas Englebart, the inventor of the mouse. He paired it with a chorded keyboard that could be operated with one hand. Clearly text input with one hand and mouse input with the other is a better input paradigm, but it is still not in use much today.

    This use of speech recognition seems like a similar situation. It works for a few people, but it will not ever have a large user community. QWERTY keyboards are so dominant that their network effect makes other input modes irrelevant. Even those who adopt it will still be using conventional keyboards away from their custom environment.

    --
    Why is Snark Required?
    1. Re:This is like the corded keyboard by hibiki_r · · Score: 2

      The problem is not with the person learning the new input UI, but with those that end up having to use your computer with zero training. I remember trying to help out a coworker that decided to buy a kinesis keyboard, and then set it up to dvorak: Not only I had to remember to switch layouts every single time I had to type something, and managed to miss 15% of my keystrokes due to its strange button placement, but then space, enter and backspace are all wrong, and right next to each other: It was just a horrible experience. I can only imagine what would happen with a chorded keyboard.

  11. Re:Try that with LISP by Anonymous Coward · · Score: 3, Informative

    The first demo in the talk is editing lisp.

  12. autocomplete as done in Borland C++ .. by dgharmon · · Score: 4, Informative

    > I'd have a hard time believing that this could be faster than someone using something like autocomplete as done in .NET ..

    autocomplete was around long before .NET as was context-sensitive-help before Microsoft renamed it Intellisense ..

    --
    AccountKiller
    1. Re:autocomplete as done in Borland C++ .. by Anubis+IV · · Score: 3, Insightful

      Sure, but he was merely offering an example that most people here are likely at least somewhat familiar with. He never made any claims to its originality. I mean, if I was making a car analogy, I'd likely reference a car that people here know, rather than the earliest one that exhibited the traits I was referencing, just because the purpose of the statement is solely to supplement understanding of a separate topic.

    2. Re:autocomplete as done in Borland C++ .. by Anubis+IV · · Score: 2

      Auto-complete is not so common as tires on cars, however. Every car out there has tires on it, whereas I'd be willing to wager that FAR less than half of the tools used for writing code feature auto-complete (there are loads of bare-bones editors that get as far as syntax coloring but don't get around to featuring auto-complete). That the most popular ones happen to have it while hundreds of smaller products don't would lend more credence to the idea that it's useful to name a specific one, rather than referring to them as a whole.

  13. Oompah Oompah Band by Tablizer · · Score: 5, Funny

    Pararenthesis parenthesis parenthesis. ... Was that one too much?

    No, open "parenthesis" will be abbreviated "pah". And close parenthesis will be "ump".

    Thus, coding will sound like, "Umpah lumpa, dipity doo, I have another puzzle for you..."

    http://www.youtube.com/watch?v=qw0zZttfUaw

  14. Input is not the limiter when coding by gweihir · · Score: 4, Insightful

    Unless you are programming utterly structure starved glue-code, input is not the limiting factor, thinking about what you want to input is.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:Input is not the limiter when coding by pla · · Score: 4, Insightful

      Unless you are programming utterly structure starved glue-code, input is not the limiting factor, thinking about what you want to input is.

      You beat me to it.

      I can type in code pretty damned fast - Fast enough that people frequently ask me how often I go through keyboards - Fast enough that I've actually had people in the room with me ask if I had just typed something meaningful or merely mashed keys for the hell of it - And, while coding, I tend to spend far, far more time thinking than coding. Someone watching me program for an hour would see 3-5 minutes at a time of complete inactivity, followed by assaulting the keyboard for a 30 second burst, rinse wash repeat.

    2. Re:Input is not the limiter when coding by Kjella · · Score: 4, Interesting

      You beat me to it. I can type in code pretty damned fast - Fast enough that people frequently ask me how often I go through keyboards - Fast enough that I've actually had people in the room with me ask if I had just typed something meaningful or merely mashed keys for the hell of it - And, while coding, I tend to spend far, far more time thinking than coding. Someone watching me program for an hour would see 3-5 minutes at a time of complete inactivity, followed by assaulting the keyboard for a 30 second burst, rinse wash repeat.

      I think I can have considerably longer buffer/burst cycles, the challenge is keeping the big picture in your head while doing the little parts, and there I feel the duration of the bursts matter. If I've figured that to solve a business problem I need to change code sections A2, B4, C3 and D1 I'll start working on A2 and if it's quick and easy I won't forget the rest while if I struggle and need to churn out a lot of boilerplate by the time I'm done I might not remember what those other changes were. Either you then have to take notes or pseudocode the whole solution first or recreate it from memory, in those cases faster input would help keep me "in the flow", even though the input itself is only a small fraction of the wall time.

      --
      Live today, because you never know what tomorrow brings
  15. New rapping fad by Tablizer · · Score: 3, Funny

    You: "Biff Niff Bobblewop, Mop Top, Flip Flop Dribble Nibble Bazzle Dazzle Ropple Popple Slip Dip..."

    Boss: "Get to work, no more rapping!"

    You: "I'm not rapping, I'm programming via voice commands. Actually, I'm doing both."

    Boss: "Yeah, right. It's called Riff Raff."

  16. Re:The secret is hot sauce by PolygamousRanchKid+ · · Score: 4, Funny

    So... what? Do you just chug it?

    I believe it's intended to be administered as an enema . . .

    You might be able to convince some frat boys into trying it . . . they're already doing it with alcohol.

    --
    Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
  17. Not shocking by quantaman · · Score: 3, Interesting

    Not a fan of evolutionary psychology, but I think there's a lot of reason to think we do have an aptitude for spoken language. I wouldn't be at all surprised if a well designed voice system left more mental focus available for the task of coding.

    I'm not sure if the technology is there yet, and you still don't want to hear your officemates jabbering away, but I could see the theoretical usability of a spoken word interface surpassing that of typing.

    --
    I stole this Sig
  18. Must see, VR coding in action: by 2fuf · · Score: 2
  19. Re:Mouse by xlsior · · Score: 2

    Does his RSI prevent him from using a mouse? How does he cut and paste?

    If you actually watched the video, you could have seen that he was using voice commands to select blocks of text and cutting/pasting them that way as well.

  20. #cough# by MickLinux · · Score: 2

    #snort# #ugh-phptt# gah gak #thwip# #snrgle# #cmhmm#...

    Save

    Compile

    There. Your routine is done.

    --
    Correct Horse Battery Staple: 72 bits of entropy. Enter "Correct H" into google. When it generates the phrase, that's
  21. Re:Get the computer to think instead by Tablizer · · Score: 2

    Welcome to Slashdot, Mr. Ballmer.

  22. Lisp programmers need foot pedals by ebno-10db · · Score: 5, Funny

    What Lisp programmers really need are two foot pedals - one for left parentheses and one for right parentheses. That should cover 90% of their input requirements.

  23. Re:The secret is hot sauce by Anonymous Coward · · Score: 2, Informative

    Capsaicin is used for pain relief in various cases, applied topically. Typically it involves putting some other short term, local anestetic on the area, then putting really high strength capsaicin paste on the area. It overloads the nerves, so after it is removed, perception of pain is reduced for quite a while later. Although I would be careful about using it for RSI. While capsaicin can reduce very specific kinds of inflammation that are caused due to response of nerves, if that isn't relevant to your situation, you might just be treating the symptom. You could end up continuing to damage things, just not feel it while it happens.

  24. This is awesome and will change peoples' lives. by students · · Score: 2

    I am seeing lots of negative and off topic comments, many of which show people only watched part of the video. I thought it was totally amazing. When I was a teenager I had to change the course of my career away from computational science towards experimental science because of RSI-like problems. If I had his tools when I was 14 and had known I needed to use them, my career would be totally different and possibly much better since my programming talents would actually have been used.

    Today, I can't really afford to spend several months learning to replicate his work, but hopefully soon it will be easier to learn. This will never be for everyone - some people can't use modal programs - and maybe it will never work in every context (Can it talk to my 20 year old Tektronix oscilloscope over GPIB?) but the video showed it can work. I hope good documentation, native linux support, and support for latex will be forthcoming so it can help me do science.

  25. Re:He was doing it wrong by zieroh · · Score: 2

    I have been typing for more than 30 years and I don't have an issue.

    I have been touch typing for 30 years and I don't have an issue either. If you think either of our statements actually proves anything, you're not very smart.

    --
    People who say "sheeple" have about as much sophistication as an AOL user, and in fact are probably actually AOL users.
  26. Re:Try that with LISP by mwvdlee · · Score: 2

    Spoken like somebody who has no idea what either LISP or COBOL is.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  27. Voice computing, once again by whitroth · · Score: 2

    ... and the response, from 20 years ago, is still the same:
            a) "Hey, Joe, are you still working on that difficult piece of code, or coming to lunch?
                      AAARRRGHGHGHHH!
            and the ever popular
            b) (as disgruntled, just fired emplyee walks out of HR) START! RUN! FORMAT C:! YES!YES!YES!

                          mark