Friday, June 06, 2008

WWDC bound

Miller, Mabry and I are headed to SF tomorrow, and I’ll be staying through the week for WWDC. I suspect that there will be scads of iPhone developer wannabes1. Me, I’ll be focusing on hardware exception handling, tools support for servicing, and Windows integration. Maybe I’ll find a few highly technical Mac/Unix heads in the Seattle area who want to come work for Silverlight, either with me in the CLR or on the WPF/E team. I really hope, though, that I’ll shake this cold before Monday.
--
1I’d be a iPhone dev wannabe, but the CLR team doesn’t have an ARM JIT compiler, and the .NET Compact Framework, which does, would probably be the most likely product to support a CoreCLR-like piece of software for the device.

3 comments:

Anonymous said...

Why would you want to use .NET to write code for the iPhone, instead of its native language and frameworks? Give them a try, it'd be great to hear your experience with them.

Nathan Herring said...

Personally, if I were targeting the iPhone specifically, I wouldn't use .NET, just like I wouldn't try to use Java or Flash. And, in fact, if I wanted to bring .NET to the platform, there's not really a way to bootstrap other by using another language. There reason I'd want to have it would be enable browsing to web sites with Silverlight content that take advantage of .NET managed code as its automation model rather than JavaScript.

Nathan Herring said...

On the other hand, I fully expect that .NET could be used to great effect as an alternative to its native language and frameworks. The costs to incur are the JIT-compiler and writing a .NET framework to encapsulate the functionality of the native framework. I know of no such plans within Microsoft, though it's entirely possible that the Mono / Moonlight might have them. Then, that said, the vast variety of languages that .NET support would be an excellent reason to write code for the iPhone - one section of your program could be written to be iPhone-specific, and the rest could incorporate platform-agnostic business logic, client-server code, etc.