Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Objective-C and Programming languages

  1. May 22, 2012 #1
    Today, I skimmed through a couple of messages posted by one of my technical leads in my company blog to share with everyone, and something cropped up in my head and wow, I am scratching my head wondering if I actually understand or even come to an agreement that once people truly understand the concepts of object oriented programming, it doesn't matter which language they use, things are neat in place. To a degree this seems true that development is easier if the programmer adopts a programming philosophy based on the peculiarities of the language.
    Do we need to hire people with iPhone experiences while we already have a team of android ? and it seems to me that he confuses the programming language transition as if he lost his background of programming language theories, worse I doubt my own skills.
    I suppose Objective-C and C/C++ language constructs offer users the same concepts and both Objective-C and C++ support OOP paradigm and Objective-C is a subset of C only. Android mainly uses Java while Java superseded C++ in its included GUI stuff which makes it impure and more versatile. Seeing it as a point that could hit the market, Microsoft brings up C# which works better with GUI, Services, Networking, Web Applications etc. Yet it is not for free.
    Objective-C offers late binding [one done at runtime], but this can not be used as a feature to state that it is better than C++, it is to me just a new redefinition of the language to better fit the hand chips. C++ does offer early and late bindings. That also means Objective-C does NOT include the concepts of metadata and thus metaprogramming. It looks up methods and deals with defined objects at runtime and hence offers runtime errors.

    Well, what is next to tell you ? if you could add in any, please tell me.
  2. jcsd
  3. May 22, 2012 #2


    Staff: Mentor

    Not sure what you're getting at but if your company is doing serious work on iPhone or Android then of course its best to hire people with a track record on those platforms. While knowing OO concepts are important, there's still the problem of how the language implemented them and how the associated lib classes implement them that consumes a programmer developing on the platform. Beginners will often choose the obvious constructs only to find later that they may be very inefficient for the task at hand. Only experience helps in these areas.

    For me, I've traveled thru the maze of languages from FORTRAN/COBOL/Macro ASM -> C -> C++ -> C++ with Corba -> Java -> Groovy -> and now I'm looking at Scala. But of all the languages I've developed in there are some lesser known ones that really fascinate me: Tex, Lisp, Trac, Forth, Prolog, AWK, Ruby but I keep going back to the simplicity of AWK. There's something about its compactness, quirkiness and availability on so many platforms. I always tell people, I have a small AWK script that does this or that when in fact it may not be that small. (I also was very fascinated with Tex before I discovered Awk).

    Right now, I'm looking at Scala for future development beyond Java. It brings OO and Functional Programming together and provides a whole way of doing things in a very compact and almost unreadable way (at least for now I get lost in its more arcane features). Scala can be used to Android development as well since it runs on top of the JVM and can interoperate with Java classes.

    So choose your language, become experienced, go forth and conquer: Veni, Vidi, Vici or is that Veni, Vidi, Relinqui ;-)
  4. May 23, 2012 #3


    User Avatar

    Staff: Mentor

    To make an analogy, if you have a team of Windows programmers, would you feel comfortable turning them loose on Mac OS development? Would they feel comfortable doing it without a lot of preparatory studying?
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook