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."
I'd like to watch him try that with LISP. Though it might work perfectly with COBOL.
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.
Really ? He'd have been better off with VI - everyone knows it stands for Voice Input :p
while (true != false) process_more_stupid_code();
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
So how long until he gets laryngitis and has to start typing again?
When information is power, privacy is freedom.
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...
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.
I have been typing for more than 30 years and I don't have an issue. Why? Because I don't use the traditional typing method, which as it turns out is very bad for your metacarpal joints. I use what I call the "Modified two finger hunt and peck" method (for the space bar use the thumb.) Since I am almost always creating rather than trying to copy what someone else wrote, as was traditionally the case, I can actually type faster than many if not most "conventional" typists, and as I said, with no undue stress on the metacarpal joints.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
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.
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.
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.
thegodmovie.com - watch it
Does his RSI prevent him from using a mouse? How does he cut and paste?
Rather than coding more?
http://michaelsmith.id.au
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?
Pararenthesis parenthesis parenthesis. ... Was that one too much?
http://saveie6.com/
http://www.youtube.com/watch?v=8SkdfdXWYaI&t=9m
> 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
Better to get the computer to do the programming.
How long after that will he get carpal tunnel and have to start speaking again?
You don't already have that in your office?
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
Table-ized A.I.
You can see why he got RSI in the first few minutes of the video. He is using a Macbook Pro attached to three large monitors. First of all Macbooks have the worst fucking keyboards. It is complete and utter victory of form over function. Steve Jobs wanted his machine to look beautiful, who gives a fuck if it is uncomfortable to type on. Secondly look that the absurd height he has placed his monitors. Of course your neck and shoulder muscles will be wrecked working like that day after day.
John Moschitta were a programmer....
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.
The scene with Yori talking in numbers comes to mind.
Think -> code
He was writing in LISP, which has tons of awkward characters, and using Emacs which uses awkward meta-keys where you have to contort your hand. That's a double dose of RSI.
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."
Table-ized A.I.
So, as long as he makes sure the VTT software understands "tab" he'll be golden...
http://www.youtube.com/watch?v=3cnQCk0u49w
Table-ized A.I.
They probably use Macs. :ducks:
I code in Malbolge!
Have gnu, will travel.
Someone make this work on Linux.
/* This function takes in the accounts receivable data and.....hey Jon how's it going?...uh huh....uh huh...yeah well I'm glad you had a good time and... ... phone is .... sec hey! yeah the project's going fine, should be done by tomorrow afternoon. uh huh, well i'll try to get it done in ... i know ... yeah .... yeah ok. ok bye. Jerk. */ ...
Hang on
the
There are more complex programming languages that allow one to produce terse code, such as Perl. However, being able fully read and use Perl requires lots of prior study, and requires lots of mental focus when programming. Programming Java is slower, but is much easier to read and write with only a part time commitment. I suspect that most people that write code are not dedicated, hard core, full time, years of study coders, but people that also do something else, and happen to do some programming. I think that is why the complex, and terse programming languages do not take off, like Java did.
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
https://www.youtube.com/watch?v=MzJ0CytAsec
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.
#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
As if cubicles weren't annoying enough already.....
So - you tear your rotator cuff rock climbing and assume that since you can no longer rock climb that is why you got RSI - couldn't have anything to do with the torn rotator cuff?
Or the INSANE setup with the 3 monitors on that top shelf so he has to constantly crane his neck backwards so he can look up? What ergonomic expert in the world would give that setup a thumbs up? Pair a laptop (so the monitor is too low) with monitors on a shelf where the eye is at the base of each monitor - horrible.
Here is a video of someone trying to use speech recognition to write a Perl script - http://www.youtube.com/watch?v=KyLqUf4cdwc
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.
If you're a programmer and you spend more time typing than thinking, you are probably doing something wrong.
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.
Simon's Rock College
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.
How long after that will he get carpal tunnel and have to start speaking again?
No, that's the beautiful part. When wintertime rolls around, the gorillas simply freeze to death.
What picture were you looking at?
Because the one that I saw looks about the same as my setup: I have an actual keyboard instead of the laptop, but the height of my monitors is about the same distance above the keyboard as his looks. And with my elbows at a 90 degree angle, my eyes are above about 75% of my monitors when I look straight forward.
We conjure the spirits of the computer with our spells?
Everything is faster than using Emacs...
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.
Excuse me, but please get off my Pennisetum Clandestinum, eh!
lope gorble snargs
slap
slap
finkle dongs
goatse
close goatse *command not found*
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?
systemd is Roko's Basilisk.
I notice that I subvocalize my thoughts about what to type next while I'm currently typing. If I have to speak, I can't do that.
Clearly if I had a bad case of RSI like he did, I would give it a shot. Better slow than nothing, right? But right now, I'm quite happy with typing.
For me typing the code is just ancillary to what I'm doing. So I don't get what's the big deal.
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.
It seems dweebish, but then, I never thought the day would come when about half the population would be walking around looking at 3" screens.
... but there is no way in hell that it could be faster than a keyboard.
I do most of my coding in Notepad++ so the closest I come to intellisense is every line automatically getting the indentation of the previous line, and I'd still type any normal code faster than I could grunt out these monosyllables. Anyone working with something slightly more advanced (such as most IDEs in existence) should never consider this an actual alternative to typing.
I can only imagine a full office with people coding by talking..... Might lead to hearing problems in the long run?
my code has no bugs.
Tavis Rudd, developed a bad case of RSI caused by typing lots of code using Emacs
Should have used vi.
[0] Ancient "battle of sudden flame".
Did someone point out this had not happend if he had used vi/vim in the first place instead of the evil emacs?
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
The dude says he used it in a coffee shop. I can just imagine the joy he brought to his fellow patrons.
First, I hope he doesn't try to patent it - Victor Borge pre-dated his idea [non-word vocalizations] by many decades!
Second, instead of RSI, vocal programmers will be complaining about Vegas Throat [http://www.urbandictionary.com/define.php?term=vegas%20throat].
& so it goes...
I'm looking at the one in the video near the beginning. The shelf is above his open MacBook. The top of the monitors are supposed to be at eye level so u don't hav to look up and the neck stays straight. If this works for u great but he claimed that he would get the thumbs up from any ergonomic guru and that is not the case. Ditto for the MacBook because all laptop monitors force you to look down if you are not small
... 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
... since a significant number of programmers are, shall we say, less than proficient typers.
It's a nice use of speech to text, but ultimately the designer is going to run into the same problem the prose writers have hit, the amount of mental effort to synthesize vocalizations. While Rudd might have the mental flexibility to write medium difficulty code verbally, most people are not so intellectually able. So far, all of the FMRI and similar studies do not bode well for executing complex tasks with vocal commands. Prose writing has shown to be universally superior in quality and throughput using some form of keyboard or pen and paper. Attempts at dictation produce sloppy results, especially once the writer gets past the first few paragraphs they already had laid out mentally.
I've been using vi/vim for almost 20 years. I hate emacs. It's a perfectly fine piece of software, it's just not for me.
But I'll come to the defense of emacs on this one. Let's not blame his editing software for his RSI.
http://m.youtube.com/watch?v=6bpIbdZhrzA&desktop_uri=%2Fwatch%3Fv%3D6bpIbdZhrzA
Star Trek transporters are just 3d printers.
When submitting bugs, I would write example code and name my functions "foo", only so that I sound like Mr. T while coding!
I just sneezed, and it typed perl.
Table-ized A.I.
It worked for the aliens in Prometheus, it can work for you too. I'd retire pretty quickly though if I had to blow something to write code.
I haven't thought of anything clever to put here, but then again most of you haven't either.
https://code.google.com/p/dragonfly/