Cross With the Platform 307
Tim Bray tweeted, No platform has hit the big time till it's been flamed by JWZ. He was referring to this rant in which Zawinski systematically dismantles any claim the iPhone has to cross-platform compatibility. "I finally got the iPhone/iPad port [of Dali Clock] working. It was ridiculously difficult, because I refused to fork the MacOS X code base: the desktop and the phone are both supposedly within spitting distance of being the same operating system, so it should be a small matter of ifdefs to have the same app compile as a desktop application and an iPhone application, right? Oh ho ho ho. I think it's safe to say that MacOS is more source-code-compatible with NextStep than the iPhone is with MacOS. ... they got some intern who was completely unfamiliar with the old library to just write a new one from scratch without looking at what already existed. It's 2010, and we're still innovating on how you pass color components around. Seriously?"
Re:Could be worse (Score:5, Informative)
The only valid complaint I see in this whole article is with NSColor/UIColor – NSColor really should be in the Foundation API (common to both Mac OS and iPhone OS), not the AppKit/UIKit APIs.
His OpenGL example is hilarious. "Oh my god, I can't use glBegin and glVertex"... Function calls which have been deprecated in OpenGL since version 2, that was 15 years ago!
As for UIKit being very different from AppKit... Well of course it is! UIKit is for building touch based UIs, if you transfer the exact same things as you have on Mac OS straight over, you end up with a shit mishmash of rubbish. The important thing here is that both APIs share their Foundation API (the basic programmery stuff you need like dictionaries, arrays, strings, etc).
Re:Could be worse (Score:5, Informative)
Function calls which have been deprecated in OpenGL since version 2, that was 15 years ago!
Unless I'm missing something, or you're living in 2020, OpenGL version 2 was released in 2005, and you're 10 years off.
Re:Could be worse (Score:4, Informative)
Re:Could be worse (Score:3, Informative)
The problem with this "explanation" is that the application's effort to use vertex buffers is significantly higher than the effort to use immediate mode.
No, no it's not.
Immediate mode requires at least as many (usually more 3 times more) calls as you have verticies in your model, during which the GPU is wasting time, and the driver is doing complex things to pack data into buffers in graphics memory.
Meanwhile, vertex arrays require a single upload of a constant array to graphics memory, which happens quickly as a single memcpy, and then frees the graphics card to get on with it. After that point, all the CPU need to is yell at the graphics card "now render this".
The *reason* we've moved from immediate mode to vertex attribute arrays is because they're faster and more efficient. Of note, these days, even shader pipelines are more efficient than fixed function ones, because the fixed function pipeline is commonly implemented in the driver as a shader. A shader that is doing a bunch of stuff you don't need it to, along side the stuff you do want to happen.
JWZ is an important figure in the history of (Score:5, Informative)
web (specifically, web browser) development, with Major (capital M) contributions to the mozilla/netscape/firefox ecosystem since before mozilla/firefox existed as projects in their own right (going all the way back to Netscape 1.0), as well as fingers in things like Emacs and popular X applications.
Re:Let's look at what JWZ said... (Score:3, Informative)
JWZ's rants hinges on two points, based on assumptions that are false.
The first being, that iphone OS is (or should be) identical to OS X desktop/cocoa. I've been developing on OS X desktop for about three years, and iphone about a year. Never have I heard the claim (by Apple or anyone else) that the code is portable. It simply is not. In fact, Apple's iphone introductory videos explicitly mention that developers must think differently about a portable device in terms of what kinds of apps are good for portable devices, how the user interacts with it, etc. I do agree with him, that if the libraries are named the same and represent the same technology, they should work identically.
Other people are picking up this idea of source compatibility and running with it, but it's a straw man because Apple never claimed 100% source compatibility.
And second, he assumes OpenGL ES is identical to OpenGL. I think that a reasonable person, when hearing the release of an API specifically for embedded systems, would think there may be some limitations or differences in the new implementation since by definition, embedded systems have limitations and features different from the desktop environment. So he learned that there are API differences. Some people would just move on with this newly found knowledge, while others blog a rant about it.
Much ado about nothing.
Re:JWZ is an important figure in the history of (Score:2, Informative)
Lurk Moar!!
You've never heard of all the cool JWZ screensavers.....uh...ok. Apparently you are new to this.
JWZ didn't need a URL; in the day it was just "about:jwz" and the netscape spinner turned into a compass.
As he mentions in his blog, he sells beer now due to the utter stupidity of all that lurks in computerdom.
He is noteworthy because people do follow him, what he says does matter because this isn't his first slashdotting.
It's a social thing