| |||
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
OK, so I heard wrong.
Nice list of languages - I've only got Basic, FORTRAN, C, C++, Smalltalk, Objective C, and Java.
Of these I like C, Smalltalk and Objective C (its a really good compromise). C because of its minimalism for high performance work.
For the others, the key feature is message sending vs function calling. DoesNotUnderstand is a very powerful thing.
My impression of Java is that there wasn't enough budget to do it right or you were trying really hard to appeal to C++ developers. Compared to Smalltalk, its not very flexible and its less productive. For instance, I still have the compile edit printf cycle (debuggers have been kind of a disappointment in Java).
On Wednesday, July 30, 2003, at 02:31 PM, James Gosling wrote:
This is so damned false I don't know where to begin. I designed Java so I could write more code in less time and have it be way more reliable.
Yeah, this is why Dave Winer wrote Frontier - his own dynamic language all his blog stuff is built on. He uses it all the time now - I can't say it appeals to that many people. I find it really weird for instance.
In the past I've wasted huge numbers of hours chasing down memory smashes and all the other time wasters that are so typical of what happens when writing C code. I wanted to spend time writing code, not debugging. Life is too short for debugging. All of those little "limitations" turn out to be things that make coding faster and debugging vanish.
Perhaps you should download Squeak sometime. Just to see where I'm coming from. If you compare Java to C++ - no argument its a huge improvement. BTW, the Squeak guys felt the same way and wrote the VM in Smalltalk. Then they wrote a translator to C. It gets debugged in Smalltalk though. I recommend Dan Ingall's paper "Back To The Future". ftp://st.cs.uiuc.edu/Smalltalk/Squeak/docs/OOPSLA.Squeak.html
Incidentally, this puts the lie to the idea that you need primitive types. You don't.
They just complicate things. Which brings me to my favorite Java bug:
new Long(5).equals(new Integer(5)) returns false?!?! But long x = 5; int y = 5; (x==y) evaluates to true. Seems pretty inconsistent.
_______________________________________________
One of the design principles behind Java is that I don't care much about how long it takes to slap together something that kinda works. The real measure is how long it takes to write something solid. Lots have studies have been done on developer productivity, and Java beats C and C++ by a factor of 2.
No argument there. But that's not what I'm comparing it to. To me working in Java feels like running in heavy boots.
I'm glad you like it though.
-Todd Blanchard
| Home | Archives | FAQ | Terms/Conditions | Contact | RSS | Lists | About |
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE
Contact Apple | Terms of Use | Privacy Policy
Copyright © 2007 Apple Inc. All rights reserved.