If you are the type to have remorse when a new model is introduced just after you buy, you may want to wait a week or so. The MacBook Pro is due for an upgrade pretty much any day now:
<a href="http://buyersguide.macrumors.com/#Retina_MacBook_Pro" rel="nofollow">http://buyersguide.macrumors.com/#Retina_MacBook_Pro</a>
Rarely will you find the CPU in any of the new Macbook's to be a bottleneck. I have a 2012 Macbook Air that's done it all like a total champ: python web dev, rails web dev, iOS development, scala/akka projects, etc... For a while I was running a full rails stack and Xcode + the simulator to tag-team dev on the client/server. I'm still impressed that this tiny little featherweight computer has been able to keep up with me.<p>Definitely max out the RAM first. AFAIK it's not possible to do that anymore since it's soldered onto the mainboard. I have a (work machine) 15" retina that is a year old with 16GB of RAM that I can't really exhaust. My personal 2012 Air has 8GB and even that is pretty sufficient for most tasks, but these days I'd go 16 in a heartbeat.<p>Processor wise, go with whatever you can in your budget. The chip is pretty much the same whether you go for a lower or higher clockspeed, so there aren't any hidden benefits to the top-of-the-line one. It'll just crunch numbers faster.<p>i5 vs i7 is really dual-core vs quad-core. I wanna say that is physical cores, so in reality you're looking at 4 and 8 logical cores thanks to hyper threading. It really depends on your workload. An i5 will be a little better on your battery, but an i7 will help if you're doing a lot of multithreaded programming.
Prioritise RAM over all else. It is impossible to upgrade later, and more is always better.<p>I would also make sure the SSD is big enough for what you want to hold internally for ~ 3 years - eg I use virtual machines a lot and ended up with an ExpressCard SSD for vm images as my SSD is only 128 gb. On new machines you don't have the ExpressCard option any more so it's buy upfront or get an aftermarket upgrade for the SSD if you want internal (read: portable, fast and and convenient) storage.
I would always spring for the 15". The larger screen is hugely important to productivity. For example, split screen Sublime Text editing or having a browser and editor side by side. That, for me, is one of the most important aspects.<p>Other hardware consideration: faster is always better as is more RAM and a larger SSD. But, obviously, stay within your means. I personally use an i7 2.3 with 16GB of RAM.<p>Edit: If you intend on multi-monitor usage via the thunderbolt/display ports: the nVidia GPU is pretty necessary to push multiple big screens.<p>Last note: the refurbished MBPs are a great deal. You get the full 1-year warranty and a fully tested and clean laptop for a few $100 off the original sticker.
I have a 2 year old 15 inch MacBook Pro (non-retina).<p>I have 16gm of RAM and recently upgraded to a 1TB SSD.<p>I removed the superdrive and added a 750gb hd. (had to, the superdrive port only supports up to SATA II!)<p>It flies. I dont miss not having a retina display, yet :-)<p>I also have an 11 inch MacBook Air, 4gb RAM, 128gb SSD that I use to take places so I dont have to lug the 15 inch around. I can still code etc just takes a bit longer.
It mainly depends on which kind of software development you are doing. Take some time to find your specific needs: are you an user of virtual machines, CPU-heavy compilation processes, storage-expensive technologies...?<p>For basic web development, a (small) RAM and SSD upgrade would probably be enough for the next few years, but you might want to throw more in according to your needs.
Answering the first question - the keyboard... pro's type, a lot. It'd be fantastic if they had decent keyboards... full spherical keycaps and travel. None of this flats and scissors mush... I gots to type brackets and braces for a livin', yo.<p>For the second... depending on your eyes, get the retina display. For most people, its worth it. If you wear coke bottle thick glasses in 2014... maybe not worth it. Fitting more characters onto the screen and having the text rendered ever so properly is lovely for writing code with.<p>If you run VMs, the i7 is handy. Otherwise, the i5's are pretty rocking as is. I always go with multiple power adapters... but you can stock up slowly on sales and ebay if you're not already living la vida macbook.
Easy... maxed out everything. You never know how much power/capacity you're going to need at any given point, so get as much as the machine is capable of.
My list:<p>- i5 or better<p>- 16GB of RAM or bust<p>- SSD, preferably 240GB or bigger<p>I actually prefer the 13 inch over the 15 inch for public/airplane use.