Re: OT! Small Language Rant
Re: OT! Small Language Rant
- Subject: Re: OT! Small Language Rant
- From: "John C. Randolph" <email@hidden>
- Date: Mon, 16 Jul 2001 14:40:47 -0700
On Monday, July 16, 2001, at 02:05 PM, Dr. Scott Steinman wrote:
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).
Java lacks categories, posing, and class method inheritance. (Somebody
tell me if I'm out of date on this..)
This is not to say that the Objective-C language cannot be improved.
Yeah, it would be nice to have Class variables, for a start.
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.
We'll get this back when we get Obj-C++. This is already a work in
progress.
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.
What I'd like to do is quit keeping my source code in flat files at all,
and get it into a database instead (a hierarchical database would
probably be a good fit.) If I write a subclass and then decide that it
really ought to be a category, I'd *love* to be able to just make a
category of the superclass, and *drag* the methods I just wrote into the
category.
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?
I'm sure many people are writing it as we speak.
Tracking down errors seems to be harder in Objective-C.
I'd chalk this up to the occasionally cryptic nature of GDB.
-jcr
"This is not a book to be tossed aside lightly. Rather, it should be
hurled with great force." -Dorothy Parker