Slashdot Mirror


Apple and Independent Developers

Corleone writes "We've seen a realization recently that Microsoft isn't standing still with Longhorn, and countering Longhorn has been pushed to the forefront. That is why I found the concept of Apple being the larger danger in Rhapsody in Yellow so ironic. The author skirts the scary question: would Apple porting their frameworks to Linux give them undue influence over the direction of the free operating system movement? This is after recent reports saying missing programs are the biggest thing holding Linux back on the desktop. Macromedia has interest in their tools on Linux, surely many others are too. This would seem to allow thousands of companies a simple path to the Linux market but with Apple as the gateway. If not Apple, what of Microsoft porting their engine?"

20 of 395 comments (clear)

  1. What about GNUstep? by __aavhli5779 · · Score: 5, Informative

    I just perused the majority of that blog entry and...

    No mention of GNUstep?

    GNUstep is a complete reimplementation of the OPENSTEP (i. e. Cocoa) frameworks which works on GNU/Linux, BSD, and several other *NIX platforms... it already provides the portability necessary and an environment to develop apps against that framework for free.

    What it's missing is a few crucial pieces which are slowly starting to fall together:

    1) .NIB compatibility. Apple never released the specs for their NIB (NeXTStep Interface Builder) format in which Cocoa interfaces are saved. Thus GNUstep had to create their own (first .gmodel, and then .gorm), neither of which are compatible with Apple's, which requires developers to reimplement interface files on each platform (trust me, this is a royal pain in the ass). However, a framework called Renaissance, which builds on OS X and GNUstep and allows you to specify your interfaces in XML, is starting to take hold. All it lacks is a graphical interface builder, and word on the grapevine is that such a thing is coming soon.
    2). $$$. GNUstep has no major corporate backer. Most of the people who work on it work on it because they love it. KDE, Gnome, and Mono all have the Novell monstrosity behind them. GNUstep has nothing.
    3). Lack of distributed objects compatibility. See (1)
    4). Outdated interface. The OPENSTEP look is, needless to say, passe. Apple did well redesigning their interface completely. GNUstep still looks like OPENSTEP did 10 years ago. This needs to change.

    If Apple were to throw their weight behind GNUstep ( a tough decision, but an interesting one which could potentially bode well for both Apple and the free software community ) we could have the outcome the author asks for... Apple pushing a disruptive technology based on their own frameworks into free software, and taking hold of the market. Pipe dream? Maybe. But we can dream ;)

    1. Re:What about GNUstep? by Chucker23N · · Score: 5, Informative

      Carbon, however, will never be deployed on other platforms. It's a horrible, messy kludge composed of about 15 years of Macintosh API evolution plus the necessary changes to make it work on OS X. There's nothing about it that's appealing from a "beginning to code for" standpoint... it's just there for transition.

      Except for single applications like QuickTime Player for Windows and iTunes for Windows, which *do* essentially contain large chunks of Carbon.

    2. Re:What about GNUstep? by __aavhli5779 · · Score: 5, Interesting

      Objective-C literally takes about 5 minutes to learn.

      It adds a few keywords to C (it's in the single-digits, I believe) and one syntactic structure.

      The idea that people aren't picking up Objective-C because they don't want to learn another language is preposterous. They're not picking it up because the only complete platform to develop with it is Apple's Cocoa, and that's just not large enough of a platform to be worthwhile to a lot of development houses. Once GNUstep is up to par (in my opinion it already is if you're willing to be a hacker, but that's obviously not true for most) I think exactly that raison-d'etre will be delivered.

    3. Re:What about GNUstep? by jcr · · Score: 5, Insightful

      Objective-C literally takes about 5 minutes to learn.

      Well, I wouldn't go quite that far... When I've presented cocoa intro classes, I've generally covered the basics of Objective-C in a one-hour lecture.

      My experience in learning Objective-C was that it took me about a day to be productive with it, and within a month I was an Obj-C language lawyer. Most people I've seen taking up Obj-C for the first time have a pretty good handle on it in about three days.

      As for GNUStep, I'd say it's a commendable effort, but an unfunded volunteer project is always going to have difficulty tracking an API that a Fortune 500 company has under active development.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    4. Re:What about GNUstep? by putaro · · Score: 5, Interesting

      I don't care how long it takes to learn. The problem isn't the learning curve - it's that nothing else on the planet besides OS X has good support for it. Not only do you wind up with an app tied to the Cocoa UI framework but all of your code is in a language that doesn't have good support on any other platform.


      I just did an app for OS X - we did it in Java/Cocoa. Works fairly well, looks like a good Mac application. And 90% of the code is directly portable to just about any other platform.

  2. linux can learn alot from apple by abandonment · · Score: 5, Interesting

    this is a good thing, not a bad thing.

    seriously, linux is already a larger presence than apple in the market, there are major players that have just entered, and haven't even begun to reach their full capacity (novell in particular) and in general - linux could definitely learn a thing or two from apple, particularly in the interface and ease of use department.

    i don't see how apple could become any more of a threat than it is currently, and if anything, it becomes a powerful marketing force to help promote linux/opensource in general - we want them on our side after all...

  3. Apple frameworks on Linux would be excellent by vijayiyer · · Score: 5, Interesting

    I am looking to write some software for a project of mine. Being a Mac user, I will write a Mac version. Understanding market realities, I will have to write a Windows version. I'd love to have a Linux version which would be a straight recompile, but that's not possible yet. I'm aware of and considering GNUStep, but I really would like a straight recompile. Apple hardware would likely sell itself if it didn't have fewer available software titles, and having excellent cross-platform development tools would result in greater software availability.

  4. Re:Apple by CptChipJew · · Score: 5, Informative

    With OS-X being basically BSD, Their wouldn't be much work to do so.

    Actually, porting iTunes to Linux or BSD would be a horrific experience, as iTunes written in Carbon (Porting that to Linux would be a nightmare).

    --
    Vonal Declosion
  5. And OSS Web Objects to complete the picture. by pschmied · · Score: 5, Informative

    Gnustepweb is a framework that is supposedly compatible with WebObjects.

    The parent post has a really, really good point. GNUStep has oh, so much potential and it's getting close to ready.

    Like it or lump it, Apple has produced the most cohesive *nix environment out there. They've got support from the important corporate software vendors. Vendors want to port to Linux, but damn, the myriad gui toolkits and serious lack of complete frameworks is daunting for commercial entities.

    I know choice is good, but is Cocoa/Aqua that unexpressive to code in? The proliferation of apps for the Mac would seem to point to the contrary. Why must we reinvent the boring stuff (i.e. toolkits and frameworks) over and over? Couldn't we just adopt a proven successful model, run with it, then tweak where needed?

    I just built GNUStep from NetBSD's excellent cross-platform package management/build system, pkgsrc. GNUStep is pretty cool. It's like a slightly primative, somewhat ugly Mac. Other than that, it's very, very similar. It's clear people are starting to write useful apps with it. It's got a finder-like app called GWorkspace. It's got a pretty decent mail application that runs on both MacOS and GNUStep.

    -Peter

  6. Re:Yeah by the_2nd_coming · · Score: 5, Interesting

    Linux, if it wants to gain more share int he desktops, needs to become much more froendly with the Digital cameras, DV cameras, and scaners.

    it then needs high quality photo apps and Video editing apps.

    after that, it needs high quality DVD authoring apps.

    all of these apps need to work together smoothly and there needs to be a workflow the exists between them so you can export from one into the other from each app. oh and fix the GIMP... maybe par it down and use it as a base for the photo application, get a red-eye, touch-up and enhance, plus a few other simple things going. then get the app set up so you can upload to clubphoto and snapfish, etc.

    if you make the consumer applications for making bad home videos, touching up and ordering bad home photos, and collecting music files, all in an nice integrated workflow, then consumers will come.

    --



    I am the Alpha and the Omega-3
  7. Cocoa for Windows exists by goMac2500 · · Score: 5, Interesting

    When OS X originally was announced, it wasn't called OS X at all, it was called Rhapsody. Carbon didn't exist under it, it was pure Cocoa. The plan called for the following 1) Rhapsody for Mac: a full fledged Rhapsody OS for Mac, 2) Rhapsody for x86, a full fledged OS for x86, 3) Yellow Box for Mac OS, a layer to run Cocoa programs under OS 9, and 4) Yellow Box for Windows, a layer to run Cocoa apps under Windows. Sadly Apple morphed Rhapsody into OS X, killing all the other versions except for the Mac version. These days you can still find Rhapsody x86 on some peer to peer servers.

    1. Re:Cocoa for Windows exists by necro2607 · · Score: 5, Interesting

      Indeed, I just recently installed and ran Rhapsody on an x86 system of mine. The networking didn't work properly (due to lack of a proper driver), but it was kind of cool, and I suppose in some way ironic, to have an Apple OS running on an Intel processor... :)

      It was interesting, but it felt kind of awkward with the NeXT influence just kind of thrown in there, because it didn't really fit in with the Mac OS interface.

      You can definitely see how Rhapsody became Mac OS X, as Rhapsody was based upon the Mach kernel just like Rhapsody, and NeXT before it. I think one place where Apple made a large change is when they decided to have the UNIX side further integrated into the Mac OS itself, creating a closer-knit combination of the two, rather than having them so seperate and awkward-feeling as it was with Rhapsody.

      Of course, you can see that many NeXT and Rhapsody elements survived, like the layout of the File Manager which is almost identical in OS X to what was in Rhapsody and NeXT.

      For some screenshots go here or here.

      Also, here's something pretty interesting: screenshots of Mac OS X server before the Aqua GUI was added, still existant on the Apple website!

  8. Re:C'mon now... by Anonymous Coward · · Score: 5, Informative

    I'm tired of hearing all you people whine about Quicktime. Quicktime is a wrapper, it supports many codecs. WHat you're refering to is the Sorenson codec Apple uses for their .Mov files, this is licensed technology. Which means Apple would have to pay for every *nix copy downloaded. I don't see this happening.

    Besides, quicktime has a poor interface currently, and unless you go pro, is annoyance ware.

  9. The biggest problems with Cocoa by coolsoldier · · Score: 5, Insightful

    I develop with Cocoa on OS X, and while it's is remarkably easy to program in once you're used to it, it's more than a little, shall we say, messy.

    The classes contain endless numbers of "convenience" functions that don't really belong where they are. Witness that the STRING class has methods like stringByAppendingPathComponent, and similar other functions that should be in a separate class for paths. Meanwhile, Attributed strings do not respond to any of the standard string methods, although they do respond to methods to do things like load RTF files.

    The problem is that Cocoa is not straightforward enough to be easy to program in without an intimate familiarity with the API. It's just too different from anything else out there. Now that I'm used to programming in it, I can develop an application faster than I ever could with windows APIs, but the learning curve makes it difficult.

    The other thing about Cocoa, which the article doesn't quite get to saying explicitly, is that the design of the API itself actually makes it very difficult to get apps to the mac from other platforms.

    Cocoa is designed to be easy for porting applications to other platforms. But you can't port applications to other platforms because Cocoa isn't available for other platforms. What Apple needs for their existing strategy to work is an API that is easy to port existing programs to. They sort of have this with carbon (hence why most applications that get ported from windows are written using carbon APIs), but they don't take advantage of a lot of features (like system services, and automatic spell checking) that only work with Cocoa programs.

    It would be nice if Apple would port their APIs (or at least support something like GNUStep), but if they won't, then they need to make their "strong" API something that can easily be ported to. There are oddities in Cocoa that make incorporating code from anywhere else almost impossible.

    In short, Apple's programming tools and their corporate strategy are incompatible. The article frames this as a problem with Apple's strategy, but it could just as easily be seen as the tools not fit for the job. Apple started out with Rhapsody to try and make the mac the premier program for development but somewhere in between changed their focus to getting existing software to the mac. Unfortunately, they didn't change the tools to match.

  10. Re:Apple Success by int69h · · Score: 5, Insightful

    How exactly does Apple owe any of its success to Linux? Steve Jobs was in the Unix market before Linux was even a glimmer in Mr. Torvald's eye. Also , let's not forget Apple's previous Unix, AUX, or the fact that OSX IS BSD! The do however owe alot to the Opensource community. (Apache, FreeBSD, GNU, etc.)

  11. Re:Developer-friendliness by Anonymous Coward · · Score: 5, Insightful

    Hmm...no sign of a developers tools CD in my XP pro box, but in my panther box...aha, there it is! My _free_ developers tools.

  12. That's not entirely true by fdobbie · · Score: 5, Interesting

    Carbon is emphatically *NOT* a stepping-stone API.

    Apple continues to improve and evolve the Carbon API, dropping a lot of their legacy cruft and encouraging developers to move their applications forwards. While it does ease porting, if you just do the minimum so your old apps compile and run on OS X, you do not really have a Mac OS X application - it probably won't look and feel completely right.

    Carbon also works completely differently under the hood. As time goes on, Apple exposes these improvements through entirely new API, for example the HIView stuff that appeared in 10.2. Things like QuickDraw are largely going away for a lot of uses, with more modern alternatives like Quartz 2D or OpenGL recommended depending on your needs.

    It's also important to note that Cocoa is actually implemented using Carbon in some cases, and we're starting to see the reverse also be true.

    You can't say that Carbon, at its heart, is a "horrible, messy kludge". It's actually a fully-featured modern procedural API for creating native applications that provide a full Mac OS X look and feel.

    Having said that, it's highly unlikely that Carbon will see the light of day on other platforms, purely because of the effort involved in writing something comparable and the sheer size of the API.

    Apple seems to be pushing Carbon as its lower-level application development API, and Cocoa as its application framework (as a replacement to MacApp, the former C++ framework that was based on Carbon).

  13. Re:Developer-friendliness by SJ · · Score: 5, Insightful

    You should clarify the fact that "Microsoft bends over backwards to help developers."

    It should have read "Microsoft bends over backwards to help developers that do not occupy a space that Microsoft wants."

    Look at how much MS shat on Real, Netscape, Apple, Citrix, Corel and god knows how many other companies because they were in a space MS wanted.

  14. Re:Apple by Trurl's+Machine · · Score: 5, Insightful

    It's also an up and coming userbase though. Linux is growing very quickly among the younger crowd and getting them interested in macintosh software is a good way to increase their userbase down the road.

    It's also a "down-with-IP", "information wants to be free", "I don't want to pay for watching this movie", "I don't want to pay for this song", "down with even the most liberal forms of DRM" userbase.

  15. Disruptive technology by scottyboy · · Score: 5, Insightful

    Oddly enough, I reckon the disruptive technology on Mac OS X won't come from Apple - it will be C# and Mono... more specifically the PPC JIT. Give it another year and you'll start noticing quite a few .NET apps running on Mac OS X.

    Cocoa is a great technology, but it isn't agile enough. By that I mean that it's more monolithic application/client oriented, wheras the .NET framework blurs the boundary between client and server, or native app vs. sandboxed web app. vs ASP.NET web pages. Furthermore the C# developer base is growing rapidly.