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?"
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...
Gekido's Lair
I don't see why they don't do this. I understand that they don't want the majority of their apps on Linux, as doing that would take away incentive to buy a Mac. However, as proven when they ported it to Windows, iTunes needs as large of a user base as it can get. How could Apple be hurt by expaning said user base to a community that loves digital music, and has gone as far as to hack their way into iTMS goodness? Personally, I just want to be able to run such a great media player natively...
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.
Personally i believe that Apple owes alot of it's success to linux and the rest of the open source community. I personally use my Mac now than my PC for the simple fact that I have the ease of use of Windows ( and better security than Windows), and the power of Unix. I have used linux before, and frankly it still has a long way to go before i consider it my OS of choice, however with my Mac, i can just as easily use the commercial software i need while at the same time still getting an education in the unix enviornment.
To me Apple has been my gateway to opensource projects, and a greater understanding of 'nix line of OSes, i've been able to understand the structure better and faster than i could while using linux directly. Most of the software i run on my Mac is opensource.
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
A salient point, and one on which you would find surprising agreement from the fine denizens of the gnustep-discuss mailing list.
It is recognized that GNUstep pretty much utterly fails on Win32 (at least in terms of the Application Kit... Foundation Kit is relatively functional but of course provides no GUI functionality). I foresee a future where the actual drawing of widgets and interaction with the user is abstracted away into different backend libraries on each platform, and interfaces are coded in XML which is parsed by XSLT stylesheets into the proper layouts for each platform.
I suggested this idea on gnustep-discuss and it received a lukewarm response, but I'm considering working on it myself, starting off with Nicola Pero's excellent Renaissance framework.
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.
Exactly -- In the ultimate irony, Carbon ended up being cross-platform and OpenStep/Cocoa didn't.
The stated assumption of this rant is:
"But as far as big, high-quality apps... there just aren't many, and those that are being released are from the usual suspects. Nothing much new."
My question is, couldn't this could really be said for any platform (except maybe Linux, and even then mostly via porting)? What major, big, commercial, ground breaking applications have been release on Windows in the last 3 years that weren't there before? The Mac has lost Framemaker and Premiere, but what successful new applications has Windows gained? Is this really an effect of a larger fallout in the software development world?
We would love to port the products of the company I work for to OS X and Linux. Mainly so we can leverage whatever the best processor available at any time is. Unfortunately without compatibility products in certain areas it won't happen. If GNUstep and cocoa were in sync this would take care of a lot of issue. OpenSource products already solve most of the other cross compatibility issues. The overarching set of frameworks is the big hurdle.
Apple could swing a lot of converts with a write once, compile everywhere system. I'm not interested in Aqua on windows or Linux, in fact I'd prefer the interface to be OS consistent, (one of the big swing gui and X11 on OS X issue). Being able to produce an app for which ever platform the customer wants or has the best processors.
If we'd had an OS X based solution for our core product (a broadcast playout system) we could shift a lot of Macs and a lot of copies of final cut pro. The all Mac workflow isn't necessary but it looks attractive, especially with XSan, XServes, Motion, even iMovie thrown into the mix (it may seem hard to believe but there are some people using iMovie to edit for broadcast and for cuts only editing why the hell not). However the activation energy hump to port to OS X is too high at the moment, we can't afford to develop for two platforms unless we get a little help. We can't afford to move to OS X exclusively, what if another processor bottleneck happens as happened before the arrival of the G5, we'd feel much safer if we had Xeon, Opteron and PPC as options in case one stalls.
So come on Apple, you will sell more hardware, more crown jewels software if you make cross platform a doddle.
Actually, once upon a time, Lamborghini only made tractors. And mister ferrari lived nearby.
Then one day, mister Ferrari said something rude about mister lamborghini and the quality of his tractors.
Mister Lamborghini took it personally.
Nowadays, of course, Lamborghini and Ferrari still live within a couple of miles of each other.
But mister Lamborghini makes better cars.
--
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.
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).
Joining the discussion about GNUStep that has evolved here. Despite what the proponents say, GNUStep has a LONG way to go. It seems that the OpenStep API implementation is fairly complete, but that's far from all there is to it. What we need is:
- Eye candy/themes. The interface is very usable but also very ugly. You cannot please everyone with one interface, so I say themes are the way to go.
- Compatibility with Cocoa. Seriously, they are both implementations of the OpenStep API, but hardly compatible. Each has its own extensions, interface files are completely incompatible (and let's face it - it's all about the GUI; that's what distinguishes OpenStep from the rest)
- Stability - I can't speak for everyone, but GNUStep has never worked reliably for me. I tested GWorkspace about a week ago, and it crashed or went catatonic every few minutes. It also didn't at all nicely integrate with WindoMaker. I would have expected much better from such a central app.
I don't know _what_ is wrong with GNUStep. OpenStep is great, alledgedly much nicer than GTK, so how come GTK has lots of developers and is very robust and complete, whereas GNUStep remains in alpha after all this time?
When Apple released OS X and started touting Cocoa, I expected developers to rally behind GNUStep en masse. As far as I can see, that hasn't happened. How come? It's not like there aren't obvious benefits. So where is the action?
Please correct me if I got my facts wrong.
Agree! I've often admired ObjC, but haven't really bothered to learn it yet. Perhaps if there were nicely done Gnome bindings, but the existing ones appear to be Gnome 1.x and have bitrotted. Gnome development is one place where I think ObjC could really shine, because you get the similarity to the underlying GObject model (in C) but you get generic programming and automatic memory management, too. Oh well.
The scalloped tatters of the King in Yellow must cover
Yhtill forever. (R. W. Chambers, the King in Yellow
I've not really programmed before (I'm a doctor), but I've had a play with XCode and bought a few books. The fact that a programming dunce like me can create some small custom apps very quickly and with an elegant interface is great. There's something about the tools and the language which just seems very intuitive to me, and I like being able to link to command line Unix scripts and MySQL. Perhaps because this is my first foray into programming I can't see some of the shortfalls of this development environment, but I like it!
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.