Hacker News new | ask | show | jobs
by magsafe 4073 days ago
I'm a full-time iOS developer and want to share my perspective on this news. The developers who create those amazing apps on iOS are not going to fall for this. I'm one of those developers, who pays very close attention to detail to make pixel perfect apps that I'm proud to put my signature on. I will not accept my brand being introduced on Windows or any other platform using a glorified code generator. If I want to bring an app to Windows, I would learn the platform, go "all in" and make my app as perfect on Windows as it is on iOS. This would require me to dig into all the SDK docs, understand the platform capabilities, learn the native APIs, deal with the challenges of supporting different form factors, and a lot more. There is simply no shortcut to a great app, and a developer who is proud of his app would not release something that a machine generates. A great app is not one that has been thrown together using abstracted APIs and a code generator. A great app is one in which the developer has written and/or analyzed every line of code to maximize the aesthetics and performance on the platform it is running on. Windows' code conversion isn't going to encourage the really good apps to migrate, although it might entice some cheap knockoffs or poorly designed apps to ship an equally poorly designed experience on Windows. So bottomline, I don't expect apps like Instagram to suddenly appear on Windows because of this.

Also, developers don't avoid Windows because it lacked a code conversion tool. If all it involved was learning a new language or porting some code, developers would do it, just like they learned to go from Objective C to Swift, or all the evolution of Cocoa Touch through the years.

Developers avoid Windows for far more complex, intangible reasons that go way beyond a code converter. There are all kinds of perceptions about Windows and Windows users that simply will not change because of this tool. The iOS developers I know will shrug off this announcement, and continue shipping their apps on iOS. I admire Microsoft for overcoming the technical challenges of creating this tool, but sadly they have not overcome the perception and mindset challenges of a dieing platform.

9 comments

> Developers avoid Windows for far more complex, intangible reasons that go way beyond a code converter. There are all kinds of perceptions about Windows and Windows users that simply will not change because of this tool.

More developers use Windows than any other platform. Your entire comment epitomises the cultish bubble that many HN developers seem to live in, completely oblivious to the rest of the world.

They were referring to iOS developers and others who avoid Windows.
This makes me feel old because I've heard this same speech when it was about assembly language:

"A real programmer won't use a high-level language like C or Pascal. A great program is one in which the developer has written every machine code instruction to maximize performance and minimize memory use."

(Btw, Instagram has been natively on Windows Phone for at least a year.)

> "The developers who create those amazing apps on iOS are not going to fall for this. I'm one of those developers"

>"I will not accept my brand being introduced on Windows or any other platform using a glorified code generator"

Good, but there are some big companies that already are doing this and have no problem with apps running on subsystems to allow be in multiple platforms. King, Gameloft, EA and pretty much any dev using already Unity or Unreal is using a similar mechanism to be crossplatform.

This is just democratizing the mechanism so developers who didn't have access to those tools could port their apps more easily.

As a developer working at a smaller shop where software isn't a main focus this is great news. Not everyone is an artisanal software developer, sometimes you've just got to give you users your content and services where they are.

Frankly, your attitude comes off as elitist.

> So bottomline, I don't expect apps like Instagram to suddenly appear on Windows because of this

BTW, Instagram have been on Windows Store since a year ago.

> There are all kinds of perceptions about Windows and Windows users that simply will not change because of this tool.

You come across as an Apple fanboy snob.

With a tin ear no less. It seems that these types of statements focus on a small world vision devoid of a taste for, or experience, within the walls of mid and larger corporate entities whose systems are windows 10x over. Knowing that a massive client like a retailer, financial institution, etc. could put heat on an app developer to bring it to Windows because of the bigger savings that way for the client is big. This isn't about Candy Crush. This is about integrating that app which some business unit loves into the larger IT structure of bigger orgs.

Consumer myopia misses the billions related to "boring" apps that corporations use. Today's keynotes definitely balanced target markets. This wasn't a consumer-only sampling.

Apple devs love money like everyone else, so you should consider the benefits of adding support for WP.

1 - There's a lot less completion in the windows store. 2 - You're bringing fire to cavemen, it doesn't need to be pixel perfect. 3 - The Windows 10 platform has some pretty amazing possibilities, you might want to dip your toe in the water without re-writing your app.

While I agree with your "perception" problem all that has to happen is one article in the WSJ written about an iOS dev who languished in obscurity in the App Store only to find riches in the Windows store. Then the gold rush will begin, just like Facebook apps, iOS apps, and lately Android apps the rush will be driven by outliers.

> I'm a full-time iOS developer and want to share my perspective on this news.

As someone who spent the better part of the last 3 years porting things, I'll share my rebuttal :)

