XCode or the Highway? (a Prediction)

Discussion in 'Mac Programming' started by Les Kern, Oct 23, 2010.

  1. Les Kern macrumors 68040

    Les Kern

    Apr 26, 2002
    I think we are seeing the beginning of a whole shift in app/computer relationships with Apple, and the eventual demise of tools like RealStudio. With the melding of iOS and the MacOS starting with 10.7, I'm thinking that the future will be all app store. Okay, maybe not right away, but I'd be willing to bet that Apple sees what's happening with the current iTunes and App store and said "Hey, I want 30% of all those apps people buy.". Maybe they'd cut deals with the big boys like Adobe, but I can honestly see this happening within, say, 3-4 years?
    Hints made me realize this shift might just come to be. With the dropping of Flash and most recently the announcement Apple will not continue development of Java but instead "rely" on Sun, it seems to me this is a reasonable assumption. They seem to be poised to easily close up the platform permanently.
    If developers want a piece of the pie Apple is baking up, then hop in the oven. If not, there are still mostly Windows computers out there. Pop Tarts, sure, but they are edible.

    I use Real Studio. And before you snicker, know that it's been very good to me and my bank account. My point is that within a few years Apple will move more toward controlled apps and the cloud. Casual and smaller shops will have to adapt or die.
  2. Bernard SG macrumors 65816

    Bernard SG

    Jul 3, 2010
    I think you're right about the shift, but wrong about the lockdown. Apple has worked its ass off , including moving from PowerPC to Intel, to get the UNIX certification and become a truly open platform. They're not going to do the reverse move.
    The marginalizing of non-Xcode development is going to happen by "natural selection", not by a forced hand imposed by Apple.
    But Apple will always leave some room for very specialized usage. They're very committed in their effort to woo universities and researchers.
  3. Les Kern thread starter macrumors 68040

    Les Kern

    Apr 26, 2002

    But Apple is already forcing it's hand... I am just taking the most logical path. "Natural Selection" is initiated by an event that requires one change or die, and the people doing the changing is Apple, not the dev tools. Right now it's no Flash or 3rd party code for iOS. Tomorrow it's no Java, next year it's a few other plug-ins going bye-bye....

    I can see the day when it's all app store for the Mac, just like it is for the iPad/iPhone.
    It will be gradual and take years, but the odds look excellent to me right now.
  4. HiRez macrumors 603


    Jan 6, 2004
    Western US
    I think Bernard is right about natural selection, not just for Xcode, but for distribution. The app store is going to prove so popular with consumers that they will not have to ban other means of distribution. For most small to medium sized developers it's a good deal to be freed of all the headaches that the app store alleviates. But a few big developers that have the resources, primarily Microsoft and Adobe and Autodesk, and will want to do it themselves and will refuse to distribute througgh the app store, and Apple cannot affair to shut them out. There will be a few medium sized devs who will have a hard decision to make, maybe Bare Bones, Omni, Amoeba, and the like.
  5. dejo Moderator


    Staff Member

    Sep 2, 2004
    The Centennial State
    What are you talking about? Apple recently eased the restrictions regarding 3rd party code.
  6. Les Kern thread starter macrumors 68040

    Les Kern

    Apr 26, 2002
  7. mags631 Guest

    Mar 6, 2007
    I personally find a Mac OS X App Store to be a potential benefit as a "proven" distribution channel for apps.

    That being said, I understand if one connects the "right" dots, it might seem like Apple is going to lock down the platform and force devs to do it Apple's way or no way. This is as likely as Apple only allowing music to be played through iTunes -- which it does not, obviously.

    So, we can wring the hands and gnash the teeth and be generally miserable until we know more (and all bets are that such hand-wring and teeth-gnashing will be for not), or we can happily continue to develop our apps and hope that the App Store will actually increase the potential reward of our hard work (assuming you are commercial dev).
  8. Bernard SG macrumors 65816

    Bernard SG

    Jul 3, 2010
    The natural selection has already been in progress long before the Mac App Store Idea was launched.
    Honestly, when I have a choice between two apps with comparable functionality, but one of them being fully Xcode and the other being one of those ports with a GUI that don't behave the way I expect on a Mac, I'll pick the first one any day, even if it had some missing features that I can live without.
    The fact developers do the effort to use Xcode and follow the Apple Human Interface Guidelines shows that they do care about my choice to use the Mac platform and they respect my expectations in terms of application behavior and user experience. I'm ready to pay the extra bucks for the applications that those people develop.
  9. Les Kern thread starter macrumors 68040

    Les Kern

    Apr 26, 2002
    More hints that our future as developers will change dramatically.

    No hand wringing for me... I just think we need to keep this in mind for the future, and watch the trends.
  10. mrbash macrumors 6502

    Aug 10, 2008
    Les: I know what you mean. My feeling is exactly what you said. The Java move is the same as the Flash move. Apple wants the developer 100% invested in their platform to the exclusion of anything else. That is what the Flash move was about, and that is what the Java move is probably about.

    James Gosling's comment about the Java move is very enlightening. In it he disputes Jobs' assertion that Oracle provides all of the JVMs. They provide it on Windows because MS broke Java compatibility, and they provide it on Linux because no one else supported it (IBM has their Linux JVM but it isn't fully compatible with all distros), but all other platforms, the platform owner provides the JVM.

    I feel that Apple wants to control the development environment so that you are tied to their platform specific tools and cannot port your code elsewhere. My feeling is that Apple starts off with support for open tools and APIs to entice developers into the system, they then start introducing incompatible derivatives until finally they will force developers to use a tool or API that is entirely platform specific. My feeling is that they will do this for the graphics API pretty soon. They will introduce Apple specific extensions to OpenGL, and then create their own graphics API and then drop OpenGL drivers altogether.

    I also predict that in a year or two, all apps from the desktop APP store will be 'signed' apps. Everyone knows what happens after that.
  11. JustSomeDude macrumors regular

    Apr 10, 2010
    I think that proves that Oracle should provide the JVM (although, I think it is crappy that Apple just dropped this surprise on everybody without more time to prepare.) MS only provided the JVM because they saw it as a threat and wanted to control it. This, or late or bad updates, can always be an issue with the platform owner providing the JVM.

    Additionally, doesn't windows and Linux constitute the vast majority of platforms that Java will be run on anyway? It would only make sense that the other platforms have to provide their own JVM, because nobody else sees it as worthwhile as developing and providing support for.
  12. mrbash macrumors 6502

    Aug 10, 2008
    Not Windows. Maybe a growing number of apps are running on Linux, but I think the majority is still Solaris, HPUX and AIX.

    I believe that the platform owner generally does a better job of writing the runtime than Sun/Oracle. Microsoft had an excellent JVM that ran impressively fast. Even IBM's Blackdown JVM had better performance on Linux when it was available. The platform owner would likely have the ability to access performance features not available to outside organizations.

    A lot of people here are only thinking about this from a consumer perspective. And while understandable it misses the point. Companies make serious investments in a platform. Whether it is the hardware to run some software, or in software to run on some hardware.

    It could be the life of a company that the Java platform is available on OSX. Or it could be that a company just bought a bunch of Macs as PC replacements only to find out that their internal apps no longer will work.

    On a personal note, I just bought a new iMac on the expectation that I would develop some commercial apps. Now I don't know what will happen. Sure I could run VMWare fusion or BootCamp but what's the point? I could have bought a PC and not have to worry. For me, if Java isn't available and in sync with other platforms, the Mac is useless.

    What angers me about this is the totally careless manner this announcement was made. A responsible company would have first made alternative arrangements before deprecating support for Java.
  13. firewood macrumors 604

    Jul 29, 2003
    Silicon Valley
    Apple can't completely lock down their Mac platform as long as it competes with Windows PCs from a minority market share position, and Windows isn't locked down. (And if both Apple and MS lock down their platforms, it may finally be the year that Linux on the desktop actually goes somewhere, unless both Intel and AMD stop making chips that can run Linux.)

    What Apple can do is make it so that MacOS can be tightly locked down in Enterprise deployments, and so that the typical consumer customer can find all the apps that they think they want in the App store, and so never ever even bother to look to find or install an app from anywhere else but Apple's App store. Which covers the vast bulk of app shoppers.

    Sort of like what happened to many of the small retail shops when Walmart and the other big box retailers moved into town. A lot of generic businesses dried up. But there are still a few small shops (ethnic grocers, etc.) around on the outskirts of town, and some really expensive boutiques on the streets where Lamborghini's park.

    That type of specialty business (Pro audio, etc.) probably won't get locked away.
  14. iSee macrumors 68040


    Oct 25, 2004
    I don't think Apple will close Mac development.

    Dropping distribution of Flash player and development of Java runtimes make business sense for Apple. Closing Macs does not.

    They're competing against a long-standing, completely open market: Widows, linux, Mac OS <= at least 10.6. If 10.7 won't let you run apps you didn't buy from the Mac store, not too many people would even upgrade.

    That's very different than the smart phone app market before they entered. Phone platforms were often even more closed than the iOS, app stores were small & expensive, distribution/installation was problematical, app selection was poor and much of what did exist sucked.

    If Apple does it right (not sure at this point), the Mac store will become the #1 consumer software store. But it won't wipe out alternate distribution channels.

    OP, if I were you, I'd be posting on the RealStudio boards and sending emails to ReasStudio to make sure they give you a way to make appss that can be sold though the Apple Mac store. It should be possible. It might be ready to go already. I know very little about RealStudio -- I used it bit years ago to do some maintenance on an existing utility -- but I do remember that it was capable of generating a stand-alone app.
  15. Bernard SG macrumors 65816

    Bernard SG

    Jul 3, 2010
    In my view, Companies should primarily think about everything from a consumer's perspective. And there is something seriously wrong about a software company that is reliant on a single programming language... Practically, anyway, I don't think there are such companies. It doesn't take that much time for trained software engineers to learn and become proficient in a new language.

    Non-web based commercial applications developed in Java are not particularly trendy these days.
    For cross-platform concerns, there are alternative arrangements already: they are called C, C++, Python, Ruby, Perl...
  16. mrbash macrumors 6502

    Aug 10, 2008
    There are generally 3 kinds of customers in software, consumer, SME, and Enterprise. Each have different needs. Generally in the consumer space the unit price is high and the life cycle is short. On the other end, Enterprise, unit price is low but the life cycle of a product is long, and the support is more important.

    I'm not sure what you mean by your last few sentences. I don't know of any company that writes the same piece of software in more than one language. Re-writing software is hugely expensive. I'm not really sure why would say otherwise unless you don't have any software experience. In which case, you are not adding much to this discussion.

    Java based desktop applications are extremely popular these days, just not in the consumer space. Corporations deploy lots of applications internally in Java because they don't have to be re-written for each OS or platform.

    C, and C++ are not cross-platform. You can't simply write code in one platform and hope to run it on another. Let alone re-compile it. If that were the case, it would be trivial to re-compile any Windows app and run it on OSX, or vice-versa.
    Python, Ruby and Perl are all scripts.

    Again, this kind of sounds like you don't have a lot of experience in commercial software, so its easy to think that writing software is easy, and porting to a different language is too. It's not. Most productive software developers will write 15-30 lines of code in a day. The rest of the day is spent making sure what was written works with everything else.

    The dropping of the Java runtime to me is like Apple saying, "We aren't supporting a C runtime any more. Start using our proprietary language or you'll loose access to our APIs".

    As a business you could look at the cost of converting to whatever Apple wants you to use and figure out if it makes sense. But there is no guarantee that Apple won't one day change its mind again without notice.
  17. Bernard SG macrumors 65816

    Bernard SG

    Jul 3, 2010
    Are you suggesting Objective-C is a "proprietary language"?
  18. mrbash macrumors 6502

    Aug 10, 2008
    For all intents and purposes, yes. Much the same as C# can be considered a proprietary language. These languages are not used outside of their, one, original platform.
  19. iDisk macrumors 6502a


    Jan 2, 2010
    Menlo Park, CA
    Old ways are hard to shake loose

    Les Kern, I commend you for starting such a note worthy thread, and your voice of concern is something not to be overlooked.

    Here are my thoughts, and I hope this input will be well received in the thread.

    Apple not to long ago, decided to make a transition from the "Traditional" way users interact and consider what is a "PC". First became the transition from focusing more on a Mobile presence, since that's where the industry was headed in 2002. Many traditional desktop users argued about Apples shift, but we see now that was the right decision. Then came the iPad, again a shift in what a "PC" really is.

    Now Apple throughout the years had to make decisions that seemed very questionable. Example: Dropping the Floopy drive, Adopting FireWire, elimination the optical drive from one of there products, excluding Flash from iOS Devices etc... The industry made roars about Apple doing these things but in the end it turned out to be the right decision.

    Which brings me to your thoughts on XCode. In short, XCode isn't going anywhere, and Apple is trying to become the best company for developers. Trucks are still needed today, despite the popularity of cars. It's going to be the same with XCode, Apple needs the developer community they worked hard to get and keep so they can continue to grow and keep the ecosystem vibrant.

    You have to think beyond the box and notice that Apples decisions are for their community which in turn generates more revenue for them. It's a win-win.

    Excluding Flash is a great thing (Adobe still hasn't quite got their act together with Flash). The Same with Java (Apple sees a shift, and needs to dedicate resources to other technologies more relevant to the Apple ecosystem). Consumers & Developers need to shift with the market, cause more opportunites await. Apple leaves the past the behind to grab the future that's awaiting to be grabbed.

    Great Thread and Discussion, but Not to Worry.

  20. Bernard SG macrumors 65816

    Bernard SG

    Jul 3, 2010
    That is NOT the definition of proprietary.
  21. kingtj macrumors 68020

    Oct 23, 2003
    Brunswick, MD
    Possible work-arounds?

    Coincidentally, I was just chatting with one of my best friends last night about this topic. He's trying to learn Objective-C right now, since he wants to start developing for the iPhone. He said he's found the language VERY frustrating so far though, because it has almost nothing in common with traditional C beyond the fact you use braces in the syntax of both.

    He already knows how to code in multiple languages including Python, Perl, Ruby, and C/C++, but he was upset that Apple was essentially saying "If you want to interface with the UIKit stuff for the iOS devices, you've GOT to do it via Objective C, period."

    I did some searching, and discovered a new project called Objective-X, that looks interesting.


    Basically, it lets you write standard C/C++ type code inside Objective C and takes care of translating it for you. Might turn out to be a godsend for some developers out there, if Apple doesn't do something to prevent using it too!

  22. Bernard SG macrumors 65816

    Bernard SG

    Jul 3, 2010
    Standard C doesn't need to be "translated" in an Obj-C code. Obj-C is a strict superset of C == ANY C Code is valid Obj-C code.
    C++ is a bit more complicated but it is mostly superfluous to "translate" it in Obj-C to develop for Apple's platforms. You just need to "bridge" your C++ code with the Cocoa envelope.

    And frankly, Obj-C is ridiculously straightforward in terms of syntax. The frustrating part is that the frameworks (libraries) are quite voluminous, but they are thoroughly documented.
  23. foidulus macrumors 6502a

    Jan 15, 2007
    Actually the frustrating thing about Cocoa/obj-c is the fact that there are so few frameworks for it, doubly so for those produced outside of Apple. Nowadays the frameworks make or break the language, period. The thing is Apple has been pushing Cocoa/Obj-c for what, almost a decade now and we STILL don't have anything approaching the level of JDBC for Cocoa, let alone advanced frameworks like Hibernate.

    Apple loves to deprecate stuff and then offer nothing as a realistic replacement. Look at the Quicktime libraries, Apple hasn't "deprecated" them officially but it said that they won't be ported to 64 bit. What do we get instead? That joke of a framework called QTKit, the framework Apple has essentially done NOTHING with in 5+ years.

    There are bridges between Cocoa and Ruby and Python but I wouldn't invest anything in them because Apple has shown 0 qualms with just dropping frameworks willy nilly.

    This Java thing was the last straw, we have been burned too many tiimes by Apple, who is supposed to be OUR customer, not the other way around. Apple promotes a framework/language/whatever (QTJava, Java, Carbon etc) then Steve just decides on a whim to withdraw support for that product and leaves us in jeopardy with our customers because WE are the ones responsible for providing them with our product.

    We could develop in Cocoa, but aside from the limitations imposed by the paltry availability of enterprise-level frameworks there, you have the exact same problem. What if Apple decides it's going to drop support for Cocoa? Unlikely but given their past history it wouldn't surprise me. And then we would be even more screwed because at least we can take Java and put it on another platform.

    Steve's favorite game seems to be chicken, but he just doesn't know when to quit.
  24. Bernard SG, Nov 4, 2010
    Last edited: Nov 4, 2010

    Bernard SG macrumors 65816

    Bernard SG

    Jul 3, 2010
    Actually, there are some Cocoa specialists out there that speculate Apple will drop it eventually. However, that was before the launch of the Mac App Store. If the App Store is significantly successful (which I believe), Apple won't be in a position to kill Cocoa in a whim.

    Apple certainly has a problem of Objective-C not having a critical mass right now and their move to exclude Java and Rosetta from the App Store can be read as an attempt to get to that critical mass. The more development will be done on Cocoa/Obj-C, the more specialized frameworks will become available.

    I also suspect that, would Oracle/Sun show some strong commitment to take charge of the JVM for Mac OS X, the App Store restriction will go away. However, I don't hold my breath as far as Oracle itself seems not to be enthusiastically committed to evolve Java in general. Voices in the Java community are pronouncing nothing less than the death of Desktop Java, independently of Apple's choices.

    It's understandable that if Oracle/Sun chooses not to bet for the platform that they own, Apple would rather bet for their own.

    IMO Python and Ruby in Xcode are safe in the foreseeable future as far as they neither create dependency to a third party company nor resort to virtualization in the way of Java.
  25. mrbash macrumors 6502

    Aug 10, 2008
    I'm not sure where you are getting this "voices in the Java community", or if you are working off "gut" feelings. Oracle has publicly stated support for Desktop Java, and made commitments to JavaFX and produced roadmaps for desktop features. And unlike Apple, Oracle does keep its commitment to developers.

    I'm guessing you don't have much experience with Oracle, but significant portions of their database is written in Java. Their desktop administration suite is entirely written in Java (so that they don't have to write it natively for every platform). Almost every product that Oracle sells ( WebLogic, PeopleSoft) have significant Java dependencies, if not entirely dependant on Java.

    That said, I'm not sure if Oracle would want to produce their own Java runtime for OSX. Apple just isn't a reliable partner. They tend to depreciate APIs whenever it suits them, regardless of past commitments. Anyone remember Apple's commitment to 64-bit Carbon?

    You know what? I can still run MFC apps written from '92 on a Windows 7 PC. I can still run Java 1.0 binaries on any certified JVM.

Share This Page