I coded c# in my last job. We used mvvm and wpf and msbuild and all that other lovely stuff. I was productive if you counted lines of code. It&#x27;s a terrible language for actually getting things done properly though.<p>I first coded a winforms app using 1.0. It was very nice experience. The OOPfuscated wpf api with its confused mvvm anti-pattern made my life a living hell of high coupling and constant refactoring. Performance and debugging were terrible because of all the dispatching. The rect class alone has 200 members and is the 6th or so down on the inheritance chain. Making your own widgets was a very messy and tricky task.<p>.net also felt like a second class citizen on its native windows (8.1 was last time I touched it). Had to fall back on win32, incomplete comparability layers, deprecated apis, weekend hobby projects that are incomplete.. Yuck!