> I will not accept my brand being introduced on Windows or any other platform using a glorified code generator.

That's a rather negative slant on a compatibility layer - one that must exist if you're doing multiplatform dev in a reasonable fashion (i.e. not rewriting the entire application for every platform.) Granted, one you write yourself will likely suit your app's needs better.

> If I want to bring an app to Windows, I would learn the platform, go "all in" and make my app as perfect on Windows as it is on iOS. This would require me to dig into all the SDK docs, understand the platform capabilities, learn the native APIs, deal with the challenges of supporting different form factors, and a lot more.

I have never seen a perfect app in my life. Regardless, even if you want to take this route, having a compatibility layer you can lean on to get things up and running, before you begin to replace the things that aren't up to snuff, can be incredibly useful. I've repeatedly used this kind of technique to good effect - relying on banned APIs for Windows 8 ModernUI apps before replacing said calls with their WinRT equivalents, using slower POSIX I/O APIs on PS4 before replacing them with their faster platform specific equivalents, etc.

The nastiest bit of porting was always the big elephant in the room which I could not (efficiently) handle in this manner - the graphics APIs. Maybe 10-20 kloc of platform specific code, written blindly in the hopes that it would be roughly along the right lines, and that my program would one day link on the new platform.

If I was lucky, I'd be able to recognize bits and pieces of what I'd rendered on my first run. I was frequently not lucky - but a program that can run can be debugged, and so I did.

> A great app is one in which the developer has written and/or analyzed every line of code to maximize the aesthetics and performance on the platform it is running on.

That might work for small mobile apps. The projects I've worked on are simply too big to afford this kind of effort. We would much rather analyze every line of code that matters, and ship within a lifetime. Chances are, a compatibility layer will handle some things which I won't need to replace. One of the things that annoyed me greatly for my windows 8 port, was that so much had to be replaced simply because the older APIs were banned. Plenty of that code would have worked just fine to ship with, otherwise - it felt like busywork. E.g. instead of CopyFile or CopyFileEx, you'd be forced to use CopyFile2 - except the latter was unavailable on Windows 7 and earlier, so we had to keep around both versions for our platform abstraction layer. This got nastier with the OVERLAPPED I/O bits of code...

> Windows' code conversion isn't going to encourage the really good apps to migrate

Simply put, I disagree. Although we agree that it's no panacea - it's quite unlikely to be as simple as Copy, Paste, Build, Profit.

> If all it involved was learning a new language or porting some code, developers would do it

I personally know and regularly have lunch with counterexamples. Developers who insist that the only reason they're not targeting e.g. Android is that they don't want to bother porting some code. Ditto for Windows. They don't think porting some code would have an acceptable return on investment, so they don't bother with it. They already know the languages and APIs involved, too.

> just like they learned to go from Objective C to Swift

They didn't learn to do this. Neither have I - why write platform specific Objective C for my logic, unless I'm actually dealing with platform specific details? The vast majority of my code does not benefit from being platform specific, being instead written in C++, which means the vast majority of my code does not benefit from replacing Objective C with Swift.

Again: There simply isn't an acceptable return on investment. A few horror stories of Swift compiler bugs encountered by early adopters overheard in my local IRC channel helped remind me of the costs of following the latest shiny thing.

> Developers avoid Windows for far more complex, intangible reasons that go way beyond a code converter. There are all kinds of perceptions about Windows and Windows users that simply will not change because of this tool. The iOS developers I know will shrug off this announcement, and continue shipping their apps on iOS. I admire Microsoft for overcoming the technical challenges of creating this tool, but sadly they have not overcome the perception and mindset challenges of a dieing platform.

At least this I can agree with :). The cross-platform developers I know won't shrug, however - and will note that one more barrier making Windows dev not worth it has been, if not eliminated, lowered.

> I will not accept my brand being introduced on Windows or any other platform using a glorified code generator...

Where did you get the idea that this is a glorified code generator?

> Developers avoid Windows for far more complex, intangible reasons...

Maybe mobile developers do, but outside of that there are whole industries that are centered around Windows. I see a lot of workers using Windows on little devices now too. Just yesterday a guy came to my house to inspect our lease return vehicle. When he was done, he whipped out this tiny little laptop with a touch screen that I had to sign with a stylus (which worked perfectly). It was running Windows 8 and that was probably the tenth time I've seen something similar in the past year.

> ...sadly they have not overcome the perception and mindset challenges of a dieing platform.

Bullshit. Windows is better than ever. More people use it than any other desktop OS. There are millions of IT departments around the world that would laugh and laugh and laugh if you suggested that they use OS X or Linux instead of Windows.