gcc compiles Obj-C, but without some of the improvements apple has made. I personally wish Obj-C were more common because mindshare is a real issue.
Re:Zed Shaw on C++
by woadwarrior01 on Friday July 16, 2010 @02:21AM
(#1520453)
Ironically, the whole iphone apps goldrush seems to have contributed in a big way to increase its mindshare. Obj-C is very beautifully designed, I especially like how it adds message passing OOP to C with very minimal syntax additions. But then calling objc_msgSend for every message send, does have a small performance penalty attached, which mostly static languages like C++ don't have to pay.
So does C++ have any price to pay for say vtables?
vtables in C++ aren't free, but C++ has a couple of advantages here:
• If you're calling a nonvirtual method, you don't have to pay the vtable cost at all, just the cost of passing this. And most methods in C++ are nonvirtual.
• A call through a vtable is typically a couple of indexed fetches and an indirect jump. Objective-C's mechanism involves a hash-table lookup, which is a bit slower.
Re:Zed Shaw on C++
by woadwarrior01 on Friday July 16, 2010 @04:15PM
(#1522378)
Thats why I called C++ `mostly static`.
> a small performance penalty attached, which mostly static languages like C++ don't have to pay.
Then code the performance sensitive parts in C and link it from the language that is best suited to express the solution.
I often use a paraphrase of the Winston Churchill quote as well. There are probably many better languages for many other applications, however for high performance, cross platform large scale apps C++ is still the only game in town.
Joe's point that all the complexities have reasons behind them is a really good one. I'd suggest reading Stroustrup's "The Design and Evolution of C++" for more information.