Re: Objective C vs. Java
Re: Objective C vs. Java
- Subject: Re: Objective C vs. Java
- From: email@hidden
- Date: Fri, 11 May 2001 07:01:29 -0400
Don't sell yourself short: Learn both. Someone who can
read/understand/write alittle vb,c,c++,obj-c,java would be valuable
would they not?
Then pick the right tool for the job at hand.
On Friday, May 11, 2001, at 02:14 AM, Dennis C. De Mars wrote:
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.
_______________________________________________
cocoa-dev mailing list
email@hidden
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
A man, A Plan, A Canal, Panama