Among the new APIs available for SharePoint 2010 developers the 2 new most significant ones are LINQ and REST.
While developing server side code, you can now make use of LINQ to query your lists instead of using CAML.
The benefit of using LINQ is clear, working with strong typed objects and cutting down the development effort by a lot.
The problem comes when you are not sure what type of lists you are going to work on, and if you wish to support custom lists created by customers.
Before you can use LINQ on SharePoint you need to create an object that represent that list structure, and once the list changes (the fields you are querying are removed to renamed) you will not be able to use it anymore :(
But - remember, working on the server site with the SPList object is dengerous as well, as all you get are item[field_name] resutls, which is not strongly types and requies many validations to be done!
While working on the client side, you will be able to work using the client side object model (much like the server side, using Site/Web/List instead of SPSite/SPWeb/SPList we have on the server) but still that will not be strongly typed for you.
So, by all means - start learning SharePoint REST syntax and commands...
here are some available commands to get you started:
$metadata – bring all metadata of that object
These commands are accessible under the REST service URL which includes (sometimes) the entity name you wish to run against, like so:
This service URL can be registerd to the client using the standard ASP.NET AJAX way for registring services, and everything is made simple after that!
(If you need more info on ASP.NET AJAX you should definitly check these how-to's by Joe Stagner here: http://www.asp.net/learn/ajax-videos/ and specifically on registring services here: http://www.asp.net/learn/ajax-videos/video-82.aspx)
Well, are you excited as I am to move onto SharePoint 2010 yet? :)