A desktop, and not a laptop, is ideal. But if you really need portability, you should look for as large a screen as you can, and a comfortable keyboard. I used the EEE-PC 1000H for a long time, thinking I would just get used to it. But it is always cramped and uncomfortable to use.
Since you're programming, you can skimp on the CPU. Nowadays I use a Dell Inspiron 6400 which is about 5 years old. After I maxed out the memory with a second DIMM, it runs the latest Ubuntu and all of my development tools with absolutely no problems.

