3 ms·
> a vestigial language that isn't suited for a majority of application development. But good enough to write major parts of an operating system in by a company
by jawngee 16y ago
> a vestigial language that isn't suited for a majority of application development.
But good enough to write major parts of an operating system in by a company full of people easily smarter than you? Say what?
> Header Files
It's C for chrissakes.
> No GC on the iPhone
Because it's a performance penalty. Clock cycles on a phone are vastly more important than on a desktop/laptop. I can guarantee you this will change in a few years.
> No NSDictionary/NSArray literals
It's not a scripting language. Show me array literals in C or C++ that map to an underlying collection class that gives you fast enumeration and then we talk.
> Xcode
Personal preference.
> Closures
They're called Blocks.
> No dymanic variables
It's called 'id'.
id whatever = [[YourObject alloc] init];
But even better:
id whatever = [[NSClassFromString(@"YourClass") alloc] init];
Or how about setting properties on objects dynamically?
[yourinstance setValue:@"Hello" forKey:@"property"];
Or dynamically dispatching methods?
Ever messed with vtables in C++?
> Unit Testing
Agree, but that's changing.
> No namespacing
You bitch about all the typing, but you want to type out namespaces instead of using a prefix on your classnames. Ok ...
Your confusing ObjC with Ruby, Python, et al. But it is not any of those. Like I mentioned elsewhere, it's a high level layer on a low level language. Adjust your expectations accordingly.