5 ms·
Porting from Windows to Mac isn't easy
- ryanpetrich 16y agoCross platform development is difficult. No way around that.
- rbanffy 16y agoNot necessarily. You just have to plan for it. You will, of course, have some duplication - unless your cross platform means "Linux and BSD", your user interface code will be very different. You will have also to map all the platform dependent parts and prepare to cut your application along those lines. It's more work, but, in the end, your app will probably have a better design than if you targeted a single platform. The better design will show when you have to upgrade it or to add another platform to the mix.
- Locke1689 16y agoCross graphics-API (D3D to OGL) development is especially difficult.
- stcredzero 16y agoUse Squeak Smalltalk. Your program runs bit-identically across over 40 platforms. Done. Cross platform is easy. Cross-platform with native look & feel - that's hard.
- thought_alarm 16y agoOr Java. Or QT. Either way, you end up with something that works terribly on all platforms.
- stcredzero 16y agoNope. Squeak Smalltalk works great across just about everything. (I assume you can work out the implications of "bit identical.") The UI is quite distinctly non-native on all of them though. Java can't hold a candle to Smalltalk for cross-platform.
- GeneralMaximus 16y ago> The UI is quite distinctly non-native on all of them though. ... which is what really matters to the end user.
- stcredzero 16y agoYou get no argument from me there. What about browser based apps? Those have a different set of user expectations. XUL desktop apps, anyone?
- GeneralMaximus 16y agoI'm not bashing Squeak here. I know it's a nice development environment. Problem is, people usually judge applications by their UIs. Look at it this way: a desktop application is supposed to complement the features your OS already ships with. An application that doesn't feel like it's a part of the OS confuses people. Heck, I'd say any app that doesn't follow native UI conventions is disrespecting the user, especially if it's a paid app. On non-Windows platforms, XUL apps suck. Period. As for webapps, I don't think anyone expects them to look native. The rules don't apply inside that browser window :p
- datasink 16y agoI'm surprised not to see this in other comments, but RealBASIC is surprisingly awesome for cross-platform application development. It certainly has its limitations (BASIC), but you can crank out Linux, Windows, and Mac executables with nearly no OS-specific code. The enterprise license is $1000, but it was worth it for my company.
- angelbob 16y agoIt's nice to see the occasional reminder of this, among all the Web 2.0-ness around here :-) A lot of apps still need to run in the Dark Ages that are desktop development, Balkanization and all.
- tibbon 16y agoThis was also a major learning experience for me. I've mainly worked in Web 2.0-only companies that wouldn't dream of writing a desktop application. Everything is incredibly different from my PoV and many staples of modern web writing (functional tests, agile methodology, etc) can't be assumed in a desktop environment. I also had to get used to having less data about how our consumers use our product. I'm used to being able to ninja through apache logs and Google Analytics to figure stuff out, but our data is much more limited from our analytics package. Finally, finding killer developers to do desktop stuff is much harder than finding a Ruby or Python programmer. You're looking for people with specific expertise with somewhat strange problems that your average web programmer just isn't suited to handle such as memory leaks (I say this as someone who can hack in Ruby but I fail miserably at any desktop programming).
- bad_user 16y ago> (functional tests, agile methodology, etc) can't be assumed in a desktop environment. Why not? > You're looking for people with specific expertise with somewhat strange problems that your average web programmer just isn't suited to handle such as memory leaks There are many apps out there that are suitable to be desktop programs. That specific expertise you're talking about is probably being unafraid to do stuff people want, instead of just another Twitter clone. > I say this as someone who can hack in Ruby The term "hack" is certainly overused recently. It used to mean something on the borderline of being illegal, or some artful workaround that's done in the interest of cutting corners, or some mindbogglingly experiment (like the Tesla Coil). Not it's just related to meaning plain-old (and boring) programming. I blame the popularity of PG's essays for that ... yeah, we all want to be "hackers".
- albertzeyer 16y agoWell, it can be easy if you use the right tools and frameworks right from the beginning. When you are only using Microsoft specific tools, of course it will take a lot of work. Using Visual Source Safe? Using .Net? Using .Net forms? Using MSVC? (And even now when developing for MacOSX??)
- tibbon 16y agoAbsolutely. This is something we didn't realize from the get-go. A Mac version wasn't in the initial plan until we realized (aka, I came onboard) that we needed one.
- rbanffy 16y agoAnd that's something that really bothers me. In the company I work for, there are web applications that are not even cross-browser. I have to boot into Windows every month or so to do some bureaucratic work on them.
- hammerdr 16y agoI think its a testament to their perseverance and skill that they were able to take such a legacy system and port it to the Mac. They used some pretty cool technologies (Mono, MonoObjC) along the way and solved the problem. This is a really good hack :) Good job to the imvox team! Edit: grammar.
- jmatt 16y agoYeah congratulations to Mono and MonoObjC teams. This is great news for all those other business apps that are currently Windows / .NET only.
- smackfu 16y agoWhat is the right tool for cross platform work? Do any of the frameworks really generate a proper native-feeling OS X application? Or are they just "good enough"?
- bensummers 16y agoThis appears to be a bit slow: http://webcache.googleusercontent.com/search?q=cache:http://imvox.com/blog/2010/05/pc-to-mac-ports-not-an-easy-process/&hl=en&strip=1 http://webcache.googleusercontent.com/search?q=cache:http://... Summary: Using platform specific tools and languages results in lock in. Unsurprisingly. (See also: iPhone OS)
- tibbon 16y agoOUCH. I just checked my processor loads. Load average: 19.24 15.41 17.06 (single CPU on Amazon) Something is wrong. Or HN is a ton more traffic than I expected. Normally sits fairly low. Figuring this out now. Thanks for the heads up. update 1: The problem seems to be our git server (which of course we have running on this EC2 instance as well) is doing a git-pack way too often. Trying to kill or back this off. Tomorrow I'm moving it to another server. update 2: Console-kit-daemon was eating a ton of memory. Git was playing its part, but not the real problem. I also took the time to tune mysql and apache a bit more as to more properly use the CPU/memory. We haven't had a traffic rush like that before. Thank god it wasn't Digg or something like that.
- Yaggo 16y agoQuote from the posting: "But if you make a totally native UI you now have a lack of consistency between products. For games, this is less of an issue, but for a piece of desktop software your users notice either way." Why do you need cross-platform consistency? Most users use either Mac or Windows port, not both. Instead, focus on consistency _inside_ the platform: give the Mac port "macish" look, because that's what typical Mac user wants – elegant, clutter-free UI. For example, Skype for Mac is pretty nice, while Skype for Windows is ugly as hell (from Mac user's point of view, Windows user may disagree).
- tibbon 16y agoYep, and that's what we've done. It was interesting to contrast what we have done (now) with Steam, where they went for pretty much the same look/feel that they've had on the Windows side. They do a pretty good job at it imho, but I'm not a UI person myself.
- protomyth 16y agoI'm of the school that your program should respect the conventions, style, and guidelines of the platform it is running on. Anything else is disrespectful of the user's buying decisions.
- angelbob 16y agoOne reason is so that your internal testers won't have wildly different experiences. It's much easier to verify one UI than several slightly different UIs. This is similar to the cross-platform user experience, but even companies with very few cross-platform users will usually have a testing department, and have to worry about educating them with the product. 2, 3 or more different interfaces will add a lot to the burden of educating new QA folks.
- heresy 16y agoThinking about your having to train your QA people as opposed to improving the experience of paying customers seems like the wrong way to go about it.
- 16y ago
- whyme 16y agoThis is why I write web apps.