To read all comments associated with this story, please click here.
Whatever Apple does will create a standard for Objective-C, because the only real users for the language are the poor souls stuck having to use it to develop for OS/X.
This is nonsense. Do you know how many source lines of code (SLOC) OpenGroupware.org have?
And OpenGroupware.org is all written in Objective C, as you can find out here: http://opengroupware.org/en/about/ -- It is also to be installed on Linux, Solaris, Windows, and Mac OS, as you can see here: http://opengroupware.org/en/install/
And OGo is not even close to the only big objective C codebase.
Really? Those "poor souls" seem to like using Obj-C. I know my friend who does OSX programming (and NeXT before that) swears by it.
You might not like it but a lot of other people do.
From wikipedia:
Objective-C is a very "thin" layer on top of C. Objective-C is a strict superset of C. That is, it is possible to compile any C program with an Objective-C compiler. Objective-C derives its syntax from both C and Smalltalk. Most of the syntax (including preprocessing, expressions, function declarations and function calls) is inherited from C, while the syntax for object-oriented features was created to enable Smalltalk-style message passing.
The syntax of Objective-C has about one thing that's similar to the syntax of Smalltalk. It is a single-inheritance message-based language and has that in common with Smalltalk, but it's really more of C with a simple object system bolted onto the side that looks completely alien from both the C and Smalltalk perspective. All of the mediocrity of programming with C with less than half of what's interesting about any Smalltalk environment. Now with garbage collection and foreach!
the only real users for the language are the poor souls stuck having to use it to develop for OS/X.
You can develop for OS/X using C++ and Qt. There's nothing in Apple's user interface guidelines that demands the use of a particular language or framework. Qt gives you the ability to easily write an OSX application with a truly native look and feel.
C ==> Carbon
ObjC ==> Cocoa
C++ ==> Qt
Qt/Mac is actually a wrapper around Carbon, and unlike Cocoa and Carbon, you have to pay a four-figure sum (per developer) to build commercial applications with it.
In my own experience, there are two big problems with Qt as a platform for serious Mac applications. One is that Qt apps don't behave like normal Mac apps: for example, the menu bar is tied to the main window, and if you shut the window, the application dies. Cocoa and (normal) Carbon applications don't behave like that. It doesn't use all the Carbon widgets either, although this has improved in recent years (supporting drawers and sheets, for example).
Second, I've found that there are speed deficits. Widgets take about a second to "awaken" after you raise a Qt window on the Mac - they don't on normal Mac apps - and certain classes are sluggish, notably the text editor widget class when you write a few paragraphs with it.
Much as I love its API and I think it's fantastic on X11 and Windows, if you're looking mainly to develop Mac apps you should give Qt a miss.
Objective-C is the zombie of the C derived languages. It was a bad idea to start with, based on Brad's naive notion of "software ICs" and not Smalltalk as this article claims.
Yes, Brad's original idea was to promote software ICs -- but that does not mean it's not *heavily* influenced by Smalltalk, come on :-) -- it's quite obvious it is. It shares the same concepts of what OOP should be, it's dynamic, classes are objects, it sends messages (and has the equivalent of the doesNotUnderstand), even share the "in-message" paramaters syntax.
Objective-C is the simplest modification of C to add _proper_ object orientation, modelled after the Smalltalk paradigm. Much, much better than C++ ;-) and extremely far from "a bad idea", to the contrary.
Whatever Apple does will create a standard for Objective-C, because the only real users for the language are the poor souls stuck having to use it to develop for OS/X.
I guess GNUstep ( http://www.gnustep.org ), the free, cross-platform OpenStep implementation, OpenGroupware.org ( http://www.opengroupware.org ), Swarm ( http://www.swarm.org ), Étoilé ( http://www.etoile-project.org/ ), etc. ... in fact only exist in my mind then.
Edited 2006-11-06 13:16
Objective-C is the simplest modification of C to add _proper_ object orientation, modelled after the Smalltalk paradigm. Much, much better than C++ ;-) and extremely far from "a bad idea", to the contrary.
I argued with Brad about this at the time and no one has convinced me differently since: The primary basis of SmallTalk as an object oriented system is that every "thing" is an object.
Objective-C fails rather completely as a proper object oriented system on that basic criteria.
It grafts the less important aspects of object-orientation onto C without making the language an object oriented language. (C++ has the same failing as an OO language.)
Whatever Apple does will create a standard for Objective-C, because the only real users for the language are the poor souls stuck having to use it to develop for OS/X.
Nothing special within Obj-C, but the Cocoa Framework is. You should read "Cocoa Programming for Mac OS X" by Aaron Hillegass to know how great Cocoa Framework is.






Member since:
2006-02-15
Objective-C is the zombie of the C derived languages. It was a bad idea to start with, based on Brad's naive notion of "software ICs" and not Smalltalk as this article claims.
Whatever Apple does will create a standard for Objective-C, because the only real users for the language are the poor souls stuck having to use it to develop for OS/X.