|
From: | Ed Den Doolaerd |
Subject: | Re: Beginning with obj-c/gnustep |
Date: | Thu, 22 Jun 2017 14:12:04 -0700 |
Hi,
On 22 Jun 2017, at 16:50, Ed Den Doolaerd <edendoolaerd@gmail.com> wrote:
>
> Hello guys,
>
> let me shortly introduce myself: I've been a mainframe programmer/analyst for 33 years, mainly programming in COBOL. On the PC platform, besides some elementary stuff in C and Java, I have no programming experience.
>
> I wanted to try programming on the PC, using open source software. I will not go into the details of how I arrived at it, but I believe having good reasons to choose for Objective C / Gnustep on FreeBSD. I hoped you could tell me if this seems feasible with my background, or if I would be better off to start with another programming language /OS, and coming back to Objective C later on.
First: I am totally biased on both counts (as the libobjc2 author and a former FreeBSD Core Team member), so please read into this what you will:
If you more or less understand C (i.e. the commonly used parts of the language, not all of the crazy pointer arithmetic stuff) and you understand the Java object model, then Objective-C should be relatively easy for you. The biggest hurdle is likely to be the syntax, though Objective-C syntax is more COBOL-like than C-like[1], so this might not be a problem.
If you use ARC (which works out of the box on FreeBSD) then 99% of the time you can avoid thinking about memory management (cyclical data structures will leak, but once you notice those then it’s relatively easy to fix). The main difference beyond that from Java is that method invocation (message dispatch in Smalltalk / Objective-C terminology) is not tied to the class hierarchy. Before invoke_dynamic was added to Java, Redline Smalltalk (Smalltalk on the JVM) implemented something similar by adding an interface for every method and inserting a cast-to-interface before each method invocation. That may help you as a mental model.
David
P.S. One of the FreeBSD committers has written his own Foundation implementation, which has better FreeBSD integration and a more permissive license, but is far less feature complete than GNUstep. If you’re mostly interested in smallish server tasks, it might be a better fit, as it has a smaller footprint. If you’re interested in GUI applications or more complex server things then it probably isn’t.
[1] Please, no one kill me for saying that!
[Prev in Thread] | Current Thread | [Next in Thread] |