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."
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.
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?
"Open parenthetheeth liphth wun too theven clothe parenthetheeth wetun"
Huh, it actually works.
I read TFA and all I got was this lousy cookie
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?
The first demo in the talk is editing lisp.
Pararenthesis parenthesis parenthesis. ... Was that one too much?
http://saveie6.com/
I dunno. I think typing is a lot like a handjob -- all fingers work a lot better than just two.
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
He in the video, around 14 minutes, says he uses this for Elisp - a minute or so later there is LISP among his list of language definition classes.
How long after that will he get carpal tunnel and have to start speaking again?
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.
At 23 minutes: "this works best with very structured languages, such as Lisp."
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.
Use genetic algorithms: spawn mutated or cross-snipped copies via zombied Windows machines, and the best fit after 2k generations is sent to the boss.
Table-ized A.I.
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.
I code in Malbolge!
Have gnu, will travel.
/* 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
Think -> code
int main(pr0n int argc,char pr0n **argv)
...
{
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
Welcome to Slashdot, Mr. Ballmer.
Table-ized A.I.
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
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.
Way waay back I applied for a nNSF grant to create a spoken program recognizer based on very limited vocabulary tokens stored and an acoustic paramtter list to accodmodate variations. It was shot down by one guy who said it can not distinguish between icecream and I scream. It was supposed to be a very limited speech recognition and I had all the software tested privately working about 90% of the time. The other guy called me and asked me to work with him while he was already high in his position. He also wrote" I don't know why this man is wasting him on such research". So, after a very long time it is nice to see some one else is trying this. Using speech recognition and an incremental compiler we can achieve this. But the starting point should the use of a constrained language used in a spread sheet and then proceed to the programming part. Linguistics, Acoustics, speeech analysis, synthesis, statistics and AI with learning capabilities should work well.
I had given on this effort long time back. But just watching the emerging attempts.
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?
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!
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 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.
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.
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.
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?
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.
Agreed, but since I am very smart, I don't think that. Being very smart does, however, allow me to apply a modicum of common sense that you seem to be lacking. I cannot get RSI because I don't use those joints to type. In other words, I don't have RSI because I am smart, and you don't have it because you are lucky. That is the difference.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
I've watched him do it 2-feet-away from me with Clojure, does that count?
I think your conclusion lacks any basis in science or logic.
People who say "sheeple" have about as much sophistication as an AOL user, and in fact are probably actually AOL users.
... 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.
Stop thinking then, since you don't posses the ability to understand either, apparently.
PLONK
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
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.
Okay, tough guy.
Where's your control group? How many data points do you have?
People who say "sheeple" have about as much sophistication as an AOL user, and in fact are probably actually AOL users.
When submitting bugs, I would write example code and name my functions "foo", only so that I sound like Mr. T while coding!
Weird. Back about then I was thinking about using mic and o-scope, taking snapshot, doing lookup from table using best fit. Seemed to make sense to me, but what did I know. And it'd also lend itself to ID. I figured if I had the equipment the actual coding would have been simple enough even I could do it. But that was 8-bit days for micros, life was simpler. (I started down the thought trail by wanting to play a text adventure by voice.)
I just sneezed, and it typed perl.
Table-ized A.I.
Backphaf, backphaf, backphaf...
Having to work for a living is the root of all evil.
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.