From: Pleos Date: 2007-11-30T13:30:06+09:00 Subject: Would ruby be easy to code in using voice recognition? I was interested in giving ruby a try. I have been coding for years in java and C# and was interested in something new. One problem though is that I code by voice. I generally accomplish this by using macros to create variable names and such. But a huge part of being able to code is the auto completion features associated with IDE's for those languages. For example, I can say "dot five down press enter key" to select a method without using any macros. The problem with using macros is I cannot correct the system when it does something wrong. So if I say "class name this is a class" it will output ThisIsAClass but if it misunderstands me and types out, say, TheseIsAClass, I cannot correct it by saying "correct that" since the macro system is external to the voice recognition software. Normally I can use single English word identifier names in a lot of contexts but usually not for method names. This makes auto completion quite important to me. The other alternative is adding method names to the voice-recognition vocabulary, but this really interrupts your workflow and makes coding less fun. I searched around a little bit and couldn't find environments that could support that for ruby. I understand it is more complicated given it is not statically typed, but I though I would be able to find at least something. So my question is, does anybody know of a reasonable way to get at least some amount of auto completion while developing ruby code? Or, does anybody have any recommendations for other languages that would be fun to try and do have such a feature? For that last one, I should specify why I wanted to move away from Java/C# For Java, I just kept getting annoyed that certain features weren't available or that things were so annoying to code. Features that I am shocked haven't been added are verbatim strings. I use lots of regular expressions and it is incredibly annoying to have to unescape/ escape my expressions to use them in other places. It's also annoying to have to un-escape it in your head when you are reading the code looking for bugs. As for annoyances during development, I wrote http://www.azimux.com using struts a few years ago. At the time this was the most popular way of building Java-based Web applications. I absolutely HATED working with this framework. I enjoyed writing the backend code of the game, but the web interface was like stabbing yourself in the face repeatedly. I got sick of putting redundant information in various Java files and XML files. This completely interrupts my workflow and makes coding not fun. Also, deployment and testing was so slow that it wasted a lot of my time. I looked into coding in JSF for some new projects and still felt like there were little problems I didn't want to deal with. I looked in the frameworks like Seam and they had a lot of cool features but still things I didn't feel like doing. C# on the other hand, I actually like quite a bit. I wrote a few applications for my last job in C# and for windows applications and backend libraries it was pretty fun to code in, but again, I didn't like the way of doing web work. I didn't like the way ASP.NET functioned. Infact, I think I like ASP.NET less than I like JSF (at least the way it's supposed to be used.) One thing I was thinking of doing and am still considering is using the spring.NET framework. This would allow me to use ASP.NET in a way that would be more enjoyable. The other option would be to wait for the Microsoft MVC to come out and see if that would work... BUT I hate using windows as a server. I much prefer to use Linux as my servers. Ever since I had to start coding by voice (due to a neuromuscular disease), I had to use windows for development because there are no decent voice-recognition applications for Linux. This was the main reason I rewrote my game in Java, because of the ease of being able to develop on one platform and deploy to another. Originally my game was written in PHP with a C++ backend (PHP was pretty popular at the time.) I HATED working in PHP, which makes me worried that I would dislike ruby, though the differences make me think I might find ruby quite fun. To be fair, that was php3. C++ was fun to work on in the backend, but I feel that it is unnecessarily complex and so my C++ days are probably done. Also, rewriting classes in both C++ and PHP so that the backend code could pass values to the PHP code was a huge pain in the ass. At anyrate, that should be enough information for you to recommend me an IDE to use with ruby or a new language to play around with. My primary concerns are: 1. Having fun while coding 2. Being able to code somewhat productively using my voice for 80% or more of the code. and some keys about how I'm used to coding are: 1. Java annoys me but I find C# somewhat pleasant. Though, with C#, I don't like using windows as a server, Mono is full of bugs and/or missing features (one of the bugs I reported to the mono project was so trivial that the fact it wasn't reported made me think nobody is using it in a serious manner.) I also do not like the ASP.NET way of doing things and other frameworks for C# seem a little complicated and/ or still mostly under development. There's also fewer interesting projects going on in the open-source C# community (this is an area that java wins is that there's more interesting projects going on using it.) 2. I use autocompletion heavily to reduce the amount I need to type and time I have to spend training my voice recognition. When I spend time training and correcting voice typos in the middle of solving a problem when I'm on a roll makes me want to kill my computer. Thanks for any advice you may have! Miles