Skip to main content

Posts

Showing posts with the label language

Computer Languages Change - Like Spoken Languages

Are computer languages inherently "artificial" and "pure" — either like Esperanto or a dead language, such as Latin? Or, are computer languages as much "living" as spoken languages? Understand, I am not considering low-level assemblers or "dead" computer languages that exist in virtual museums (and yes, there are tech archives to explore). I mean the languages that are in wide enough use that programmers develop attachments to them and vocally argue about their futures. In spoken languages, some people are purists. These experts like to "prescribe" grammars and the meanings of words, insisting on a rigid approach to a language. By comparison, some scholars of language as "descriptive" researchers, trying to document a language's evolution. Most scholars, however, are a bit of both — we try to prescribe dominant rules, while accepting change will happen. The French try desperately to maintain an official "Frenc...

Computers Languages, Human Languages

One reason I am writing about learning to code Cocoa apps for OS X and iOS is that I view programming languages as specialized human languages. After all, humans do create the languages. We create computer languages with our notions of what a language should be, from its grammar to its level of abstraction. In my post on the generations of programming languages, I mentioned that languages are interpreted, compiled, or translated, with some variations and complexity within those processes. Let's consider how these compare to the human language process. Compiled Languages About as close to the "natural" machine code as many programmers get on a regular basis, compiled languages remind me of our "native" spoken and written languages. After a while, we think our silent thoughts in a human language. We are entirely unaware of how our brain converts (or compiles) the language into neurological pulses. For me, English seems to be the language of my brain — eve...

Programming Language Hierarchies

Computer languages are often divided into groups, such as "3GL" and "4GL" — third- and fourth-generation languages. The divisions aren't perfect, and don't always represent a chronological evolution. Trends that seemed to be advancing programming have been abandoned when they proved overly complex or simply unnecessary. Human languages experience similar trends. Artificial attempts to control languages, human and computer, often fail because the users of the languages have more influence than the "gatekeepers" wish. A few languages are better "controlled" than others, but in the end the people seeking to communicate will do whatever they believe is needed. I've heard compiler designers complain about software programmers "abusing the language" just as grammarians complain about emerging writers. One difference, and it is a serious one, is that computer languages rely on strictly defined compilers. Curiously, French is con...

Learning to Code: Programming Books for My Cocoa Journey

To refresh my programming skills in C and begin my Objective-C journey, I am using the following books. These books are only the beginning of my trek through the Xcode jungle towards OS X and iOS apps. Learning Cocoa with Objective-C: Developing for the Mac and iOS App Stores . Apple. Sebastopol, CA: O'Reilly, 2001. 0596001606 Clair, Robert. Learning Objective-C 2.0: A Hands-on Guide to Objective-C for Mac and iOS Developers (2nd Edition) . Boston: Addison-Wesley, 2013. 0321832086 (pbk.) Hillegass, Aaron. Cocoa Programming for Mac OS X . Boston: Addison-Wesley, 2004. 0321213149 Hillegass, Aaron. Objective-C Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides) . Atlanta, GA: Big Nerd Ranch, 2011. 0321706285 (pbk.) Kochan, Stephen G. Programming in Objective-C (Developer's Library) . Indianapolis, Ind.: Sams, 2004. 0672325861 Nutting, Jack, Dave. Mark, and Jeff. LaMarche. Learn Cocoa on the Mac . New York: Apress, 2009. 9781430218593 (pbk.) Perry, Greg M. Absolu...

Learning to Code: The Month (and More) of Cocoa Begins

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 t...