On 04/11/10 00:51, Walter Bright wrote:
Michel Fortin wrote:
You heard that right: someone is considering writing Cocoa programs
because of D!

That's great news!

I think we should try to attract Cocoa programmers (and would-be Cocoa
programmers) by offering them the strengths of D. What are those
strengths? Some are things you probably take for given (overloading),
others are design by contract, generic programming, nested classes,
mixins, integrated unittests and documentation, memory safety, a
race-free threading model, did I miss anything? All those good things
aren't available in Objective-C and thus can't be used with Cocoa. I
want to make those them available to Cocoa programmers. And for this,
I need them to work with the Objective-C object model. By making
Objective-C objects bind to D semantics, all those feature will "just
work" with Cocoa with minimal changes to the frontend (and well
written bindings).


I don't know O-C. I've never written a line of it. So I'm shooting in
the dark about the best way to attach it to D.

It's an odd little language, took me forever to pick up even the basics, unlike D/C++/Java/C# etc, everything seems so backwards to me. The following might help clarify somewhat (although it may be incorrect, I'm sure someone will correct me if it is - I am but an amateur when it comes to ObjC).

ObjC has (optional) named parameters, when it does they become part of the method name, eg:

[someObj foobar];
[someObj foobar withString:@"bar"];

is effectively equivalent to (in pseudo-D):

someObj.foobar();
// Where pseudo-D has named parameters, and uses the same method name
// as the Obj-C code
someObj.foobar:withString:(withString="bar");

I agree with all your goals.

One possibility: simply adopt O-C syntax.

I personally would be against this, I'm sure there are a lot of people who wouldn't be though. D has a really nice, simple syntax - the only syntactic errors are purely my finger missing the ; key etc... I still struggle with Obj-C syntax, heck, you can get Obj-C syntax wrong and it'll still compile with no warnings, then you're left wondering why your app is segfaulting.

--
Robert
http://octarineparrot.com/

Reply via email to