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: Mon, 13 Jun 2011 16:15:35 +0100

On 13 Jun 2011, at 15:35, Richard Stonehouse wrote:

> On Sat, Jun 11, 2011 at 08:40:14PM +0200, Ivan Vučica wrote:
>> On Fri, Jun 10, 2011 at 18:40, Richard Stonehouse <address@hidden
>>> wrote:
>> 
>>> 
>>> What sort of developer would you see as having need of clang and
>>> Objective C 2?
>>> 
>> 
>> I'm not really interested in clang per se, but it does bring Objective-C
>> 2.0.
>> 
>> I'm interested in using GNUstep as an educational environment for developing
>> GUI applications. While by itself GNUstep currently has only limited appeal
>> (primarily limited to enthusiasts like me, but of course not exclusively),
>> it could be a very neat educational environment.
>> 
>> I'm viewing GNUstep as a Mac OS X -->alternative<--... at least for my
>> needs. Not because GNUstep is bad, but because Mac OS X is still ;) better.
>> Primarily this is due to Gorm being a bit clumsy to use (despite being
>> technically excellent), and Project Center being very, very clumsy to use.
>> No matter, in the organization I'm working with, there are tons of PCs since
>> Macs are too expensive. Having GNUstep that "just works" would be great.
>> 
>> Objective-C 2.0 would allow me to initially skip over setter and getter
>> methods. Initially, because they are of course essential, but if I'm talking
>> to kids who are coming from Logo/BASIC/C/C++ background primarily solving
>> algorithmic tasks on various contests, then complicating their life by
>> explaining reference counting, setter and getter methods just to get them
>> introduced to "practical" GUI programming,
> 
> Thanks, that's very useful to know. It knocks on the head the theory
> I was developing, that Objective C 2.0 is needed by 'power users' who
> know what a fragile ABI is rather than 'novice users' who might be
> enticed in by an easily installable VM. The 'novice users' need it
> too. So ... it looks like we want Objective C 2.0, through clang or
> GCC 4.6 or (I think preferably) both.


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.

It also has nothing to do with reference counting ... thats a completely 
different issue (do you use reference counting or garbage collection), and if 
you want to use GC then it's been around for traditional ObjC a lot longer than 
ObjC2 (where it's currently in the process of being added in svn trunk by 
David).

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, and the dot syntax for property access 
encourages writing of inefficient code (which is probably the last thing you 
want to encourage in a novice). 

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.

It would make sense to provide a traditional system as default, with an 
alternative build for people who want to play with the new toys in development.





reply via email to

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