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?"
I would love to see Apple Port i-Tunes, and such to linux. With OS-X being basically BSD, Their wouldn't be much work to do so. I know it would give them a leg up. I would purchase a copy of Quicktime, if it was for linux.
SimonTek
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
the important thing is the applications, not the underlying toolkits and frameworks. Macromedia's plan is to make sure their products run via CodeWeavers/Wine, and then port if the user demand is there. Now, on the otherhand, I would buy a Mac Desktop Environment to run on Linux and then run Mac and Linux apps. -TekZen
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
actually its done already, its called GNUSTEP . If only the interface got an improvemnt. It woudl be really nice if we got nice modern look like KDE or GNOME.. then there could be Linux/OSX cross platform .app files :) There is a reason why the .app folders keep binaries in a folder listed by architecture .. NEXT used to use this for "cross platform" binaries.
The war with islam is a war on the beast
The war on terror is a war for peace
Ultimately, it seems to me that the pathetic Linux community needs Apple a hell of a lot more than Apple needs Linux. And like he did to those dipshits at Real, I am sure Jobs is having a great laugh at the very idea of hooking Apple up to a useless, second-rate product.
I mean come on, Apple is the greatest hardware and software company the world has ever seen, and even the vastly overhyped "open source" community will never be a match for it. I think it is high time for Linux users to simply accept the fact that Linux is now and always will be a niche product for a niche market.
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.
Many developers don't develop mac software because they down own a mac. If I had a mac I would probably start writing a bit of code here and there but as a dude who only has a PC I have zero interest in developing for the mac. It has everything to do with market share. Unless I have an application that I feel would be useful on the mac and will bring in lots of money there is no reason for me to write for the hell of it. I'm sure this applies to many small-medium sized software development houses too
did you forget to take your meds?
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.
What about GNUstep? Developers Developer Developers, that's what.
What is GNUStep -- a couple old NeXTHeads (god bless em) weekend project? How long has it been it '85% complete'? 7 years? How many applications run on it? Five? How many are actually complex and competitive with GTK/QT apps? Only the Mail.app AFAICT.
I'm not trolling here. Just that GNUStep has the greatest Hype/Developer ratio of any project this side of Berlin|Fresco. Basically, its got zero apps and is worthless to an end user. Even Cocoa developers don't use it.
So, I propose we never ever ever talk about GNUStep on Slashdot again, until its actually used by someone for something.
The problem is not that API it's the dev tool. This guy likes xcode. Xcode is great if you want to code in objective-c but it sucks if you want to code in java. It also does not support any other language.
Instead of wasting time and money on xcode apple should join the eclipse group and make sure there is a decent plug in for webobjects (yes I know about wolips) and objective c.
Finally they should give serious thought to abanding objective C. Yes it's a great language but let's admit that people don't want to spend time learning it. Switch to python or ruby or something and be done with it.
While I am at it i'll also re-iterate my pet peeve. An official supported by apple ports collection please. One that's rich like freebsd ports.
Enough with the unsupported halfway hacks to make everything work already. Apple isn't going to get far solely relying on volunteers to make their OS whole. They can leverage the volunteers by committing developers on the apple payroll to open source projects. It's a small price to pay for a lot to gain.
evil is as evil does
The big problem with Objective-C & Cocoa is that they have LOSER written on the foreheads. Regardless of their technical merits, the history books say they lost and other technologies won.
Apple is on all levels a marketing organization, and it and continuing to slog forward with Steve Jobs' 1980s vision of Objective-C and OpenStep just does not jibe with generally progressive stance toward technology that Apple takes. If Apple wants developers, push something NEW. Objective-C is like your grandma's Performa, in marketing terms.
Look at Microsoft -- they could have continued to push C++ and VB until the end of time, but they made a clean break and delivered new toys with C#/NET.
But I'm most confused about what the Slashdot poster is saying....what does Longhorn have to do with this blog? I'm an experienced developer and I can't follow how any of these things are connected. It just seems like rambling buzzwords from Mac lovers.
Who the hell would port the subgraphics engine for Quartz/Quartz Extreme to Linux? Apple has been offered Billions for QuickTime and turned it down-ask Avid about it.
What Apple should do is open up the .NIB and help GNUstep folks by providing the Cocoa Hooks for KDE and Company.
GNUstep UI is a partial hack of Openstep--I used to support that beautiful OS at NeXT and Apple and trust me it is a hack, but don't blame the folks for not having the money to pay Keith Ohlfs to help.
Apple has helped with WebKit Core but if it would provide PDO(Portable Distributed Objects) on Linux you'd see a nice bedfellow who would help improve the computing landscape for both as benefactors.
More and more of Apple's applications are becoming Cocoa only Applications and come WWDC bet your ass with the lack of Carbon Sessions and multitude of Cocoa Sessions, Apple's promise of Carbon as a Transition API back in 1998 WWDC will come to peak with I am bettin' an End of Life (EOL) tag on it.
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.
Long ago, when operating systems were primitive, it was all about applications. And in many ways, that is still important. But it's more than that in the modern technological world we live in.
You can put all the applications in the world you want on Linux and it will still suck the sweat off rhinocerious testicles as a desktop system because the GUI is still very primitive. Sure, you have have a lot of flash with Gnome and KDE, but they still lack the detail of Windows, OS X or the old Mac OS.
Linux HAS come a long way with Plug and Play, but it still has a long way to go. I'd love to play with Linux on a laptop, but I know I just can't go buy any laptop and have a hope of it actually working. And then wireless would be problemative, not to mention the inferior power management. A good part of this is Catch 22. There are often no drivers, or inferior ones, for a product because little attention is given to Linux drivers. That is slowly changing, but not fast enough.
When Linux can handle a USB memory card reader with ease, multiple types of digital cameras, desktop integration of CD and DVD burning (which I don't use, but many ppl like this), effortless setup of audio cards (which is still a nightmare) and similar modern ease of use features, it will be close to being a desktop competitor. But for now, it sits as a workstation and server OS with limited appeal.
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).
May be you should do a bit of research.
The ancestor to Carbon is the port environment that was developper by Apple for QuickTime. and is still used today. This is never said but when you install QT on Windows you install Carbon as a side effect. You can even compile against it!! Take the include file on a Mac and compile link against the QT lib you will get a working application.
Just to say that Carbon already exist on Windows what is missing is the support.
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!
Go to a Mac web-dealer that has used and refurbished Macs. Find an iMac, eMac or iBook that suits you.
Get an instant Apple loan (We're talking $20 - $50/month).
Enjoy your Mac for 4-6 years (assuming it is not an ancient used one).
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.
> Gnustepweb is a framework that is supposedly compatible with WebObjects.
Well, sorta. First off, it's a clone of WO4.5, not 5.x. It's Objective-C only, which to my view is a good thing. I loathe and despise Java WebObjects. The web side is pretty good, but the database back end is - well - full of holes. Shame really. I'm using it for putting out websites at the moment, but there are a few things that are holding it back. These are:
Lack of graphical tools for putting together pages. It's OK if you know WO, and aren't afraid of editing by hand, but there's no WO Builder.
As I said before, the database back end (EOF clone) is lacking. Particularly, it doesn't handle inheritance at all (which can be worked around), and doens't seem to like flattened attributes either. There's also no EOModeler clone. And there's a bug that's been outstanding in KeyValueCoding for - well, forever, as faar as I can see - that breaks eogenerator. Looking at the gdl2 code, all I can say is that it's hacky. I mean, kudos to the guys and all, but, particularly around EOEntity and EOModel, it sucks. They've been optimised, highly prematurely IMO, and about a third of the most important functionality still doesn't work. Once I've delivered the projects I have on the go at the moment, I'm gonna rewrite the whole EOEntity and EOModel handling side, and drop it into their hands.
Still, all said and done, it's a lot better than nothing.
OpenStep and ObjC still work, they're still supported.
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.
But now you've described a lot of Apple's value-add, and frankly why they're a 10 billion dollar company. That stuff is really, really hard. Not that linux coders aren't up to the task, but to coordinate all that would be a nightmare.
And likely, if any programmers showed such facility for herding the cats and whipping up some inter-app processes, they'd be snapped up in a VC minute by Apple or MS.
This is pointing in too many directions, and none of them are terribly useful for Apple. You have Java, you have .NET and C#, you have KDE, Apple can follow these, but where's the win?
The thing is, there's a third desktop on Linux that's got potential. It's not doing very well right now, because it's not as cool as KDE and Gnome, but it should be very interesting to Apple. And that's GNUstep.
Apple could throw a little of the old NeXT code they're not using any more, like the NeXT file manager, over the Open Source wall into GNUstep land... and all of a sudden the third Linux desktop will be OS X junior, *and* a viable framework for people to develop for Linux and Windows for on their Powerbooks... without the bad press of Java...
I stopped reading when I got to the first "prolly". I hate to be a spelling/grammar nazi, since I make my own fair share of mistakes, but the overuse of certain non-words like "prolly" really, truly grates on my nervers.
I have no idea how the poster got to their conclusion that Apple would be a gateway OS to Linux. There is no reason to run Linux on the Desktop if OS X runs it's libraries. And that's a good thing. OS X is a polished OS with critical applications available to it. If anything, the ability to capture that stragglers from the Linux camp would help Apple immensely.
"Politicians find new names for institutions which under old names have become odious to the people."
What would be more interesting, is not porting the framework to linux. That doesnt make a lot of sense since there is darwin. Of course stuff like cocoa might be useful for open source developers wanting to write applications for different platforms. However other frameworks existing for the open source *nixes. And besides I suspect there is a lot of dependancies with aqua and what else.
...
What would be far more interesting would be if they were to port the whole kaboodle to x86 hardware. They had a bash with rhapsody. Apple have got themselves some respect in the past few years despite some dodgy *iPod* battery practices from time to time. With long wait for longhorn, and microsoft getting such bad practices. It could be a good time to think about this, the main problem of course being cross architecture. If someone were to solve the cross architecture binary incompatibility issue it would surely put quite a large spannner in the works.
nick
Electronic Music Made Using Linux http://soundcloud.com/polyp
"But now you've described a lot of Apple's value-add, and frankly why they're a 10 billion dollar company. That stuff is really, really hard. Not that linux coders aren't up to the task, but to coordinate all that would be a nightmare.
And likely, if any programmers showed such facility for herding the cats and whipping up some inter-app processes, they'd be snapped up in a VC minute by Apple or MS."
I've already covered this a long time ago (as an AC naturally). That's why OS code is done the way it is. Open standards, and open API's, plus the "one thing, does one thing well" mantra makes it easier for all the disparete pieces to fit together (1). That's why you see the heavy emphasis on modularity, like plugins, and "buses" (DCOP, CORBA, etc), as well as language bindings. Plus the new push for XML this (GConf), and XML that e.g. XUL(2), XAML, FLEX means that change (always a constant) is accomidated more easily without breaking things.
(1) Note the power of OSS is in it's distributed nature. That by necessity means that it will not be built the same way as proprietary (everyone in the same room) code.
(2) Note the development process.
But the CodeWarrior thing I can comment on, namely that CodeWarrior's Mac version is still being sold and still going strong. I haven't heard of any sackings, plans to cancel the product, or any other lamentations from them.
Actually CodeWarrior has become something of a joke on Mac OS X. CodeWarrior used to be the premier dev environment on the Mac but ever since OS X was released it has been declining in usefulness and popularity. This coincides (extremely roughly) with MetroWerks being bought by Motorola and CodeWarrior being aimed mainly at embedded systems. If you do legacy development then of course CodeWarrior is the dev environment to use - but for any new development I think most developers are choosing xcode
I have trouble with passwords among other things.
I own the poor blog thats linked in the article... you might be interested in knowing there's a redux article here that should probably clear up a lot of these posts & questions.