Re: Objective C vs. Java
Re: Objective C vs. Java
- Subject: Re: Objective C vs. Java
- From: "Dennis C. De Mars" <email@hidden>
- Date: Thu, 10 May 2001 23:14:36 -0700
on 5/10/01 4:09 PM, Tyler LaGrange at email@hidden wrote:
>
Java is a much smarter choice if you would like to find reference
>
materials and other snippets to add to your code. On amazon.com we can
>
see 1571 listings for Java, and 17 matches for Objective-C, most of
>
which aren't even relative. fatbrain.com has 1168 books for java, and 8
>
for Objective-C - only half really relevant (Objective-C isn't even
>
listed under Programming Languages -
>
http://www1.fatbrain.com/catalogs/computing/subjects.asp?VM=c&SubjectCode=
>
PGLS&SubjectID=&filter=). I bet a trip down to Borders or something
>
would make this point pretty obvious as well. The few sites I have come
>
across for Cocoa and Objective-C have been pretty devoid of real good
>
examples.
Well, I don't think you'd have time to read 1571 books on Java. But
seriously, folks, I think those books would fall into three categories:
1) Books that teach you to program in Java (either at a basic or advanced
level).
2) Books on the Java APIs.
3) Books on algorithms or software design that happen to use Java as the
illustrative language.
In category 1, there are quite a few books for Java...but you only need one
good one. For Objective C, there is the book on Apple's site which is also
good. I'd suggest you read one of each. But this is not in itself a reason
for using Java...
In category 2, these books are good if you are going to use the Java APIs;
if you are going to primarily use Cocoa, though, the existence of these
books are not relevant.
In category 3, again, it is a good idea to know Java to be able to read
these books, but that doesn't mean you are required to program in Java to
apply the lessons they teach.
>
>
NOW - to be fair - it is true that apples own cocoa documentation does
>
favor Objective-C over Java in the fact that the online Documentation is
>
more complete on the Objective-C side. ALSO - the first Cocoa book
>
apple is putting out with O'Reilly is putting out
>
(http://www.oreilly.com/catalog/learncocoa) doesn't even have the word
>
Java in the table of contents. BUT - if you are reading that book to
>
learn about the concepts of Cocoa - and not the language specific
>
examples - I imagine most of it will transfer across the Java Bridge
>
with a little time.
Absolutely. And vice versa.
>
>
Also, Java is a much smarter approach if you would like to learn
>
something that can be applied to OTHER areas of computing. There are a
>
countless number of jobs out there in the market today that are looking
>
for Java Experience. There is a MUCH smaller number of Objective-C
>
coders being looked for. I was going to give some statistics from like
>
a monster.com or a brainbuzz.com, but the keyword searching is a little
>
sketchy on both. From what I can tell, there are no Objective-C
>
listings on brainbuzz - and who knows on monster - since Objective-C
>
will match the word Objective - but if you search for "bjective-C"
>
leaving off the O, you get nothing. I don't get it. I guess we could
>
use careers.yahoo.com and see over 1000 for Java and Zero for
>
Objective-C. I don't think too many people will argue this point anyway.
Y'see, this is the argument that really puzzles me. If you want to learn
Java to improve your marketability, by all means do so. But is this a
rational reason to choose to use the language for a project? I mean, if you
think Java is the superior choice technically, that's one thing, but you
seem to imply that even if I thought Objective C would be the superior
choice I should use Java anyway because it will look better on my resume. I
personally think any programmer who thinks making a decision he thinks is
technically inferior will enhance his career simply has rocks in his head.
>
I don't really want to argue this point. I have even started learning a
>
little Objective-C myself in the off chance that I need access to some
>
methods that the Java-Bridge simply will not provide. It's not too
>
tough for a "Programmer" to adapt to different languages with a little
>
time anyway. It really doesn't look that hard, and I could always just
>
add it to a resume later. But I have to recommend that BEFORE adding
>
Objective-C to my resume, I would CERTAINLY add Java to my resume. And
>
beyond that - a classified ad for a Developer with Java skills will
>
attract thousands more applicants than an ad for a Developer with
>
Objective-C skills.
Well, you're coming around a little more to my way of thinking here. When
this subject comes up, it is often phrased in the sense of "I don't want to
learn Objective C, it would be better to learn Java because [insert your
favorite reason here]." As if we only have room in our heads for one
programming language. Why not just learn both! They are both pretty easy.
Anyway, this argument drives me crazy because it precludes using the best
tool for a particular situation. It's like, you have to belong to either the
Java religion or the Objective C religion or the C++ religion.
>
I am a Java programmer (actually my true calling is a web developer
>
right now), and there certainly are plenty of things I don't like about
>
Java, but for the sake of putting out another opinion on the Java vs.
>
Objective C issue I needed to send this email. The Java front is
>
certainly not the majority here.
Among my colleagues, I have advocated the use of Java in cases where I
thought it was appropriate (for instance implementation of cross-platform
GUI front ends, and when I say cross-platform in this case it means Windows
and Unix/X-Windows, Mac isn't even an option). For Cocoa, I considered the
use of Java when I first started looking into the options (this was over a
year ago) but I personally decided that there was no reason to take on the
overhead of a VM and the Java bridge in an application if I didn't have to.
It didn't take me too long to come to this conclusion, and since then I've
realized there are some other advantages to Objective C (to me, having named
parameters is an enormous advantage, languages with named parameters are
much more readable).
Now, if you really like Java and you know in advance what kind of trade off
you may be making in performance, and if that is acceptable for your
application, then that's a viable decision. But I would recommend to anyone
considering the option that they familiarize themselves with both Java _and_
Objective C before making a decision. You aren't really being fair to
yourself unless you do this. It sounds like you are doing this, which is
good for you. I think the people who just refuse to consider learning a new
language are shortchanging themselves. So, you may come to a different
decision than I did -- we all have different priorities. However, I would
suggest that you might be better off basing your decision on what factors
will make you most productive rather than what buzz words will look better
on your resume, because in the long run _what_ you did will count for much
more than what language you did it in.
- Dennis D.