4 ms·
You loathe Java but you like Objective-C? Madness.
by fr0man 17y ago
You loathe Java but you like Objective-C? Madness.
- cpr 17y agoYes, because Obj-C is truly just Smalltalk with C-style control structures. Maybe I'm damaged, because I've used Smalltalk in a previous existence, and loved it. Java is not a dynamic language.
- ajross 17y agoFor what definition of "dynamic language" is that statement true? Both languages do late binding of methods to objects, Java merely happens to smear on a layer of typesafety above it. Frankly, the two languages are semantically all but identical, modulo the ability of Obj-C to fall back to a "bare memory" data model when you want to.
- astrange 17y agoThey certainly don't bind methods to objects at the same time - Obj-C does it when you send the message. You can send and catch messages with no methods attached to them, or that weren't even declared in the first place (at the expense of a compiler warning). Of course there are other differences, but the most important one is just that the class library is much better - UI doesn't rely on inheritance, there's no class named LinkedHashMap (see http://ridiculousfish.com/blog/archives/2005/12/23/array/ http://ridiculousfish.com/blog/archives/2005/12/23/array/), and there _is_ a class named NSMutableArray.
- deleted 17y ago[deleted]
- catch23 17y agoYou can do mixins fairly easily in ObjC, but in Java, you'd essentially have to resort to runtime bytecode rewriting. Take a look at what popular libraries like Hibernate, Spring, AspectJ use under the covers to perform their magic.
- amock 17y agoIf this isn't a sarcastic comment, what does loathing Java have to do with Objective-C?
- astrange 17y agoI have the same opinion and I don't see anything weird about it. They're both OO languages without many features compared to C++ or something, but Obj-C is dynamic and much more flexible (see NSProxy, NSArray class clusters, etc.) whereas Java is not at all. Plus Obj-C is actually C, so you can write "if (!i)" without the compiler deciding you're too stupid to handle implicit type conversions. By the way, I've noticed that people (who don't seem to use it often) complain about the extremely long method names in Obj-C, but if you count by the number of tokens instead it can be pretty terse. And I think that's how reading natural language is supposed to work, anyway…
- cpr 17y agoThat's one of Cocoa (Touch)'s strengths, actually, and part of the 'secret sauce': Ozer and crew have developed a really good set of naming conventions over the years, and use them well. I like the long names. It's very Smalltalk-like, and Xcode completion mostly takes the pain out of it.
- cubicle67 17y agohow'd you do the upside-down exclamation mark?
- jodrellblank 17y agoThe letter i?