Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Programming Apple

Objective-C Comes of Age 437

New submitter IdleThoughts writes "Sometimes it takes a long time to spark a revolution. Long the ugly duckling of programming languages, iOS' Objective-C passed C# in the 'TIOBE Programming Community Index this month and seems on a trajectory to overtake C++ in the next few. It was invented in the early 1980s by Brad Cox and Tom Love, with the idea of creating 'Software Integrated Circuits' and heavily influenced by Smalltalk — yet another legacy from Xerox PARC, along with desktop GUIs, ethernet and laser printers. It was adopted early on by Steve Jobs' NeXTStep, the grand-daddy of all that is now OS X. It had to wait, however, for the mobile device revolution to have its day, being ideally suited to the limited resources on portable devices. It's still being actively developed by Apple and others, sporting the new automatic reference counting and static analysis in the Clang compiler. It turns out it has supported dynamic patching of code in applications all along. What more surprises does this venerable language have up its sleeve?"
This discussion has been archived. No new comments can be posted.

Objective-C Comes of Age

Comments Filter:
  • Re:New features (Score:4, Interesting)

    by flakas ( 2637233 ) on Friday May 11, 2012 @01:53PM (#39969685)

    Sad sad day. Objective-C sucks! C# rocks!

    In many ways this is true, but then again, they aren't the same kind of languages. I absolutely love C# syntax and the easy readability of the code. .NET libraries are also wonderful, and in general I would rather use C# than Objective-C because of this.

    But Objective-C is closer to C and C++ than C#. I would however hope that Apple brings something like C# to OS X and iOS. I would start developing with them right away.

  • by Maury Markowitz ( 452832 ) on Friday May 11, 2012 @02:07PM (#39969935) Homepage

    "Even Apple's own old Dylan was a more interesting and innovative as a language than Objective-C."

    Agreed. I loved the multi-interface stuff. Why doesn't anyone else pick that up? It would be particularly easy to implement in Bundles. But...

    "the availability of libraries is often more important than the language itself"

    Bingo. Lets be honest, is any native library set even *remotely* as good as Cocoa out of the box? With the exception of Delphi I've fiddled with them all, and the answer is a resounding "no!". All you have to do is compare the basic text editing widget across libraries and you can draw your own conclusions.

  • Re:Yes but (Score:3, Interesting)

    by Galestar ( 1473827 ) on Friday May 11, 2012 @02:10PM (#39970025) Homepage

    Similar to C#/VB and the other .NET languages...

    Not in the least. Windows is not tied to a language (you can use whatever you like), where iOS is. Now I can't comment on what languages are available for Windows Phone 7, or Windows 8 has/will have, but they do not have the platform adoption that iOS does. C# usage is based on its merits, where Objective-C usage is based on Vendor lock-in.

  • by gwking ( 869658 ) on Friday May 11, 2012 @02:48PM (#39970787)
    I find Android apps are not nearly as useful as similar iOS apps. They are usually slower, uglier, and buggier - free or not.

    Given the choice between a free Android app that is a turd, and a great iOS app that costs $1, I'll gladly pay the $1.

    Also, for developers, I think there is more to it than just the money. With iOS you can test a reasonable amount of the devices on the market and the screen sizes they use. With Android? Not unless you happen to have a few hundred Android devices kicking around and a few months to test your app on all of them. Take into account the absolutely terrible hardware on the currently selling low end Androids that can barely keep up with the iPhone 3GS, the problems with having an app on the SD card instead of on the builtin memory, and then all screen sizes and aspect rations. Ugh.
  • Re:Method Syntax (Score:4, Interesting)

    by spongman ( 182339 ) on Friday May 11, 2012 @03:22PM (#39971323)

    agreed. when i look at obj-c code it feels like someone's pushing hot pins into my eyes.

    seriously.

    why have (c-style) syntax for declaring and accessing variables and functions, and a completely different syntax for declaring and accessing bound methods?

    it makes no sense. it doesn't add anything semantically to the language. it adds another syntax construct just for the sake of it. completely unnecessary.

    and why are properties accessed using c-style syntax, and not methods?

  • by Anonymous Coward on Friday May 11, 2012 @04:43PM (#39972699)

    There is a common consensus in the CS community that pointers as opposed to references, pointer arithmetics, direct type conversion ("memory overlays") etc. are unsafe

    In ObjectiveC we are really using objects more as references than as pointers.

    Basically you come off here as just being afraid of something because you've been told it's scary, not because you've seen real issues.

    As a comparison, take Ada, Eifel, Java, Haskell -- these are all much safer.

    Exactly my point, As I said, I was a Java programmer (for almost a decade) - Objective-C is not really less safe at this point in practice.

    Let me summarize. You chose to ignore almost everything of what I've said -- I've written explicitly about the language, not how it is used in practise or its implementation, and have presented an argument for this point of view --, have personally insulted me (makes you wonder who's the real snob?), made all kinds of presumptions about my background and expertise with programming languages, all of which are wrong btw, and then boast about your fantastic proficiency with Objective-C.

    That's alright. Sounds like you're a typical Apple user/developer.

    Given that and since you don't like my general language critique, I have something special for you. The main disadvantage of Objective-C in practice is, of course, that you have to write the whole fucking program again if you want to have it run on Android or any other non-Apple platform. I wish you good luck and fun with that!

I've noticed several design suggestions in your code.

Working...