It’s subtle because you want to write a bunch of code that performs really well on iOS, so you jump in and start using Metal and Swift. It does well so you think about maybe porting it to Android… and then you decide you can’t be bothered because it means rewriting a whole load of code. May as well just make something new for iOS. Or you port it and then discover that the performance you got on iOS is rather better than the performance you get on Android because you were properly taking advantage of Metal so you designed for it with that in mind.
It is probably worth noting that Microsoft pulled the same feat off back in the early 2000s with Direct3D. Rather than build on an open API and get what they had already got running well, they instead created a proprietary rendering API which also conveniently was the only way to draw on the Xbox. The effects of this on the market today are still ongoing with many AAA desktop titles never even making to to Mac let alone Linux. SteamOS may move some way to mitigating this. Then again it may not.
How many playstation developers complain about lock-in? My guess is statistically none. Likewise for other embedded system. You want to port from iOS to something else. Don’t use swift. Don’t use it anyway there’s no margin in learning a language that’s in beta and without a formal specification. Use metal if you think the extra effort will more than pay for itself, otherwise don’t. What’s the problem?
DirectX is the right direction. Versioned API. Kill it every few years when hardware’s evolved enough and release a new one. If you make a bad choice in version N then you can kill it off in version N+1. These are good things. Backward compat is for end-users…free developers from its burden.
Seriously if you where the head of XBox development would you spend money on supporting OpenGL or some other “alternate” API for any sub-system? What’s the margin in it? You wouldn’t. It would be a waste of resources. If some employee (in their free time) tosses something together you MIGHT release it, but probably not. Wasting support resources on more than one way to do the same thing. Again…no margin in it.
The rule of embedded systems is lean-and-mean, give devs access to anything that isn’t going to change across revisions of a specific device.
Er, quite. Not too many people actually moan about it… they just don’t do the port, or wait some time before they do a port. I do know developers who moan about it though. From our perspective it’s an unnecessary expense, a barrier to platform agnosticism. For platform holders it’s great because it encourages exclusives and increases the exclusivity time somewhat. As head of Xbox, having only Direct3D available on the console was a simply brilliant move. And thusly I think Apple have got it dead right… it’s just not so useful to those of us using Java for example as it’s just one more point of friction (as if using Java wasn’t ironically friction enough these days)
Except you were always going to have to rewrite a whole load of code, Metal or not. Also, Swift bridges to Objective-C, so this notion that it represents this clear choke point at which the “old way” gets cut off, is absurd.
Metal isn’t, and won’t be, the only way to draw in iOS. It will simply be the preferred way to do low-level graphics on devices with the A7 chip. BTW, most people who develop for iOS never touch OpenGL, and most of them will never touch Metal, either. That’s another reason why Metal will not, and cannot really, constitute a choke point for developers. You already have to want to make a graphics-intensive game before using OpenGL or Metal really crosses your mind, and the reality is that most developers aren’t making games that require it. Especially not with Apple’s SpriteKit and countless third-party engines/APIs on the market.
Not all speculation is created equal. Here are a few tidbits that should (but probably won’t) cause you to change your tune.
OSX (Cocoa) and iOS (Cocoa Touch) development are tightly interwoven, to the point where you can often port entire pieces of program functionality from one to the other just by changing the prefix on an object type.
Metal is only for working with the Apple-designed A7 mobile chip.
Apple desktops and laptops use standard components like Intel processors and Nvidia/ATI GPUs.
Knowing these three things, do you honestly believe Apple is poised to deprecate OpenGL? Give it a rest, already. They have their own mobile chip. They claim that OpenGL falls short in terms of allowing developers to harness the full power of the chip. They made an API to help unlock that power. This is all that’s going on here. It’s not some nefarious plot.
You are making it increasingly harder with every post to keep me(us?) from just labeling you as a hardcore Apple fanboy. You’re almost venomously attacking every little bad thing said about Apple in this thread, and not seeing our point at all. We know what Metal is about right now. We’re talking about the future, and basing our information on solid facts and examples of Apple’s past practices.
What metal is right now is not the issue. The speculation is what metal will become. You’re right, all speculation is not created equal, but speculation based on hard actual facts backed up back Apple’s past history is not “Wild speculation from crazy Apple haters”.
Lets face it, Apple is a greedy company who wants to control everything about their platform, they have built up their entire product line on the ideology “If we charge more for it and put it in a pretty shell, uninformed people will assume it must be better”. While doing this, they have systematically attempted to control their platforms with an iron fist under the guise of “ease of use quality software” when it actually just means more money for them because they own the rights to everything and lock people into using their products.
Is Metal bad now? No. Will Metal be good in the future? We’ll see. Depends on if Apple takes a full 180 degree turn around on their marketing/development strategies.
Well, this is a forum for Java programmers. Did you ever imagine that perhaps I’m so fervent in my defense because I know Apple’s not likely to receive much of a defense at all around these parts otherwise? Most of my ire stems from the fact that I can’t stand CS sectarianism (i.e. attaching massive, world-changing implications to the most mundane of developments in the world or computers or programming) in any of its forms. It’s a major pet peeve of mine.
[quote]What metal is right now is not the issue. The speculation is what metal will become. You’re right, all speculation is not created equal, but speculation based on hard actual facts backed up back Apple’s past history is not “Wild speculation from crazy Apple haters”.
[/quote]
What’s more convincing: speculation based on unrelated things Apple has done in the past (actions which, based on our conversation thus far, you’ve chosen to interpret in incredibly biased ways, I might add), or speculation based on the reality of the world right now? It’s a fact that OSX development is a thing, no? It’s a fact that Metal is specifically intended for optimization of Apple’s own in-house A7 chip, no? Then what in the world would make anybody think that OpenGL is on its way out? There still has to be a graphical layer for OSX development. If OpenGL hangs around for OSX, it’s going to hang around for iOS, because both APIs are very much interwoven, with the only major differences being class names much of the time. Do you really find your analysis more convincing? If so, I think that simply reeks of bias.
[quote]Lets face it, Apple is a greedy company who wants to control everything about their platform…
[/quote]
Disagree with the logical connection of the first part, but concur with the latter bit. Yes, Apple wants to control everything about its platform. It always has wanted to do that. But while Apple may be greedy (in the same way that most corporations are greedy), I don’t think their greed is what drives them to control the platform. They could release iOS for use on third-party devices if they really wanted to do some damage. I think a lot of the choices they make actually exchange one kind of success (dominate the world! – which is the Google/Android model, by the way) for another (presenting a consistent, full-package user experience that will hopefully win consumers over organically). Apple, in other words, is playing a long game.
And yet, even as they continue to largely control their ecosystem, they have relented in certain ways. The biggest example was finally ditching the PowerPC platform and moving over to Intel processors several years back. It’s interesting how, as a student of history when it comes to Apple, you never saw fit to include that detail in your brilliant calculus.
[quote]they have built up their entire product line on the ideology “If we charge more for it and put it in a pretty shell, uninformed people will assume it must be better”. While doing this, they have systematically attempted to control their platforms with an iron fist under the guise of “ease of use quality software” when it actually just means more money for them because they own the rights to everything and lock people into using their products.
[/quote]
Again, more easy, predictable bias. Apple has never had the economy of scale benefits that dedicated PC manufacturers enjoy. That’s largely why their machines historically have been more expensive. Moreover, no one has ever had to buy an Apple machine or device. You go right ahead assuming that their entire model is to dupe consumers. Then sit there and call me a fanboy, and I’ll keep laughing at you. If I’m a fanboy, you’re a rabid hater. You’ve got all of the hallmarks, from interpreting events in the least charitable, most biased fashion possible, to assuming, nonsensically, that a gigantic tech corporation’s entire profit model depends entirely on its customers being unable to tell that the computers they sell are objectively worse than those of competitors. You’re playing all the typical anti-Apple cards here.
I’m not going to bother having a flame war with you, but I will end this with; “…and you playing all the typical pro-Apply fanboy cards here.” You’re just thinly veiling it behind the misinterpretation of the information you have been presented.
… by the way . . .this is the part where I tell you I own 2 iPads and 2 iPhones, and use them (well, 1 of each) daily.
So you’re admitting that you’ve fallen prey to Apple’s “If we charge more for it and put it in a pretty shell, uninformed people will assume it must be better” brand ideology? Weren’t the other tablet/smartphone options so much better, and far less expensive?
That’s right. Android wasn’t an option when I was in South Korea at the time.
Some people actually buy them completely aware they’re paying too much. They’re not bad, I never said they were. They’re just way, way overpriced for what you get. I’m sure the $700-and-something I spent on my iPad could have easily bought a Android tablet twice as powerful, same with the Phones.
But thanks for the attempt to derail my credibility with Ad Hominem.
Umm, what? How was Android not available? Hell, the iPhone didn’t even come out in Korea until like 2009 or something. Are you still using an iPhone 3GS you bought 5 years ago?
iPhone 4, and if you want to split hairs, yes Android existed in Korea at the time. But not with the service provider I was with. Then later, since I already owned an iPhone and a mess of apps I bought a iPad to go with it so I could have all my apps on both devices and not juggle Android and Apple apps. Are you done trying to back me in a corner? You’re being kind of a jackass right now trying to pull a Red Herring because you’re just angry we don’t see your point of view. Get back on topic, and quit acting like a child playing “gotcha” and attacking me personally. My facts still stand regardless that I own Apple products. You’re just trying to start a flame war to circumvent the fact a majority of people here disagree with your opinions.
Anyway, I don’t want this topic locked, nor do I want anyone sent to the padded room. So this is the last reply to this derail.
I used reason to form my arguments. You called me a “hardcore fanboy.” And I’m the one who derailed the thread? I believe psychologists call this “projection.”
You’re implying he has no other logical points. More projection.
We’re done.
While there has been some good discussion here, there is also a lot a back-and-forth-yet-going-nowhere “argument” that almost makes me regret starting this thread.
I don’t want anymore bickering or straight up API length measuring contests here or I’ll ask for the thread to be locked.
A good point, but I don’t think the existence of Metal is inconsistent with that view. From what I can tell–and let me know if there’s any information out there that proves me wrong–Metal is not designed to be a standard. Apple isn’t saying “This is how graphics will be done on all mobile devices from here on out!” It’s only for Apple’s A7 chip.
Seriously, this debate went to the garbage when open-source was used as a judgement to uplift Apple’s doings.
It is quite sad, because, like a lot of people on this forum, I respect Apple. They have managed to create a user base that is loyal to their brand rivaling Disney and McDonald’s. What also is silly is that Metal is not inherently bad either, actually, it is just allowing Apple to take the best advantage of its hardware. There is nothing wrong with a company trying to make the best of its hardware.
What sucks is the “after- shock”…
With Metal, Apple can decide that they just will stop supporting OpenGL and deprecate it overtime. Microsoft did it with DirectX. Google tried doing it when it split Java with Dalvik. This is normal practice for companies, and it has nothing to do with any sort of fandom. It is literally business as usual for these companies…
The fight goes on…
Android is growing, and slowly but surely it is gaining a higher market share. But the real tear in its sails is not the fact of a crappy App store. It is the massive amount of device fragmentation. I mean, look at this…
Targeting the right Android build for users is a nightmare for many people programming for these devices. The build to target is literally all over the map, and you can’t guarantee that your app will work for all devices. The features, screen sizes, and default programs vary from phone to phone. Android has to overcome this, and its market value will explode.
The internet has the tendency to speed up actions dramatically, so don’t be surprised if this happens in the next 5 years.