Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've put together a few things with Objective C over the years dating back to OSX 10.1 (yuck PB sucked then) to iOS. Most ended up being ported to Java or C#.

The syntax IS absolutely horrible if you ask me as it results in crazily verbose ways of expressing stuff. Everything is "too meta" and there are very few first class parts of the language. It still FEELS like it's hacked together with C macros (which was what it originally was).

Add to that the reference counting implementation (when GC is not enabled which you can't do on iOS) and it's just painful. Also the lack of any decent threading abstraction - ick.

I think there is a lot of hype around it. It's not where we should be in 2012. Android does better with bastardised Java if you ask me.



Also the lack of any decent threading abstraction - ick.

What? Grand Central Dispatch is a lot easier to work with than most explicit threading mechanisms and with the new block support is a lot less verbose than the typical Java thread-based approach.


It's just a fancy thread pool/task queue with a fugly syntax extension not some magic unicorn that poops rainbows.

Java/C# don't need a language extension - the functionality exists outside the semantic boundary of the language. Another cludge in Objective-C.

C# (ThreadPool/async framework/Windows workflow) and Java (ExecutorService/lots of 3rd party frameworks) have had them for years with well-known communication, thread safe data structures, concurrency and locking semantics.

Most of the verbose mess you see in Java threads is because the person writing it doesn't know much.


Your "fugly syntax extension" is your old friend the closure. The syntax is as good as its going to get in an Algol derivative. I'll take it over plain java any day of the week. If Kotlin takes off on Android then we'll have a real contest.


Hm I bed to differ. Have you ever used C#?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: