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:
- Having fun while coding
- 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:
- 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.) - 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