top | item 5013702

(no title)

rbarooah | 13 years ago

This seems like a long way of saying that you don't like Objective-C because it's not cross platform, and that you've decided instead to write all your mobile code in Lua and to maintain your own abstraction layer onto MacOSX, Linux, Windows, iOS, and Android.

The question I was responding to was simply whether there are compelling reasons for Apple to use Objective-C.

Supporting cross platform native development is clearly not a strategic goal for them.

I think I'd add another reason - which is that they are in control of the evolution of Objective-C.

discuss

order

primitur|13 years ago

I'm really more trying to point out that there is a great way to escape the trap being laid for you by Apple and their plans for Objective-C, which is indeed to keep the language in their own privileged domain.

And it really is important enough that anyone considering learning Objective-C today, or even using it, know that there is a way out of it: roll your own walled garden and plant what you like within it, on any platform you can.

I would be willing to wager a small bet that says that the scripted-VM-glommed-in-a-web-of-libs approach to the Platform wars will become more and more a key survival strategy in software development over the next 2 years.

The OS, and indeed Distributions are dead; long live the new King, VM-managed library bundling..

rbarooah|13 years ago

I'm not sure what you mean by 'keep the language in their own privileged domain' actually means, but I do agree that it is Apple's strategy to invest in Objective-C above other languages on its own platform, and that they have no investment in making a cross-platform framework other than HTML5.

I don't see why you describe Apple's approach as a 'trap'. They are providing a lot of software components that save effort for those who use them. The results are platform specific, but everyone who uses them knows that and chooses to make that tradeoff intentionally.

What you describe as "VM-managed library bundling" sounds a lot like "building your own platform out of open source parts and maintaining a compatibility layer to your target platforms".

That strategy works for a few of the largest most-well resourced projects - e.g. the browsers Firefox, Chrome, Safari, Opera etc, plus the Adobe Suite, and even these draw criticism for the results not being as good as they could be if they focussed on one platform.

Something like this works on the web too - where people assemble a 'platform' out of javascript libraries - because the base platform simply doesn't provide enough.

I don't see it being a viable strategy for a small team or an individual developer trying to build native applications though because of the amount of time you'll spend keeping the compatibility layer up-to-date with the rapidly changing underlying platforms.