3 ms·
What's with everyone thinking Objective-C is inefficient (in developer-hours)? I have found it to be very easy to use. Granted, it does have its warts that make
by Aqua_Geek 16y ago
What's with everyone thinking Objective-C is inefficient (in developer-hours)? I have found it to be very easy to use. Granted, it does have its warts that make coming from a language like Ruby somewhat painful. But I second Craig's comment that "the notion that [the high number of hours burned] is the language's fault is laughable."
That being said, I have worked on 20+ iOS apps now and most of them were finished with a MUCH smaller total number of hours than this. I don't disagree that taking something from "it works" to "it's elegant" takes time, but 1100 hours of dev time does seem a bit high. I, too, would be interested in more info (like total lines of code, whether or not they built a Twitter engine from scratch for the app, etc).
To anyone considering making an app: don't use this as a baseline comparison. You can get a great-looking app done in a lot less time than this.
- pmjordan 16y agoOnce you're into the territory of building custom UI controls, effort starts going up, up, up. I've found the existing UI classes to be perfectly good for their intended purpose, but try extending them and they'll frequently break, requiring either a rewrite or late nights of debugging (and you don't get UIKit's source). This is particularly deadly when doing contract work and the client's designer is used to web dev, where you can often hack around stuff. On iOS, "trivial" design changes sometimes cause major headaches. The other not-so-obvious complexity here is probably the data model, which seems far from trivial, especially given the constrained memory environment (lots of images, etc.). The times don't seem unrealistic at all to me.
- tomjen3 16y ago>What's with everyone thinking Objective-C is inefficient (in developer-hours)? Manual memory management, lack of functional programming, compile/test cycle, etc isn't free.
- billjings 16y agoTrue, but: - You can mix static and dynamic styles as appropriate. - You can mix low level and high level code as appropriate. - "Manual memory management" != "Manual ref counting". I'm not saying it's wonderful, but it's a hell of a lot better than malloc and free. - Categories are a pretty big OO power tool that you don't see in e.g. Java (e.g. Android) - I would love to be able to efficiently write slick, efficient mobile apps with an REPL right on the device. And I would enjoy a pony.
- Zev 16y agoI, too, would be interested in more info (like total lines of code, whether or not they built a Twitter engine from scratch for the app, etc). I believe that Twitterrific uses MGTwitterEngine now, but originally had used its own.
- elai 16y agoObjective-C is a bit irritating in it's dictionary & array/list syntax, it turns something that would be 20 characters in python or even java into something that is 100-150 characters. Similarly in string editing and xml parsing. TouchJSON works very quickly, but then you run against the obtuse array & hash table syntax when using it's result. Give us smalltalk binary & one character operators! The obtuse syntax hurts readability too.
- jsolson 16y agoYou may find the following useful: #define A(obj, objs...) [NSArray arrayWithObjects:obj, ## objs , nil] #define D(val, key, vals...) [NSDictionary dictionaryWithObjectsAndKeys:val, key, ## vals , nil] I put these two macros in the prefix header for every Objective-C project I do. Say what you will about single character macros, these save me time and improve readability (for me, anyway... I'm not sure how others reading my code down the road fare, but so far there haven't been many of those).
- elai 16y agoOne of those obvious things that you feel stupid for not realizing. Thanks!