I am currently using Unity2D with c#, and tiled (can assemble tilesets into maps, and then import into Unity with Collision)
I have tried Love, Python, C++, and I am currently settling on C#.
Scripting in Unity is very straight forward, and the engine seems solid, and supports every platform...
I am not sure why some of you are saying unity is not good for 2d, please elighten??