Re: OT! Small Language Rant
Re: OT! Small Language Rant
- Subject: Re: OT! Small Language Rant
- From: "Dr. Scott Steinman" <email@hidden>
- Date: Mon, 16 Jul 2001 16:05:20 -0500
I disagree that Objective-C is an "abomination." It's just similar to
Smalltalk, whose syntax is very unlike C++/Java and therefore hard to fully
grasp for C++/Java programmers (I'm stating this as a C++/Java programmer
now learning both Objective-C and Smalltalk). The dynamic aspects of
Objective-C are what make it shine (of course, most of these features are
also in Java, but I'm beginning to understand why they are more flexible in
Objective-C/Smalltalk).
This is not to say that the Objective-C language cannot be improved. I
think that its problems stem from its use of ANSI C as its underlying
layer. Many of the things that C++ and Java added to C were intended to
make "a better C" (e.g., declaring variables where you use them). These
improvements were needed in C back then and they are still needed now! The
Objective-C syntax should be updated to provide them. It's like going back
to the early 1990's with a couple of OOP constructs thrown in.
My main gripe is that the Objective-C programming experience, not the
language, needs the most improvement. Typing mistakes and frequent searches
for the correct method names and argument labels waste a lot of my time!
Project Builder really needs autocompletion of class names, object names,
field names, method names, and method arguments. A pop-up list of the
methods in a file would allow easier navigate through a source code file. A
class browser is a must! Project Builder is one of the few programming
tools I use now that doesn't have these features. The Project Builder team
should be examining competitors' tools such as JBuilder or CodeWarrior and
make the code editing experience less tedious and error-prone. I should
also note that refactoring tools are becoming more prevalent for Java (and
have been in existence for Smalltalk for a while). Project Builder is being
left behind here too.
More complete documentation is also needed. Learning Cocoa and Apple's
on-line tutorials are good for beginning to program Cocoa, but where's the
intermediate to advanced material?
Tracking down errors seems to be harder in Objective-C. I've been working
through the examples in the Learning Cocoa book. The To Do application I
built is not working correctly -- the item name and date does not show up
in the Info window even though the outlets have been set correctly and the
relevant method source code has been double-checked for mistakes. Finding
the error has been difficult, to say the least, and this is not even a
major application.
I think that Apple has a real gem in Objective-C and Cocoa but improvements
are sorely needed! I don't see all that much of a change in its developer
tools, language syntax or documentation since Cocoa was Rhapsody and
NeXTStep/OpenStep before that. Much of the tools and documentation seem
pretty much unchanged. I can't make that statement for other language's
tools, documentation or even syntax in that time frame. Apple seems to be
very complacent and resting on its laurels here, but other languages and
environments have partly caught up and will continue to catch up or surpass
those of Apple. Apple needs to wake up and make their development
environment not just the "best of class" for Objective-C, but for all
languages! If not, developers will probably stick with Carbon instead.
If you've read this, thank you for your time. If not, I won't be offended.
Scott Steinman