3 ms·
With autocomplete you don't get much extra exercise anyway. It helps to strain your brain less however when reading the code.
by rimantas 15y ago
With autocomplete you don't get much extra exercise anyway.
It helps to strain your brain less however when reading the code.
- chc 15y agoI don't think "arrayByAddingObjectsFromArray:" is particularly clearer than "concat" or "+" unless you're just totally unfamiliar with the language. In fact, for many selectors I find the shorter names easier to read because my brain sees them as a single token while I have to mentally parse Cocoa's behemoths every time I run across them. There is some benefit to clarity, but very often Objective-C's glut of information makes it harder to pick out the details you were looking for. Smalltalk was considered quite readable and in fact was the inspiration for Objective-C and Cocoa, but its selectors were more minimal (for example, the equivalent to the above methods is #addAll:). (Just to establish that I'm not completely talking out my rear end: I've been programming Objective-C for ten years, Ruby for five.)
- kennywinker 15y agooh crap, does concat create a new object, or mutate the current one? is it the same as using + or do they handle objects differently....? should I be using << here maybe? I agree with you that the verbosity of ObjC makes it harder to mentally parse fast, but I also think there is a lot of clarity to it when you read it slow. Where I see ObjC fall down is more in terms of command verbosity. For example in Ruby, File.open("readfile.rb", "r") do |infile| while (line = infile.gets) puts "#{line}" end end ...would be ~150 lines of code in ObjC (Dave DeLong: http://stackoverflow.com/a/3711079/196358 http://stackoverflow.com/a/3711079/196358). Which is not really a failing of the language, actually. It's a failing of the libraries that come with the language. Apple chose to give you a couple ways to read a file. The easy way is `stringWithContentsOfFile:encoding:error:error`, but the next level of control is way to low level. Dave DeLong's solution to reading a file line by line exposes an api that looks like this: DDFileReader * reader = [[DDFileReader alloc] initWithFilePath:pathToMyFile]; [reader enumerateLinesUsingBlock:^(NSString * line, BOOL * stop) { NSLog(@"%@", line); }]; Not actually much more complex or verbose than the ruby.