| > They are a $700B company. But many of their customers aren't. Lot of them have no budget (or will) for complete rewrite. And if you force them (or just make them believe you may do it) they will complain and it means bad press, in a very competitive market. It may not be something Apple can afford. > What if they just 'did it right' You can't "did it right" without support of large amount of users, regardless of the money. The definition of "right" in programming languages is "works for users". And to get users onboard, you have make sacrifices. > A lot of people want to make apps for iPhone and ObjC is not in their vocab. And even more has existing apps to maintain. Tradeoffs have to be made. > great docs, examples that are clear and well marked in terms of versions, all new APIs for Swift, left in beta for longer, and made mostly backwards compatible changes All those things will come. If you want them, wait for them. Being early adopter has its cons. |
I don't mean they should force people onto Swift. I mean that Swift, should be totally independent of ObjC, so that customers, if they choose to use it are not dependent on it.
Also - Apple could feasibly provide a 'lib/bridge' - just as Android can use C++ code as well, if you want to use it.
I think Apple could surely commit to keeping ObjC around for quite some time - maybe 4 years official support, and then maybe 8 years on the devices, but with no more documentation/support.
"All those things will come. If you want them, wait for them."
I don't agree - this is 'doing it wrong'. It's been out for years. This is way past 'early adoption'.
'Doing it right' means that it is easy for new and old developers. Right now - it's hard.
Doing Swift 'right':
1) Make Swift a clean break, get rid of some of the more obscure things that make it difficult. Get rid of relationship to ObjC.
2) Detailed docs, tons of examples. Examples for every single class, every single attribute. 100% of functionality should be 'explainable by example'.
3) Beta for 1 year, then production.
4) No backwards-incompatible changes after out of beta. (Easier said than done).
5) Docs, examples etc that clearly demarcate versioning.
6) Tons of support on Stack Exchange: dedicated staff to simply monitoring, answering, clarifying issues just on Stack Exchange.
7) 'Free Support and Training' for anyone who wants it and who can make it to a major city, i.e. NYC Jan 1-5 or 'weekend course' for anyone who registers. Free. Once every few months. At least 100 Engineers just doing training, and going into dev/studios companies to help them with stuff.
8) Free online courses, for newbs, and those coming from other languages, and Objc.
They made Swift a little too complicated, and left devs hanging in the dark on so many issues.