I bumped into Troy Miles (@therockncoder) at a McDonalds prior to a user group. I've known Troy from several years; he has a *ton* of experience in mobile development and works for Cox Automotive (owners of Kelley Blue Book and Autotrader). He's usually carrying around several mobile devices and has done web, native, and hybrid development. If I have a question about mobile development, he's my first stop. Plus, he's also a really awesome guy.
I brought up Xamarin since it was in the news recently. And Troy said something unexpected:
"Does anyone like using Xamarin?"The reason this surprised me is that I've heard an overwhelmingly positive response from developers talking about Xamarin.
Here I was talking to someone I'd known for several years and share a lot of the same ideas about approaches to coding, and yet, we had completely opposite views on this subject.So this made me curious, and I asked him why the folks he's talked to don't like it. And it turned out that we traveled in circles that had opposite views of the product.
Disclaimer: neither Troy nor I use Xamarin, so we're not qualified to give our own opinions on the product. This is just the impression we've received from other developers.
My circle includes primarily .NET developers. The response that I've seen regarding Xamarin is very positive. Developers who love C# see the tool as an opportunity to get their code onto other devices (iOS and Android) while using a familiar environment.
Native Mobile Developers
Troy's circle includes primarily mobile developers -- specifically developers who are experienced at native development. The response that Troy's seen regarding Xamarin is mostly negative. Developers who are used to programming directly for the device see the tool as a layer of abstraction that gets in the way and takes away the fine-grained control.
This reinforces the importance of getting other perspectives. We all have different experiences that affect how we see the world. And the important part is that once we start sharing them, we can see each other's viewpoints.
I totally understand Troy's perspective. It makes sense that native developers could see things as a step backwards. And Troy understands my perspective. It makes sense that .NET developers could see things as a huge step forward. We both have another viewpoint to take into consideration for future discussions.
The more we talk to other developers who work in different areas and have various backgrounds, the more we'll be able to understand the options that are available to us. And we'll better be able to understand each other. With this in hand, we can come to good decisions -- together.