I run Xubuntu on a 13" MacBook Air, which is only ~$1100 and does everything I need. For web developers, I feel like the Air is almost the default option. That your budget is so high (“under $1700” would seem to include the vast majority of laptops) suggests you may be doing something that needs serious CPU/GPU performance, in which case our goals are different.
For me, portability was paramount (otherwise why get a laptop?), so I wanted it lightweight and no bigger than 13". Second, I wanted it to have an SSD so it'd be fast. I had read that replacing hard drives with SSDs makes a huge difference in responsiveness and that turns out to be absolutely true. All other specs (CPU, RAM, ...), I didn't care about because I felt confident they would be good enough.
Those goals narrowed it down to either one of the PC ultrabooks (which System76 does not make, unfortunately) or the Air. Out of the PC ultrabooks, the ThinkPad X1 Carbon was the best contender, and w1ntermute's comments in this thread: https://news.ycombinator.com/item?id=4849781 have convinced me that if I were buying a laptop today, I'd probably pick the X1 Carbon over the Air. Either one's great, though, and supports Ubuntu just fine.
In short, it works great. A few very minor annoyances I haven't fixed yet. You can dual boot with OS X using rEFIt: http://refit.sourceforge.net/ You do need to dip into config files just a little bit to get the fans working properly and to make the touchpad not suck.
Jeff Atwood also has one - his review is here: http://www.codinghorror.com/blog/2012/09/the-last-pc-laptop....
Ubuntu is running on it, has some quirks currently, but runs quite well, although I had to remove the splash from the UEFI boot options to have it boot from a USB stick. Without any special power saving options used (like having the dedicated graphics chip turned off) I get between 3 and 4 hours of battery. Once I have time I will try to tweak the Linux a bit to consume less energy, turn a few things off (keyboard backlight, bluetooth, lower screen brightness) , I should be able to get up to 7 hours of battery or so. On text-mode only I might even get more.
The screen is really bright and has nice colors.
Only thing I didn't like was the trackpad, so I'm mostly on keyboard.
You can use a Nexus 10 or iPad with Linode or other VNC software, and a bluetooth keyboard/mouse. It is also possible to rig a tablet with an ethernet connection directly to a host Mac/Linux/Windows device to eliminate any performance issues that a wifi connection might present, although for this to work effectively the device needs a USB 3.0 connection (some newer tablets are sporting this), both for speed and full duplex communication. Android supports IP over USB (even outside of the debugger, but requires some trickery if I remember correctly).
Potential to use satellite connection (if whatever tablet you are buying supports it).
9+ hours of battery life in some cases.
2560x1600 resolution (slightly less for iPad 3).
portability (carrying more pieces)
In general, there are many hacky ways to avoid buying a laptop, and I recommend it because laptops are often over-priced and under-powered.
The Logitech K810 keyboard is reviewing very well, so my plan is to get a Nexus 10 + a K810 as soon as the Android Emacs port matures enough to be useful. Right now it has problems with Tramp and external keyboard handling.
The thing about most development is that it's so bursty. While editing you don't need much CPU, but when you recompile or spin up your stack or run your test suite, more CPU translates directly into less wasted time. And even though laptop CPU's appear to be catching up to desktop CPU's, desktop CPU's are still a lot faster. I highly recommend overclocking, current Intel CPU's have so much margin. Don't be aggressive about overclocking: a single reboot will kill any gains you got from the extra 100%. But modern Intel Desktop CPU's with a K suffix can conservatively overclocked 1GHz or so.
My recommendation: split your $1700 in half, half on a cheap laptop and half on a killer desktop. $850 easily buys a killer desktop if you don't include the cost of a monitor or Windows license. Then use tmux and your editor's equivalent of emacs-tramp on your laptop so you can seemlessly transition from laptop to desktop.
Neither a Nexus 10 or iPad has an IDE which is mission critical for getting anything done e.g. refactor, debugging. Then you have the issue of having to be online to get anything done which with a laptop isn't a requirement. And after all that you still are without the ability to properly take advantage of source control e.g. git local branches.
I personally run my entire stack of Nginx, Java, Redis, ElasticSearch and Cassandra all on my laptop and it works just fine with our without an internet connection.
My suggestion is that if you can't afford a new machine then go on eBay buy a second hand one and put a $99 Samsung 830 SSD in it.
All that said, it really depends on how you personally need to work - there is no one-size-fits-all solution.
Personally, I would never use a tablet to get work done, although I have been thinking of ways to effectively turn them into supplementary monitors (2560x1600 for $400? I'll take it).
The other think, that is a personal preference, is the size of the keyboard and the keys. There are some laptops that have a small size of a key and this is not the best kind for programing. The Lenovo keyboard are one of the best out there (well, in MO, but it's the opinion of a lot Lenovo owners) and you shuld really give it a shot.
I recommend you the series X of Lenovo and the X230 if you want a small but powerful laptop (12.5''). This is the one I'm using and I'm very happy with it. And if you want something bigger take a look at the X1 Carbon. If you buy the SSD and the extra memory in Curcial instead of Lenovo you will save some bucks.
I've been doing all my dev work on here and have been impressed with the snapiness of the processor and SSD.
I'd also give OSX a fair shot if you buy a Macbook Air. Most of your linux tools are available for it.
Basic tools are available, like 'ls' and 'grep'.
Getting anything a little less popular requires what I would term "jumping through hoops," as is the case with many Python dependencies I've encountered. It's especially horrible if the thing needs to be compiled. For a platform where the hardware always conforms to one of a set of fixed profiles, it's bizarre that there isn't a binary package manager for these things.
There are three!
There are countless articles on the internet on which one is better than the other. The summary is that it depends on how closely you want the environment to look like Linux.
I've been using OSX for 3 years now, and I still ssh to a linux box to do date calculations with date
$ date -d "next sun"
$ date -d "+3 years +2 months +3 hours -15 min"
All commands have been installed with the prefix 'g'.
% gdate -d "next sun"
Sun Dec 9 00:00:00 CST 2012
Hope this makes your day.
Alternately getting a 13" Macbook Air + a 27" LCD (Catleap/Yamasaki/Shimian or another Korean flavor) + Apple display connector works beautifully as well, having the options of mobility as well as a good home office screen.
The best bit though is that it doubles as a breakfast tray for those Sunday morning bacon, eggs and coffee.
Would be around $1000 and its a beast. It's powerful enough for everything you will want to do, battery is about 4.5 hours, and it has this NVIDIA Optimus technology that switches between a powerful GT 635 and Intel Ivybridge depending on your graphical needs so battery doesn't drain out that quickly. I play Counter Strike: Global offensive on high res and it works perfectly. 4 different VMs? The SSD handles it. Need to develop 3d stuff on Android? No probs. You'll need Bumblebee (OS project) to handle both GPUs but it's easy as pie to install.
Also its an ultrabook so pretty thin. Not as lightweight as I'd like it to be but still very portable.
My current solution is to boot to Windows and then work in Linux trough a VM. It works, but if I would by a new laptop for Linux today I would try to avoid Optimus.
I'm also looking for a developer laptop. I'm not too thrilled about my experience with OS X and I don't really feel compelled to dig through config files to make basic things like the fan work. Sputnik looks interesting, as it's configured with its own PPA for drivers specific to that machine, meaning that someone else is looking at those config files for your specific setup.
You might be stuck with Ubuntu and have to clean out some "instant cloud" features, though.
I love their keyboards the most, but yeah, resolution isn't something they can be proud of.
Been thinking of getting their new ultrabook, http://www.fmworld.net/fmv/pcpm1210/uh/spec/ (around $1400 USD) but resolution is only 1366×768, the same as the machine I already bought in 2010. And if you look closely, even external monitors via HDMI are limited to 1920×1080 which is just mean.
13" MacBook Air with 2.0GHz i7, 8GB RAM, 256GB SSD, or
13" MacBook Pro Retina, 2.5GHz i5, 8GB RAM, 128GB SSD
Don't worry about the Air's CPU speed, the i7 actually Turbo Boosts to 3.2GHz, vs the Retina i5's 3.1GHz, plus it has an extra 1MB of cache. The choice is basically crazy good display vs larger SSD.
Try using Mac OS X (depending on the type of development you are doing). It can run almost anything Linux can, plus a lot of stuff Linux can't (Netflix, WebEx, MS Office, Photoshop). Don't pretend your laptop is a production environment, it will lead to problems, use Vagrant to run a realistic production environment.
I was crazy enough to buy a v1 MBA. That thing ran so slowly due to overheating it wasn't funny. Now they're the most awesome portable notebook you can buy. :)
The v2 of a 13" rMBP might be the perfect laptop. :)
I have high hopes for the next version, I'm hoping that they can work out the performance issues and at the same time implement retina screens into the actual Macbook Air product line.
I've had one for a few months now and it's been excellent, good keyboard, great Linux support and really good battery life (with the 9-cell battery I can get 8hrs+). It's nice and compact, and pretty darn light, if a little on the thick side.
With 8gb of RAM, 128gb SSD, and a midrange Core i5 it runs about $1200-1300, but you could probably buy the RAM/SSD separately and save a fair amount.
The one weak point is the screen resolution (1366x768), but the screen is IPS and very good quality otherwise.
Your feature checklist should have 8Gigs or more expandable RAM + Excellent display resolution + Battery backup + at least minimum 128GB SSD.
A checkpoint - Most ultrabooks have many many driver issues, esp graphics, so do a research.
Best safe bet is to go with Mac Air 13", they run perfect!
Worth mentioning the huge community of users.
If I were on the market for a dev machine today my choice would be between their UltraLap 430 and Dell's XPS 13.