Tuesday, January 15, 2013

Objective-C

I've worked in a lot of programming languages over the years. Some I taught to myself, some I took classes in, some I tutored others in, some I developed curriculum for.

Basic
   QBasic
   GW-Basic
   BASICA
   Apple Basic
   Atari Basic
MS-DOS Batch
Logo
Pascal
C
C++
KSH
CSH
BASH
Fortran
J++ (a.k.a. MS-Java)
HTML
Javascript
Lisp
AutoLisp
CNC G-code
ActionScript
Progress
WebSpeed
A couple of versions of some fax server language.
PHP
MySQL

I've even dabbled in COBOL and ColdFusion, but only deep enough to help others fix their code.

Right now I'm trying to learn Objective-C so I can write some iPad apps. This is proving to be the hardest language I've ever tried to learn. I'm used to my programs all belonging in one big file.
Declare stuff at the beginning.
Use it later.
Maybe call in a few libraries from somewhere else.
If you want to get really fancy you make multiple systems each with their own languages talk to each other.
With Objective-C you start with five different files that call several other libraries. Each Object you create adds two more files to the mix. And when you go looking for help in forums you can find code but have no idea where it's supposed to go. Or if you know, they haven't mentioned the line that needs to be added somewhere else. Nothing is only done in one place.
I find myself working with two books, an online reference library, and three different video tutors that I skip between with a fourth that claims it's downloading now. But none of these sources really answer my questions when I get in trouble. There's multiple ways you could do something, but then you have to know whether you refer to it by putting things in brackets or separating them with dots or what.
The error messages are more useful than "Error #652" or "Check Engine", but they often leaving me back at, "OK, there's a mystery line that has to go somewhere. I wonder where." or "look, you clearly understand what I'm trying to do. If you won't fix it can you point me to somewhere I can look the answer up?"


No comments: