Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I program in Visual Studio 2010, and I find that programming takes a much greater toll on my hands than typing text does. I attribute this to (1) the extensive use of punctuation and other characters away from the home row, and (2) the extensive use of multi-key command such as Ctrl+Shift+B.

So a question in three stages:

  1. What programming language is "easiest" to type? BASIC? COBOL?
  2. What editor/IDE is easiest (from a typing standpoint) for the edit/compile/execute roundtrip (and perhaps debugging)?
  3. Is there a combined solution that's powerful enough to create, say, a web application?

Ideally I'd like to hear about ideas for completely mouse-free solutions, compatible with (say) a one-handed chording keyboard.

share|improve this question

closed as too broad by gnat, MichaelT, GlenH7, durron597, Blrfl Apr 2 at 0:04

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs. If this question can be reworded to fit the rules in the help center, please edit the question.

the easiest to type would have to be whitespace. I mean, you only need 3 keys :P Seriously though, I have to ask what languages you currently use. –  Trezoid May 25 '11 at 0:59
@Trezoid - excellent suggestion! Meet me on GitHub, and we'll start work on the whitespace IDE and web stack. I currently use C# and C++ -- it has occurred to me that ruby and python might be a good direction. –  user26082 May 25 '11 at 1:34
you're obviously joking, but this language actually exists. It's called (of course) Whitespace. –  Rein Henrichs May 25 '11 at 3:31
Put a piece of tape on weird keys. Every time you hit them - blink twice. That will save you from tendinitis and will make your eyes last longer.. –  Job May 25 '11 at 4:30

5 Answers 5

If you are not attached to the QWERTY keyboard, you could consider trying out Colemak or Dvorak layout. Both have ardent users reporting excellent improvements in typing speed and decrease on the strains caused on the hands.

Since you mention an IDE, you might want to consider Vim or Emacs (or any equivalent) where you can make a set of repeated keyboard hits a macro. If you find yourself pressing the down arrow or up arrow many times, you could make a macro to let you press one key and move, say, 3 or 4 lines at a time. I know for sure Emacs can help you do this out of the box. Vim should not be far behind if it is behind. Both are popular for helping users totally avoid mouse usage. Both have a learning curve that easily puts off the faint hearted ones. Those who cross the initial stages keep climbing all the time, but these stages are not as steep.

A combination of one of these IDEs and one of these keyboard layouts can result in lot less strain on your hands, while totally avoiding having to use the mouse. There could be a need to use the modifier keys. But the strain on the hands will be far less to negligible with tremendous improvements in speed.

share|improve this answer
with vim you can type a number followed by the arrow key to jump that number in that direction (line or column) –  Trezoid May 25 '11 at 2:02
I was using that for an example. The key sequence could be anything as wild as key1-key2-key3-key4-key5. And, if this is repeated often, a macro can be made, in Emacs. I don't use Vim that often, so I wouldn't know to make a similar macro there, but I believe it should be possible. –  vpit3833 May 25 '11 at 2:06
As a developer that uses dvorak, I wouldn't necessarily recommend it. While I think it really is amazing for normal typing, it may be worse for many of the commonly used programming characters ();[]{} because that's not what it was designed to to. –  WuHoUnited May 25 '11 at 3:20
I did not know about Dvorak with programming. I have started to use Colemak with programming. So far, having Caps Lock work as Backspace, and four vowels in the home row mean I stretch out hands very less and, when using modifier keys, both my hands are at work, meaning no hand is overloaded with pressing all the keys at the same time. My bad, I assumed similar things might be true in Dvorak too. –  vpit3833 May 25 '11 at 5:36

Either you get weird combo keys or you use the mouse, at least this is the current practical way. I stay mouse free most of the times, this means I buy a great soft touch / ergonomic keyboard + table setting that offers wrist/elbow support.

I have seen people try and program with pianos!, but I personally don't find it practical. And fwiw, I type way faster than I speak or write, so there goes any trick other than mind reading.

share|improve this answer

Get a better keyboard. I use a Kinesis Contoured keyboard, and swap backspace/control and delete/alt, putting control and alt conveniently under my left thumb. No more stretching for those shortcuts. I use Emacs, and Eclipse with the Mulgasoft Emacs+ bindings, so I type a lot of control and alt shortcuts, and have no problems. Without the Kinesis or something similar, I couldn't work.

share|improve this answer

I switched to python from perl several years ago, when RSI was starting to limit me. I didn't switch for that reason, but I found after switching that, when coding in python, I could do 80 hours a week without pain, when in perl I was down to about 20 and in pain.

The difference is in punctuation: Any c-based syntax, with lots of curly braces, parens, and semicolons, is going to keep you roaming around the keyboard, off the home row much of the time. Perl makes that even worse by requiring that you dive for the top row and shift key every time you want to type a variable name.

Python, on the other hand, with its notorious indent-based syntax, is wonderful for staying on the home row. And you can read your own code a year after you write it as well. ;-)

I also swapped the <Enter> and <Caps Lock> keys (using xmodmap, on Linux), and I always put the mouse on the left side of the keyboard. Those two things together balanced the load a lot better between left and right hand. For an editor, I've used vim and vi for decades, which reduces the pointy-clicky activity a great deal. The Windows version of vim is gvim. Vim's not an IDE, unless you start adding any of the optional scripts from vim.org.

share|improve this answer

I'm in agreement with you. Most general-purpose languages are absurdly difficult to type, and it's very disruptive to one's development activities. Here are the causes I perceive (referring in all cases to the typical US 101-key keyboard):

  • C- like languages require the use of Shift to type out a function call, open/close a block, type any Boolean or bitwise operator, etc.

  • Naming conventions seem to have been arrived at without any thought whatsoever given to ease of typing, especiallyInDotNetLanguages.

  • The characters that you might want to use to visually separate words in identifiers (without using a bunch of internal capital letters) all require the use of Shift. You can name a variable whatever_you_want, and it looks a lot better than theWayMostDotNettersDoThings, but you still end up using Shift a lot.

So, in my estimation, the best languages (in this respect) are those that allow this-sort-of-identifier. I think LISP and its ilk do. The obstacle to more widespread adoption seems to be an (infantile, I'd argue) attachment to using the hyphen as a subtraction/negation operator.

I made up my own computer language a couple of years ago (really, it evolved from some assembly language techniques I'd developed), and as a part of this work I tried to take a scientific approach to typing (and to what I'd call human factors in general). I ended up making all of the non-alphanumeric parts of the syntax out of non-Shift-key characters, except for one set of operations that introduce potential concurrency problems. You can find some details here.

share|improve this answer

protected by gnat Mar 31 at 18:58

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?