The Model Driven Software Network

Raise your level of abstraction

Apple's recent change to their licensing terms for the iPhone SDK seems to rule out use of Model-Driven Software Development for iPhones. This seems like a very backwards step to me.

Does anyone targeting iPhones (or mobile devices) care to comment? (anonymously)

Views: 155

Reply to This

Replies to This Discussion

3.3.1 — (...) Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

I think the intention here is really about object code/runtime. Apple expects the source code to compile against the official Apple API, and it should have no reliance on any additional compatibility/translation libraries when running. When a MDD tool generates C/C++/Objective-C code from an abstract model, that is the original code, not the UML model you used to arrive to it. MDD just happens to be the strategy you chose to "originally" write it.

Automatic translation of applications that run on some other concrete platform to the iPhone (as Adobe does) seems to be what Apple is targeting with that clause. People selling MDD tools that advertise cross-platform support for iPhone and other mobile platforms might have a cloud over their heads as well.

But I would say those "writing" original source code for the iPhone using a general-purpose code generation tool and templates targetting the iPhone developed in house should be fine.

It does suck we have even to ask ourselves that question though.

P.S. I currently do not target the iPhone or iPad.
I agree with Rafael. At first sign it seems that only a direct source code development approach is allowed, but reading it again, it has nothing to do with MDSD.

What apple is forbidding is platform middleware (like Flash of course: ActionScript -> Flash Runtime -> API) and eventually JIT compilers (bytecode generators).

I still don't get what Apple has against Adobe...
I agree with the Rafael and Rui point of view.

To my understanding, Apple has forbidden interpreters and runtime JITs allowing to make possible cross-platform execution (aka executing alien code in the iPhone by interpretation or JITing techniques)

It's a bad new for developers and a very bad precedent, IMHO.

Good products like MonoTouch from Novell and CS5 from Adobe are dead ends with this policy.

On the other hand, this is indirectly a good new for MDSD: Direct code generation able to generate Objective-C, C, C++ or Javacript is now the way to go if you are creating multi-device applications and still wants to support the iPhone/iPad platform.

Nevertheless abusive regulations like Apple's licence 3.3.1 are helpful to remind us one of the best values of MDSD: it is possible to keep your models technology independent, and more importarnt: manufacturer independent.

Could it be such kind of manufacturer abuses what it finally convert all of us into MDSD fans? }:)

BTW, read the open letter from JJ Dubray to Steve Jobs on this issue.
"On the other hand, this is indirectly a good new for MDSD"
"one of the best values of MDSD: it is possible to keep your models technology independent"

Yes, Pedro, quite true!
Well, the first sentence seems to be leaving no room for MDD/MDE. If you are asked to produce your source code, it will be fairly easy to spot that it was not originally written in ....

Hi JJ:
If I can show nice Objective-C very well pretty-printed, can anyone argue that the code is not original.

If anyone claims that my code is so consistent that it can not be made by hand, I will argue that I am following strict coding guidelines to improve the readability & the quality of the code. }:)

You will not know if this has already been transformed by a code generator or has been derived manually from a design or some kind of pseudo-code.

At then, fortunalety, most of the software we produce comes from specifications, requirements.
The more formal you are able to catch them, the better!!! I hope that was not the spirit of the prohibition, otherwise, Apple would be forbidding design too. :)
hi all, i agree with you, apple only doesnt want cross compilers or "virtual machines", but our generated code its at last an objective -c code like written in xcode, nobody can see the difference, because there is no difference...

Rui, one of the things apple has with Adobe its that if it runs flash player anyone can play browser games (flash games) without paying to apple...., apple wants to control ...
Unfortunately, this is not how the legal systems work. They will have a "discovery" phase of your practices and it will be easy for them to prove what you do. It is not a question of the quality of your MDD/MDE approach. I believe you. Lawyers can subpoena everything they need to show that you are breaking the EULA. Of course, Apple will not go after you, but after big companies, but ultimately your customers will demand that you comply with Apple's EULA otherwise they will not buy your software.

I don't think Apple will be able to sustain this rule by the time 4.0 ships, but it is important to fight for MDE/MDD. Do not sleep on it with the kind of argument you have or before you know it, MDE/MDD will be prohibited by everyone. Imagine... how could a platform vendor like MDE/MDD?




© 2019   Created by Mark Dalgarno.   Powered by

Badges  |  Report an Issue  |  Terms of Service