Hacker News new | ask | show | jobs
by ianhedoesit 4134 days ago
I can't find an accompanying article or anything for this. I'm curious as to why Microsoft would put something like this out? Why make the comparison in the first place? Why compare it to Swift?

Also, the code at http://aka.ms/scspostercode is nice.

3 comments

They are trying to get you to use Xamarin. See here: https://twitter.com/masters3d/status/571785335702626304
Speaking as someone who loves C# and has tried Xamarin ... it ain't ready for iOS yet. A significant amount of iOS development is done in the Designer and Storyboard, and Xamarin falls well short. The addition of needing to use a mac as a buildhost just makes it inconvenient.

I definitely see it improving in the future (I personally view Xamarin development as a better option for Android than standard Java), but it's not something I would recommend for an actual workplace to use.

> The addition of needing to use a mac as a buildhost just makes it inconvenient.

I agree it's an inconvenience but I find after the initial setup it works quite well. My workflow is to have a Mac Mini under my desk, with a USB extension lead taped beside my keyboard. Then I plug my iPhone in and once I push F5 Visual Studio talks to the build host which talks to my iPhone and builds/deploys/starts debugging and everything "just works".

The biggest impediment to being productive with Xamarin, in my opinion, is that every second release manages to break something.

I would suggest that if you are loading up large storyboards in XCode, then you could be putting yourself in a bad position for a couple of reasons in iOS, let alone trying to make it all come back together using Xamarin.

Storyboards are a decent solutions for certain problems, but if your app ends up as one monolithic or a group of large storyboards, you are going to be structuring and defining things in ways that will have friction with some of your better practices in your C# code.

That's not to say Xamarin "should be a cakewalk, you're doing it wrong." I found pain with dealing with the same area you describe -that back and forth with designs built heavily in storyboard. Not to mention, so many helpful posts on dealing with UI features and quirks seem handled or better handled in plain old NIBs + custom code, etc. Drag and drop layouts with D+D segues are nice, but when the client wants things "just so" I'd end up having to tear things out of the storyboard/designer to get all the things moving and performing well.

The storyboard failed me with AND without Xamarin.

I have completely stopped using Storyboards and Xibs in my last few projects, two of which have been quite large. I find the code so much better for it. So I wouldn't be put off Xamarin because of a lack of Interface Builder.

I am also really loving Swift when you can use it on its own (I.e., without relying on an older Obj-C based library). The strictness of the type system eliminates many runtime bugs.

I avoid storyboard, and interface builder. But my xamarin experience has been pretty impressive. They've mapped the APIs on to c# really well.
What issues do you have with Xamarin's iOS Designer? I actually prefer it to Xcode's.
What are your reasons for preferring Xamarin? I've been meaning to try it out but have not gotten around to it
It inevitably breaks and freezes up in VS2013 (haven't tried VS2012), particularly when defining screen transitions.
Ah, great. Thank you. I still find it a bit odd how they have made the connection, especially with a language that doesn't have that much adoption. But maybe that's why I don't work for Microsoft.
They want people to develop their apps using C#/Xamarin, because that greatly reduces the friction in developing Windows Apps.
Swift may become the new Javascript if Apple plays their cards right.
Based on what exactly?
I think that may backfire as I can see more c# people moving to swift for ios projects.
Why would any C# developer switch to Swift for iOS development when they can already use C# for iOS, Android and Windows development? Especially considering the fact that C# is actually a nicer language and environment to work with than both Swift and Java.

Your suggestion makes no sense to me.

I guess it depends on how they see themselves.

For example I am not a C# developer, rather a developer.

I use whatever technology stack our customers require us to do. I change project almost every year.

So I can imagine some customers would have iOS only projects and in those cases I would try to push for Swift instead of Objective-C.

Most customers would want a solution where code can be shared with ios/android/Mac/PC. Xamarin allows that.
I am not speaking against it, just how I can see it happening.

On my case, enterprise customers actually went with Cordova for mobile multi-platform. On the few projects I took part on.

For my hobby projects so far I went with C++, as they tend to be small multimedia stuff and I don't feel like paying Xamarin for hobby projects I do with months interval and sometimes are left unfinished when life takes over.

So Native UI + C++ (now C++14) suits me better, although the NDK is a big pain to use and quite limited, but at least Windows Phone and iOS are nicer to use.

If I had to do it professionally on my own company, maybe Xamarin would be an option, specially since Qt seems to be way behind Xamarin in terms of device support.

No. It's not only about the language but also about the IDE. Visual Studio is one of the best. Using it with ReSharper is amazing.

And why not setup an iOs project with a portable core project so you could build an Android/Windows phone/other project next to it in the future?

good luck with that.
That was the interesting thing for me when I found it on google. Internal? Pdf title in metadata "SCPoster_RobinReview_v2_print"
Because Swift is perceived as cool and C# is not.
Down vote? That was a legit answer. I'm not saying one is cool or not but that document reads like a contrived C# sell sheet for anyone considering Swift.