Hacker News new | ask | show | jobs
by zipdog 5637 days ago
I still like the premise, although I feel that Python has become far less esoteric while still retaining the favourite for a large number of quality programmers. And I can't think offhand of any newer languages that have taken it's place (maybe iOS counts?). But that might just be my small sample size.
1 comments

From SF at least, I'd have to say Ruby, followed closely by objective c and clojure.
Does anyone really think that Obj-C is elegant and powerful in the same way Python, Ruby, or Clojure are? If so, I would like to hear the arguments for it.

edit: I understand that the iOS SDK is well-thought-out and easy to work with, but there could have been an equally good API for Python, Ruby, or (if your argument is performance) one of the more performant lisps. I don't think the SDK alone justifies Obj-C.

Does anyone really think that Obj-C is elegant and powerful in the same way Python, Ruby, or Clojure are?

The iOS SDK is elegant and powerful in a different way. There is more syntax. Designs tend toward more exposed entities. However, there is less coupling to particular implementation strategies.

Let's take operations on dates as an example, specifically jumping to "the same day of the next month." This is not as simple as you might think at first, since months vary in length in an arbitrary pattern. In many high-level language libraries, you simply grab your date and you do a single call. (In Ruby: Date.today >> 1) With iOS, you end up having to use 3 different objects. (Calendar, Date, and DateComponents)

Working in Objective-C reminds me of the best of "mainstream" Object Oriented programming from the mid 90's. There is a bit too much arcana, seemingly too many entities, but if you work through some real examples, you find that some good thought was put into things.

I wouldn't say Objective-C is "elegant" in the same way a scripting language can be, but it and its common libraries (i.e., Cocoa/NextSTEP) illustrate some very sound API design, and object-orientation in the Alan Kay-intended/SmallTalk sense.

edit: sorry, missed your edit. I'd probably agree with you and chc now. Obj-C was a clever hack for its time, but compared to modern dynamic/scripting languages, it's not really that special -- outside from being relatively high-performance due to its C compatibility, as you mentioned.

That's how it always seemed to me. Objective-C is a slightly above-average language with really good APIs.
If there could have been an equally eloquent API for those other languages, why wasn't there?

Obj-C + stringent/verbose coding standards = powerful APIs.

I've been writing Cocoa apps since 2002 and I pretty much love everything about programming on it, from the First Responder chain, the view hierarchy, bindings/observing, the new GC, blocks, properties, etc. (and more I'm forgetting) but I especially like how clear the design patterns are implemented. It's very rare to not know where a particular responsibility lies.

When it comes to the state of Mac/Cocoa programming, my biggest gripe is that Xcode 4 isn't progressing anywhere near fast enough. The IB integration should have happened long ago.

I would venture that Ruby is more popular (at least Rails seems to be among web devs) than Python or at least ends up with more press about it, so I don't know if Ruby would be a good choice. I imagine that (at least in web development) Ruby/Rails is one of those languages that people learn because it seems like a requirement. I could be completely off-base here though. The real majority of web-devs could still be on PHP/MySQL, while the vocal minority are on Rails/Django/whatever.
The TIOBE index instead suggests that Python is getting more use: it just won their award for most market share growth in 2010, putting it now at 3.5x Ruby's market share. Rails has been (and still is) incredibly influential in the web dev scene, which is why it might seem otherwise.
Haskell has a tendency to steal people away from python too.