Objective-C and Programming languages

  • Thread starter Thread starter phylotree
  • Start date Start date
  • Tags Tags
    Programming
Click For Summary
SUMMARY

The discussion centers on the relevance of programming languages, particularly Objective-C and its comparison to C/C++ and Java, in the context of hiring practices for iPhone and Android development. Objective-C, a subset of C, supports object-oriented programming (OOP) but lacks certain features like metadata and metaprogramming, which are present in C++. The conversation emphasizes the importance of hiring experienced developers familiar with specific platforms, as understanding OOP concepts alone is insufficient without knowledge of language-specific implementations and libraries. The participant also expresses interest in Scala, highlighting its combination of OOP and functional programming for future development.

PREREQUISITES
  • Understanding of Object-Oriented Programming (OOP) concepts
  • Familiarity with Objective-C and its relationship to C/C++
  • Knowledge of Java and its role in Android development
  • Awareness of Scala and its features for modern development
NEXT STEPS
  • Research the differences between Objective-C and C++ regarding OOP implementation
  • Explore the features of Scala and its applications in Android development
  • Learn about the implications of late binding in Objective-C versus early binding in C++
  • Investigate best practices for hiring developers with specific platform experience
USEFUL FOR

Software developers, technical leads, and hiring managers involved in mobile application development for iOS and Android platforms.

phylotree
Messages
48
Reaction score
2
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.
 
Technology news on Phys.org
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 ;-)
 
phylotree said:
Do we need to hire people with iPhone experiences while we already have a team of android ?

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?
 

Similar threads

  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 16 ·
Replies
16
Views
4K
  • · Replies 9 ·
Replies
9
Views
2K
Replies
3
Views
4K
  • · Replies 8 ·
Replies
8
Views
6K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 26 ·
Replies
26
Views
6K
  • · Replies 3 ·
Replies
3
Views
3K