3 ms·
Have you ever written software? You'd be surprised what isn't written in C or C++. I bet this clause disqualifies the majority of serious applications in the ap
by tumult 17y ago
Have you ever written software? You'd be surprised what isn't written in C or C++. I bet this clause disqualifies the majority of serious applications in the app store. Anything with a generated parser, for example, can now be rejected. Objective-C is definitely a kiddie language, it's highly dynamic and mostly suitable for creating a OO interface to lower-level code written in C, which is how almost all of OS X and Apple software works. I personally believe C is not suitable for writing large GUI applications in, and many people would agree. C++ is unwieldy and more difficult to map onto UIKit without it just ending up looking like C again.
Apple is telling people, "write software like this, because we say so."
- zefhous 17y agoMy main problem with your comment was that in your anger you seemed to be acting pretty immaturely about the situation. I'm sorry for being harsh. Yes, I'm sure it sucks. Your project is collateral damage from Apple's efforts to thwart Adobe and other makeshift cross-platform efforts that generally create sub-par products. I'm not saying Apple's development tools are perfect or that I like Objective-C, but Apple makes it pretty easy to write great apps their way.
- tumult 17y agoEasy is not always powerful or expressive.
- catch23 17y agoObjC is more expressive than you think. It has the same metaphors of duck typing that ruby/python/javascript have come to adopt. You can do mixins & monkey patching very easily with ObjC as well. I would say ObjC rates very well in terms of flexibility of development. ObjC is definitely more enjoyable than Java or C++ and just slightly less efficient than ruby/python. ObjC feels closer to ruby/smalltalk than it does to python. If I had my choice of language, I'd probably choose javascript or ruby, but ObjC comes close in second. Even if you hate Apple, you should consider looking at ObjC on GNUStep.
- tumult 17y agoI've written an Objective-C compiler and runtime myself, so I think I am familiar with its limitations. Monkey patching is a terrible idea and you should avoid ever seeing that stuff in production. Objective-C is 'flexible' but dangerous in that it does not offer much in the way of type safety, and relies on handling unrecognized messages at runtime to deal with both unexpected conditions (exceptions) and also errors made by the programmer (type errors, undefined behavior, null objects, etc). Objective-C has only a small fraction of the potential performance of C++ so should not even be compared with it. They are in completely separate categories. Objective-C is used primarily as a higher-level glue for routines written in C. You cannot write all of your routines in Objective-C all the way down, because the performance is dynamic and often worse than languages with smart VMs. LuaJIT, MacRuby, and several others all have better performance (in terms of function dispatch, calling, etc) than Objective-C. If you want Objective-C code to perform well, you just start using C stuff instead of Objective-C classes and methods.