discuss-gnustep
[Top][All Lists]
Advanced

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

Re: ANN: One Step to GNUstep - pre-release version 0.9


From: Richard Frith-Macdonald
Subject: Re: ANN: One Step to GNUstep - pre-release version 0.9
Date: Tue, 14 Jun 2011 11:32:00 +0100

On 13 Jun 2011, at 16:43, David Chisnall wrote:

> On 13 Jun 2011, at 16:15, Richard Frith-Macdonald wrote:
> 
>> ObjC 2 certainly doesn't avoid  needing the concept of getter and setter 
>> methods ... if you want to give people a gentle introductions to ObjC you 
>> can leave out setter and getter methods anyway (not that they really add 
>> complexity). A good introduction to object oriented programming would 
>> discourage the idea of properties/instance-variables and encourage thinking 
>> about what objects *do* anyway.
> 
> Setter and getter methods in Objective-C are one of the points that 
> frequently confuse new developers, because there are a lot of gotchas in the 
> assignment.  This is so widespread that Google's Objective-C style guide even 
> explicitly states how accessors should be written, and gets it wrong!
> 
> The biggest advantage of using synthesized property accessors happens when 
> you thrown in GC.  The synthesized accessors with switch between the GC and 
> retain / release semantics depending on whether GC is being used.  This is 
> most important with atomic properties, because these are much faster in GC 
> mode than retain / release mode.

My point was that these are not issues a new developer needs to have forced 
upon them .... you would start with code which simply doesn't use setters or 
getters or access properties!

>> ObjC2 adds a few good features, but it adds a lot of fairly useless 
>> complexity to a simple language and makes it much harder to learn.  In 
>> particular the blocks syntax is rather ugly and doesn't fit well belonging 
>> more to a functional programming paradigm than an object oriented 
>> programming paradigm, so that adds considerable complexity,
> 
> Blocks were in Smalltalk right from the start.  They are one of the 
> fundamental features of most object oriented languages.  The syntax is, I 
> agree, quite ugly, but they're one of the fundamental building blocks of 
> object oriented languages.  JavaScript and Self manage a rich object system 
> with just dictionaries and blocks.

Again ... I was saying that a new developer does not need (or benefit from) 
this extra complexity.   The fact that blocks were in the original Smalltalk 
design does not make them object-oriented (except to the religious believers in 
Smalltalk who consider the language to be the definition of object orientation) 
... they are a powerful feature of a language, but not one that's easily 
understood/used by beginners.

>> So your initial impression that ObjC 2 is not needed for novices is not just 
>> correct, it's IMO the case that ObjC 2 is best avoided for a novice.
> 
> Unless the novice wants to read any Apple tutorials written in the last few 
> years.  Or if they wanted to play with any frameworks originally developed 
> for OS X or iOS...

Well, that's a point ... but I was talking about the ObjC novice, rather than 
the person who wants to learn iPhone app development.
I think it would be lovely to have a great setup for the newbie iPhone/Apple 
developer but the reality is that without the same IDE and all the other 
support infrastructure, we are a *long* way from satisfying that interest group 
... yet. 

So IMO Richard Stonehouse made the correct/best choice for an introductory 
virtual machine ... it supplies the ideal default toolchain for those beginners 
who are realistically able to benefit from GNUstep as it currently stands.  
When we can provide iOS support (and ideally an IDE for iOS development which 
is something like Apple's) it will be time to target iPhone newcomers.


reply via email to

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