I will respectfully disagree with camerongray.
Here is why. The OP indicates the purchase is for learning and software development. The larger drive space is handy for storing more documents and tutorials,. Especially video tutorials, which consume drive space more than anything.
Video tutorials are almost always streamed online, not downloaded and code takes up very little disk space. Hard drives are easy to upgrade down the line anyway. For programming use, 500gb is way more than enough.
For programming you will get a lot more benefit from a faster CPU, especially since you have stated you are using Eclipse (Which is hardly known for being fast or efficient) and writing in compiled languages.
Of course, if you can get a laptop with both an i5 and a larger hard drive then that's great, but I certainly wouldn't compromise on the CPU for a slightly bigger hard drive.
Also, the touch screen is becoming needed tool. Modern programming is going to be more touch screen stuff for the mass consumer market. Having a touch screen helps test mobile apps on your laptop.
Device emulators have decent ways around not having a touch screen and if you are building mobile apps you would still need to test it on an actual device. Sure a touch screen is nice to have but it certainly is not a "needed tool" for programming.