• 0

Programming with your voice? Dictation Software or IDE?


Question

Hi,

Believe it or not I actually dictated this post with Dragon NaturallySpeaking. I have been using Dragon for a while now and it's just recently I started to really get into it. The initial versions of Dragon were not that good but whether the software improved or I just got better at it, I'm very impressed with its accuracy nowadays.

Long time ago, I searched on Google how to code by dictating. I saw this video by this guy who was able to code by using his voice. For certain syntax he actually used unique or specific sounds. To a certain extent it's fine but I think our computers are much faster, smarter, and frankly most programming languages are getting lot cleaner day by day.

For example, I find it easier to dictate a Ruby or Python class than a C-language influenced class. Partially because of the requirements for specific syntaxes like the curly braces, parentheses and apostrophes.

Programming really is a set of instructions to carry out a specific operation. For example, if I have a class called Bill, then the equivalent for Bill::getAll(), should be "model Bill, get all". And the dictation software or the IDE being used should be able to convert that to the source code equivalent Bill::getAll().

Using Dragon NaturallySpeaking spelling mode I was able to dictate some of the programming syntaxes without any error or issues. I haven't tested the speed of it but I was wondering if there is any technique I could employ with Dragon to start dictating my codes now or if there is any other software or IDE that does it already?

In the long run I think it will be faster if we dicated something like, “Model bill get all customers, and foreach customer, print first and last names in bold.” And the IDE could generate something like:

$allCustomers = Bill::getAll();

foreach ($allCustomers as $customer)    {
    echo "<strong>{$customer->firstName} {$customer->lastName}</strong>";
}

And coding could… really become poetry :p

6 answers to this question

Recommended Posts

  • 0

This is quite an interesting question. I am keen to see how it works out.

While it may be fine for the example you given, I am not sure how it would work if you are using a framework or working with something that has it own template system like php-BBdr.

  • 0

This is quite an interesting question. I am keen to see how it works out.

While it may be fine for the example you given, I am not sure how it would work if you are using a framework or working with something that has it own template system like php-BBdr.

Voice Programming is still in its Infancy and the whole idea hasn't caught up yet with society. My guess is separate algorithms are required for each programming language or frameworks. Unless, we develop something like Haxe, that'll convert the voice commands to the native programming or framework syntax. Something like that already exists but it's not in plain English. I think it'll be more fun and easy to learn if we use our regular vocabulary rather than learn a whole new speaking language. 

 I am currently working on something that allows me to generate classes, class properties, and instantiate objects. After I have it to a point where I can write a decent program without spending too much time dictating, I will update this post.

Found these two interesting tools to marry voice commands to macros, https://github.com/dictation-toolbox/aenea (mac) and https://github.com/t4ngo/dragonfly. I'm also testing various macro tools and trying to find the best one that will make it easier to create the templates required for programming.

FYI, I dictated this reply in Dragon :)

  • 0

You should choose a programming language that has very high expressiveness. Ruby and Python are good choices but there are potentially better ones if you're ready to learn some new ideas, like Racket, Elm or Haskell. On .NET F# is far more expressive than C# and the equivalent on the JVM is Scala.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.