[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Beginning with obj-c/gnustep

From: David Chisnall
Subject: Re: Beginning with obj-c/gnustep
Date: Thu, 22 Jun 2017 17:45:45 +0100


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.


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!

reply via email to

[Prev in Thread] Current Thread [Next in Thread]