Forgot your password?
typodupeerror
Programming Input Devices Technology

How One Programmer Is Coding Faster By Voice Than Keyboard 214

Posted by samzenpus
from the greased-lightning dept.
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."
This discussion has been archived. No new comments can be posted.

How One Programmer Is Coding Faster By Voice Than Keyboard

Comments Filter:
  • by ModernGeek (601932) on Sunday August 18, 2013 @06:17PM (#44602921) Homepage
    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.
    • by alen (225700) on Sunday August 18, 2013 @06:21PM (#44602945)

      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

      • by murdocj (543661)

        True... much better to just type something that looks plausible and then run it and find out that you left out the 's' from the end and now you get to fix it. Not to mention spending all of your time googling because god forbid there would actually be real documentation.

        I really miss auto-complete :(

      • by Yvanhoe (564877)
        Or, you know, install it for the editor you use. Dude, this is 2013, there are autocomplete packages for vim, for god's sake.
    • by dgharmon (2564621) on Sunday August 18, 2013 @07:01PM (#44603203) Homepage

      > 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 ..

      • by Anubis IV (1279820) on Sunday August 18, 2013 @11:15PM (#44604537)

        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.

        • by AmiMoJo (196126) *

          The GP's comment makes more sense if you add "... and get off my lawn!" to the end of it.

        • by coolmadsi (823103)

          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.

          Autocomplete is fairly common though. It would be like referencing a specific car when talking about something that is common to all or most cars - "driving using tires, as used on Fords" may as well be "driving using tires, as used on cars".

          • 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 refe

    • 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 presse

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

      Save

      Compile

      There. Your routine is done.

    • To be honest, I find it moronic that parsers don't provide an API for code editors, as well as a transform from syntax trees back into source code. It's quite retarding, the obsession humans have with textual glyphs, and the limitations they accept as programmers.

      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.

      • by exploder (196936)

        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.

      • by X0563511 (793323)

        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?

    • by mwvdlee (775178)

      If you watch the video, you'll notice his is actually using autocomplete and even seems to use voice commands (as far as I can understand them from hearing) specifically for autocomplete.

  • Emacs (Score:5, Funny)

    by captain_dope_pants (842414) on Sunday August 18, 2013 @06:19PM (#44602927)
    Really ? He'd have been better off with VI - everyone knows it stands for Voice Input :p
    • by Immerman (2627577)

      > 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?

      • 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.

    • Re: (Score:2, Flamebait)

      by Arker (91948)

      It actually stands for Venom Incarnate, of course.

      Anyway it's about time someone figure out the key to voice recognition. (I have known it for some time of course but obviously no one listens to me.) Computers have a very difficult time understanding natural human language, but humans dont have any problem at all making up verbal codes which are much more structured and regular, and a computer should have a much easier time understanding those.

    • by hackula (2596247)
      "Computer! Colon Q! Return!"
  • by alen (225700)

    I get some RSI as well sometimes and then I run out to buy some habanero sauce
    It has some chemical that you find in prescription drugs that treat the condition

    • by EdZ (755139)
      So... what? Do you just chug it? Massage it into the affected areas? Inject it? Process it to extract the relevant chemical? Place it in a small shrine to Yog-Sothoth?
      • by PolygamousRanchKid (1290638) on Sunday August 18, 2013 @08:14PM (#44603655)

        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.

      • Re: (Score:2, Informative)

        by Anonymous Coward
        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
  • by Jah-Wren Ryel (80510) on Sunday August 18, 2013 @06:22PM (#44602953)

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

    • Re:You can't win.. (Score:5, Informative)

      by Seumas (6865) on Sunday August 18, 2013 @06:51PM (#44603141)

      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.

      • Re: (Score:2, Funny)

        by Tablizer (95088)

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

    • How long after that will he get carpal tunnel and have to start speaking again?

    • by TheLink (130905)

      Switch to a brain controlled interface. I've long been waiting for a BCI wearable computer. With thought macros etc:
      http://hardware.slashdot.org/comments.pl?sid=3371153&cid=42543331 [slashdot.org]
      http://hardware.slashdot.org/comments.pl?sid=3478821&cid=42956909 [slashdot.org]

      Then we can have virtual telepathy, telekinesis and lots of cool stuff*.

      * subject to **AA/DMCA restrictions.

      • > Switch to a brain controlled interface.

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

        • by TheLink (130905)

          Nah, just replace it and you'll feel like a brand new person.

          Anyway make sure you don't go for cheap knock-off interfaces that can't tell the difference between your brain asleep and your brain awake. Otherwise you might dream about sending "That Message" to "That Someone" and actually do it...

  • Coding != Typing (Score:4, Insightful)

    by JaredOfEuropa (526365) on Sunday August 18, 2013 @06:25PM (#44602973) Journal
    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.
    • by oodaloop (1229816) on Sunday August 18, 2013 @06:39PM (#44603063)

      I do not spend that much time ting, actually.

      You don't say?

    • by drinkypoo (153816)

      Besides the fact that speech-to-text is a decidedly crappy input method in open plan offices

      Know what else is crappy?

    • by Krishnoid (984597) *

      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 tweak

      • Re:Coding != Typing (Score:4, Interesting)

        by buchner.johannes (1139593) on Sunday August 18, 2013 @08:03PM (#44603595) Homepage Journal

        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?

        • So I don't understand why do we need voice recognition software that recognizes English?

          He's got his own sounds for common commands, tabulation, etc, but you still need to be able to give names to and use the names of functions and variables.

  • by Anonymous Coward on Sunday August 18, 2013 @06:27PM (#44602987)

    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.

    • by CastrTroy (595695)
      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 [wikipedia.org] 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.
    • by jeffb (2.718) (1189693) on Sunday August 18, 2013 @10:41PM (#44604389)

      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.

      • by asylumx (881307)
        FYI the men's foot record is 2:03:02 and the men's wheelchair record is 1:18:25 (just supporting parent's statement). I believe the conclusion may be that marathoners who have perfectly working legs would be better off using a wheelchair if their only goal is completion speed.
  • by msobkow (48369) on Sunday August 18, 2013 @06:31PM (#44603003) Homepage Journal

    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...

    • by Kjella (173770)

      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...

      You don't already? Granted it's about 80% cursing with sprinkles of frustration, rage, resignation and prayer so it's not exactly voice recognition I need. I've never felt the need to yell though, by then the urge is usually stronger to throw it out the window.

  • 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.
  • Writing is easy (Score:4, Insightful)

    by rrohbeck (944847) on Sunday August 18, 2013 @06:33PM (#44603021)

    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.

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

    • by xlsior (524145)
      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.
  • Rather than coding more?

    • by gweihir (88907)

      Indeed. Unfortunately that idea is way beyond the understanding of many coders and the reason most code out there is pretty bad.

  • by Required Snark (1702878) on Sunday August 18, 2013 @06:45PM (#44603107)
    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 [wikipedia.org] 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.

    • by n1ywb (555767)

      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.

      I think this point is a red herring. At every job I've ever had I've spent 90% of my time in front of the same workstation. If you can use your preferred input method 90% of the time, how is that purpose defeated by using QWERTY the other 10%?

      • by hibiki_r (649814)

        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 hor

  • John Moschitta were a programmer....
  • by gweihir (88907) on Sunday August 18, 2013 @07:18PM (#44603313)

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

    • by pla (258480) on Sunday August 18, 2013 @07:57PM (#44603561) Journal
      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.
      • by Kjella (173770) on Sunday August 18, 2013 @08:26PM (#44603711) Homepage

        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.

      • by gweihir (88907)

        Same here, but I am a relatively slow typer and with the stuff I am currently doing, I spend a lot more time hashing the ideas out on paper before I start coding them. (It is some intricate data-structure work right at the border of what still can be found in the literature...)

    • by rasmusbr (2186518)

      He was/is a freelancer, so I think it's a pretty safe bet that the majority of his typing was not code. Emails, specifications, documentation, planning, accounting, correspondence with tax authorities and so on and so fourth. These things don't write themselves.

    • by gutnor (872759)

      It is on other devices like a tablet.

      Now, I'm not saying it is a good idea to develop on a tablet nowadays. But then consumer grade stuff have a tendency to invade the professional world, so it may be forced upon us at some point.

      • by gweihir (88907)

        Not on me. I will not get a tablet and I only have a smart-phone because I need calendar access for work. And should it ever break, I will replace my excellent Cherry G80-3000 with another one of these.

  • by Tablizer (95088) on Sunday August 18, 2013 @07:40PM (#44603441) Homepage Journal

    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."

  • So, as long as he makes sure the VTT software understands "tab" he'll be golden...

  • I code in Malbolge!

  • Not shocking (Score:4, Interesting)

    by quantaman (517394) on Sunday August 18, 2013 @08:26PM (#44603719)

    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.

    • by doti (966971)

      How about a programming language created with speech in mind? It should be even more efficient.

  • The bottleneck in coding is solving the problem, and debugging issues in your code. Code rapidly written is more likely to have errors because you have not had as much time to think about what you are writing. Coding is not like writing a book.

  • As if cubicles weren't annoying enough already.....

  • Here is a video of someone trying to use speech recognition to write a Perl script - http://www.youtube.com/watch?v=KyLqUf4cdwc [youtube.com]
  • by ebno-10db (1459097) on Sunday August 18, 2013 @09:54PM (#44604213)

    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.

  • 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.

    • by LoRdTAW (99712)

      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."

      You shouldn't have a problem with GPIB since that relies on calls to a GPIB lib for your host adapter and also knowing the GPIB command set for your scope. GPIB is ancient but well documented and well supported in most popular operating systems and programming languages.

  • Could this Help Richard Stallman? I know he is a very gifted programmer but he unfortunately isn't able to type due to injury. If he could use this to program directly again it could be a massive boost to Free Software Foundation project development.
  • I tried Dragon Unnaturally Speaking years ago and came to the conclusion that it is only usable with a lot of training. Guttoral sounds and clicks also work better than words. So yeah, quite a crappy system.
  • Instead of English words for commands he used short vocalizations — you have to hear it to believe it.

    No I don't. I can easily believe it already. Why would you think I'd have trouble with this?

  • The video demonstrates that it actually works. He's added about 2000 invented words to the vocabulary, most of which are either shortcuts for strings or navigational commands. This might be useful for doing technical work on smartphones, where typing sucks.

    One area where this has potential is 3D animation and engineering software. There, you're constantly going back and forth between pointing at geometry and other input. There are various ways to do this, but voice input hasn't been used effectively yet.

  • Did someone point out this had not happend if he had used vi/vim in the first place instead of the evil emacs?

  • by whitroth (9367) <whitroth@nOSpAm.5-cent.us> on Monday August 19, 2013 @12:32PM (#44608433) Homepage

    ... 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

If you think the system is working, ask someone who's waiting for a prompt.

Working...