>lots of the localisation shit.
string encoding, dates, and number parsing are a gigantic pain in general. localization should always be explicit, and never vary depending on context, unless it's specifically configured by the user (ie. the programmer).
differently encoded strings should have different types, even if the underlying data type is the same. if you have a utf-8 string or an ASCII string, they should be different types entirely.
dates should always be utc, timezones should be a separate data item that can be paired with a utc date. date localization should only be done when presenting dates to users. database apis should explode if you try to store a non utc date.
number input, and more generally, formatted input should be a solved problem. surprisingly, it is extremely cumbersome to do even a simple money input field in Android, for example. good luck wiritng 400 nested adapters and 100 listeners, with 50 filters attached if you want something like a formatted credit card input.
number output, as dates, should be explicitly localized always.
c# is awesome in general, especially with all the linq stuff and async/await stuff is also really nice. if you're on .net, F# interoperability sounds pretty cool. haven't used F# before though. it's a shame unity doesn't support F#..