What are the pros and cons on this?
I am thinking on security, ease of replacement and maintainance, ...
This doesn't work for all cases since it requires a network connection, but I've been doing development/testing in a sandbox domain running entirely on virtual machines. I have two virtual NICs on the dev machine spanning the sandbox and corporate network and sufficient resources to run Visual Studio comfortably. So I just Remote Desktop in to work.
I've been impressed with the experience because I can easily revert to older snapshots if necessary (as I had to do recently when I forgot to turn off automatic updates). As long as source files are checked in, there is nothing on the machine that needs to be persisted.
This doesn't fit all usage scenarios, but for ease of replacement and maintenance it's very good.
Before you consider any other points, first decide if you can justify the increased security risk from laptops.
If employees have laptops they can take home, there is significantly increased risk for either the hardware or data getting stolen or copied. Outside of your corporate network the machines are at a higher risk of infection for virii, spyware, etc. If they connect to the net in a public place they risk sending data in cleartext that should never be seen outside your company. And if the unthinkable happens and a laptop is physically stolen, there is a very small - but very real - chance of the source code to your company's entire code base getting in to the wrong hands.
I don't want to sound like the end of the world here, but letting your data leave the company premises is a major potential risk. There are ways to secure this (forcing data to go through a company VPN, etc), but those will take time and effort from you.
With reasonable laptops going so cheap nowadays, I would suggest that the middle way is the best: a powerful desktop for day-to-day operations and a laptop too for travel, work from home, VPN+RDP to the desktop from anywhere, etc.
This solution has better chances of keeping developers productive and data safe, since a stolen laptop will be less likely to have tons of information on it. Convenience will always erode security -- it is easier to keep everything nicely encrypted (TrueCrypt FTW!) on a side machine, that is not in constant use.
What I always liked about laptops for developers is all you need is an extra monitor to run dual, a huge benefit.
Most laptops come with 5400 RPM drives which just doesn't cut it and increases compiling time, so be mindful of the build. Sure you can lock the laptop down with drive encryption and other things, but they just make the developer whinny and they go out of their way to disable them.
I prefer a desktop for home and a desktop for work. This way, I can have dual monitors running. I know peeps say 'use the notebook display + an external', but that's not big enough / good enough, for me.
Security? Because it's not mobile, it's as secure as the location you work at. if anything, i won't loose it or break it (eg. drop it, etc).
Work from home? sure!! VPN + Remote Desktop to your machine.
Can u work at a cafe? nope :( Care factor though? zero :)
I love the new Macbook pro's and want one bad. But i couldn't do my programming on it because i'm greedy now and need 2x 24" LCD's. I can't go back. I've bitten the apple.
If u don't need 2x LCD's, then i would be all over a macbook pro for everything.
HTH :)
How about using a notebook connected to a big 19+ LCD at the office ? You can get both the comfort of working with big monitor and the ease of carrying your computer anywhere you like.
I used to work with a dell XPS (switched to a macbook pro now) and connect it to a 19" samsung LCD at the office.
I think a high spec'd laptop is the way to go as long as it has a easy docking station when in the office or at home which easily connects to mulitple monitors and external keyboard and mouse.
Pros:
Cons: