This week I am beginning a month (and more) of intense "Cocoa" immersion. Cocoa, for those outside the OS X/iOS development realm of Apple, is the framework created by Apple's wizards to make programming for Apple hardware a (tiny) bit easier.
Since I want to develop applications for Macs and iOS devices, I need to learn the Cocoa frameworks. It's going to be a long journey, and a fun one. On this blog, I'll be posting about programming as an educational experience. I'll also continue to explore programming as a form of writing.
I'm surely not going to do the topic justice, but allow me an attempt to explain how computer languages and frameworks are similar to other languages. When we write in any language, we start with a core of basic words and grammar. Computer languages are more concrete and simplistic than living languages, but you might compare them to the languages children speak.
I am not going to go über-geek in this post and explain the translation of a computer language to executable code. Let's just accept that the simplistic brain (CPU and other computer components) does like the human brain and converts words to thoughts and actions. (I will in a later post, which I have already outlined.) I'm going to keep this discussion at the higher level (relatively speaking) of the programming languages most mortal coders use. The art of assembly language coding is limited to a sect of high priests of hardware in the modern coding universe.
Most programmers developing for Apple hardware use the Objective-C programming language. As with human languages, Obj-C represents an evolution from other languages. Scholars can trace the family tree of English, and we can trace the family tree of Obj-C. Most programming texts for OS X/iOS include a short history of Obj-C, explaining that the language was developed as an extension of the "C" programming language, borrowing ideas from Smalltalk and other object-oriented languages.
See:
Computer languages evolve, even after they are initially designed. Objective-C, already C with ideas from Smalltalk, continues to pick up words and syntax elements from other languages. American English adds words from other languages, and new words are created. Objective-C has done the same. And, sometimes, a language loses a word or the syntax changes over time. The original Obj-C was extended when Apple introduced OS X, based on the NeXTSTEP (or NextStep) operating system. Obj-C was updated again significantly in 2006, but overall the language core has remained relatively stable (unlike the cores of some other languages).
By itself, Objective-C is okay but not very useful for creating complex OS X/iOS application. Apple developers need to use the Cocoa frameworks to craft applications. Because Cocoa is so fundamental to Apple programming, many refer to all coding for Macs and iOS devices as "Cocoa programming" — an accurate description, since calling Cocoa code is essential to the process. The Cocoa frameworks are numerous and seemingly ever-expanding as Apple adds to their libraries.
For example, Apple's Cocoa frameworks include the "Cocoa Touch" framework for touch-screen development. Instead of creating a new way to deal with touch screen interactions, a programmer uses the Cocoa Touch framework. Again, when I write about computer languages later this month, I will explain how frameworks (for better and worse) extend programming languages. For now, you can read Apple's pitch to developers:
This first post is short; you can expect me to explore the preceding topics in greater detail throughout the month. Writing about what I learn and observe will help me — and my readers.
Since I want to develop applications for Macs and iOS devices, I need to learn the Cocoa frameworks. It's going to be a long journey, and a fun one. On this blog, I'll be posting about programming as an educational experience. I'll also continue to explore programming as a form of writing.
I'm surely not going to do the topic justice, but allow me an attempt to explain how computer languages and frameworks are similar to other languages. When we write in any language, we start with a core of basic words and grammar. Computer languages are more concrete and simplistic than living languages, but you might compare them to the languages children speak.
I am not going to go über-geek in this post and explain the translation of a computer language to executable code. Let's just accept that the simplistic brain (CPU and other computer components) does like the human brain and converts words to thoughts and actions. (I will in a later post, which I have already outlined.) I'm going to keep this discussion at the higher level (relatively speaking) of the programming languages most mortal coders use. The art of assembly language coding is limited to a sect of high priests of hardware in the modern coding universe.
Most programmers developing for Apple hardware use the Objective-C programming language. As with human languages, Obj-C represents an evolution from other languages. Scholars can trace the family tree of English, and we can trace the family tree of Obj-C. Most programming texts for OS X/iOS include a short history of Obj-C, explaining that the language was developed as an extension of the "C" programming language, borrowing ideas from Smalltalk and other object-oriented languages.
See:
- http://www.youtube.com/watch?v=nZ8KWsaOTfQ
- http://cupsofcocoa.com/2010/09/03/objective-c-a-brief-history/
- http://www.techotopia.com/index.php/The_History_of_Objective-C
- http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html
Computer languages evolve, even after they are initially designed. Objective-C, already C with ideas from Smalltalk, continues to pick up words and syntax elements from other languages. American English adds words from other languages, and new words are created. Objective-C has done the same. And, sometimes, a language loses a word or the syntax changes over time. The original Obj-C was extended when Apple introduced OS X, based on the NeXTSTEP (or NextStep) operating system. Obj-C was updated again significantly in 2006, but overall the language core has remained relatively stable (unlike the cores of some other languages).
By itself, Objective-C is okay but not very useful for creating complex OS X/iOS application. Apple developers need to use the Cocoa frameworks to craft applications. Because Cocoa is so fundamental to Apple programming, many refer to all coding for Macs and iOS devices as "Cocoa programming" — an accurate description, since calling Cocoa code is essential to the process. The Cocoa frameworks are numerous and seemingly ever-expanding as Apple adds to their libraries.
For example, Apple's Cocoa frameworks include the "Cocoa Touch" framework for touch-screen development. Instead of creating a new way to deal with touch screen interactions, a programmer uses the Cocoa Touch framework. Again, when I write about computer languages later this month, I will explain how frameworks (for better and worse) extend programming languages. For now, you can read Apple's pitch to developers:
This first post is short; you can expect me to explore the preceding topics in greater detail throughout the month. Writing about what I learn and observe will help me — and my readers.
Comments
Post a Comment