The Cocotron is an open source project which implements an Objective-C API very similar to that described by Apple Computer’s Foundation and AppKit framework documentation. “The Cocotron Development Tools are a gcc based cross-compiler toolchain which plug into Xcode, once installed they enable Xcode projects written in Objective-C to be compiled for platforms other than Mac OS X, such as Windows, Linux, and Solaris. The CDT is used to compile The Cocotron and non-OS X targets.”
I hope that this project is able to get some momentum. I love the idea of cross-compiling some projects. And no, GNUStep does not provide this feature.
The Cocotron is missing major functionality. Many of the classes in it cannot properly read nib files and the ability to write Cocoa compatible nibs is entirely missing.
GNUstep is a much more mature project in many ways. The only thing which Cocotron has which GNUstep lacks is the ability to use Xcode to cross compile.
GJC
# GNUstep Chief
Use of Objective C has doomed many a fine project, this one will probably not be the one to break the curse and should have avoided it’s kiss of death.
Forgive me for a possibly stupid question, but what about Objective-C has doomed projects? (Other than performance, if you want performance, Carbon is the way to go)
In my opinion GNUStep is not taking the right way. Cocotron is a better approach.
More important that improvements to Cocoa, what Apple need to reach a bigger share market is a project like this, where (as other projects like Qt) you can compile your Cocoa application in different platform
What does Cocotron provide in your opinion that GNUStep doesn’t? GNUStep is further along then Cocotron, is providing Cocoa compatibility, has a windows port and supports nibs. There isn’t much information on the webpage, I can’t even tell if they use native widgets (that would be cool) or not. A screenshot would probably tell me but there aren’t any.
So you got more info on Cocotron let me hear, I’m interested.
Edited 2006-12-24 18:27
Some of the GNUstep developers have looked it over, and they’ve been discussing their impressions on Discuss-GNUstep: http://groups-beta.google.com/group/gnu.gnustep.discuss/browse_thre…
From Gregory John Casamento (GNUstep project leader):
A quick analysis shows the following things:
1) They are missing many Cocoa classes
2) They do not use native widgets, they draw thier own, like we do.
3) Much of the nib decoding logic which is currently present in GNUstep is not in Cocotron. That is to say… there are many cases that the Cocotron code cannot handle properly when unarchiving Cocoa nibs. There are other problems along these lines as well, such as some classes are missing keys which are needed to function properly.
4) Cocoa compatible keyed nib encoding is entirely missing
5) The only way you can build it is by using Xcode on a mac and cross compiling it for other platforms, this is a major drawback.
6) Printing appears to be non-functional, or, at least severely restricted… more so than GNUstep’s printing functionality currently is.
7) The TextEditor example is completely bogus. None of the connections in the nib are actually made… none of the menus work. All it does is bring up a window with an NSTextField in it and look halfway nice. Other than that the example is non-functional.
I’m quite sure there’s more, but the above is just from looking at it for about 10 minutes.
Of course, the opinion of the leader of the GNUstep project may be biased… Still, there is some disagreement as to why two projects should be developed in isolation, when both essentially aim to implement OPENSTEP.
My assessment was based on looking at the code. Everyone is, of course, free to judge for themselves.
GJC
# GNUstep Chief
I apologies for my comments if i got a mistake, in Spain we say that “ignorance is imprudent”, and clearly you know these projects better that I.
I have been following GNUStep for a years and my newbie opinion about this project is that it have one important drawback compared to libraries like Qt.
– GNUStep is so tied to windowsmaker and linux
– The look and feel appears devoted to someone missing NEXTSTEP more that to new users from other platforms
“- GNUStep is so tied to windowsmaker and linux”
No, it’s not. It can be used on non-Linux systems (such as BSD, maybe Solaris and IRIX, too). And, if I remember correctly, an implementation to be used with “Windows” is inteded, too. So, your statement is wrong.
Furthermore, it’s “Windowmaker” (without s) which is a window manager. You can use GNUstep (its foundation, Gorm, toolkit and even Objective C) without Windowmaker. Windowmaker is the official window manager for GNUstep, not more, not less.
“- The look and feel appears devoted to someone missing NEXTSTEP more that to new users from other platforms”
Please decide: new users or users from other platforms.
New users (who have never used KDE, Gnome or even a MICROS~1 product) seem to have no problems getting in use with Windowmaker. They very quickly recognize its advantages over other window managers. (That’s not to say other window managers have advantages over Windowmaker). Maybe, for someone who is spoiled by complicated “Windows” concepts and UI imaginations, Windowmaker is just too simple to use.
Maybe, the guided tour at http://main.linuxfocus.org/~georges.t/index.html is interesting for you.
To determine what GNUstep and Windowmaker are, you may want to read an interesting article posted here at OSAlert http://www.informit.com/articles/article.asp?p=665129&rl=1 and http://en.wikipedia.org/wiki/WindowMaker – additionally, take “de” instead of “en” because it has a prettier picture.
Edited 2006-12-25 09:28
Please decide: new users or users from other platforms.
IMO users from other platform. New user has not enough training to use other things that mass culture guides (namely Microsoft Windows/Office). And also IMO only people involve in computer science, more specifically developers, can find GNUStep interesting. P.D.: I have not made any survey, these statements come only from my intuition.
“New user has not enough training to use other things that mass culture guides (namely Microsoft Windows/Office).”
I’m sorry, I can’t agree. Usually, it’s the other way round. Newbies who do not use a MICROS~1 product in first place tend to have no problems using things like XFCE, OpenOffice or even Gimp. Instead, they get confused if forced to use “Windows” because most things seem to be very complicated. So there’s no training needed. Usually users try out what happens if they click here and there, and this behaviour is toolkit and platform independant.
“And also IMO only people involve in computer science, more specifically developers, can find GNUStep interesting. “
GNUstep is also interesting on the user side where professionals (educated users) do professional work, such as x-ray diagnostics or psychological testing. They don’t realize the functionalities they are using are based upon GNUstep, but they have no problem it is not a “Windows” program that does help them in their daily work.
“P.D.: I have not made any survey, these statements come only from my intuition.”
I thought so.
Windowmaker is the official window manager for GNUstep, not more, not less.
This fact motivated my constructive criticism. IMO what developers need to improve their products’ market share is (as with Qt or Java) a make one compile everywhere solution.
“This fact motivated my constructive criticism. IMO what developers need to improve their products’ market share is (as with Qt or Java) a make one compile everywhere solution.”
You’re right. It’s always nice to have one program for many platforms. GNUstep based programs can, as I stated, be run under KDE, Gnome, and even on non-Linux systems. Personally, I tend to use Gtk for cross-platform projects (Linux, BSD, Solaris).
I’m not sure if it’s possible to apply the buzzword “market share” to free software; “usage share” would be a better term because GNUstep will not appear in market statistics. It has a right to exists because there are pirposes that GNUstep is perfect for. Other purpose, other solution. In most cases, “the only solution” does not exist.
Article says “which implements an Objective-C API”, but after browsing through the Google code site, I could only find a single source file:
http://cocotron.googlecode.com/svn/trunk/Cocoa/Cocoa.m
Which does not include much functionality.
Either the code is “hidden” somewhere or the article summary should become “which intents to implement an Objective-C API”
Business decisions and market factors determine the rise and fall of software projects.
…should be fairly straightforward to add to Xcode. It’s just a property list with the details of the compiler flags you need, after all. I’ve got ones in my ~/Library/Application Support/Xcode/specifications directory for each of the cross-compilers I have installed on my MacBook.
While I’d be the first to welcome a viable Cocoa port to other platforms, I don’t think this one raises the bar very much. It’s too limited, too far behind, and not likely to ever catch up without massive community support that I don’t expect to happen.
5) The only way you can build it is by using Xcode on a mac and cross compiling it for other platforms, this is a major drawback.
In the days of CodeWarrior (which was a much better IDE than Visual Studio and had stupendously better remote debugging), cross compiling from Macs made sense; XCode, however, is not a better IDE and I’d probably use VS on Mac, if it was available (no, Bill, I won’t pay the Windows price for it.)
The biggest plus for CCT is being a Mac (or at least non-Unix)-centric project: GNUStep, unfortunately, is developed by MS haters and it shows. I’ve wasted several days on multiple occasions trying to build it on Windows and always gave up (the declared state of the port at the time wasn’t encouraging, either); I never tried on OSX, since the lack of a usable Windows version meant it had no crossplatform relevance anyway.
I like Cocoa and I’d be happy to pay a reasonable price (i.e., less than Qt) for a commercial quality version, with or without support and source code. I don’t see much likelihood of that unless Apple does it, though. Everyone else either has motives other than producing a quality, accessible tool, or doesn’t have the capability.