Should I use getwork or getblocktemplate I am working on an fpga mining device just for fun. I realized that there is a getblocktemplate function which replaces the getwork Json-rpc call. So do I need to switch over to it and change all the code or can I continue using it . Will getwork be removed from bitcoin later or will it still be supported?
The advantage of getblocktemplate is that work units from it last longer, because you can change the extraNonce field. That's nice if you're writing an fpga miner, because it saves bandwidth. 

getwork will probably never go away. It's useful and not very hard to maintain. Note that that's a personal opinion; I'm not one of the Bitcoin developers.

Edit: getwork has been removed in v0.10.0, so you have to use getblocktemplate.