← Back to team overview

ooc-dev team mailing list archive

Re: Getting started / about iphone development


I just realized I hit reply instead of reply-all (Number one mistake I
make on a regular basis. sorry!)
Response below

On Fri, Sep 24, 2010 at 9:43 AM, Damian <damian.pop@xxxxxxxxx> wrote:
> Hi, I've just found the language yersterday and I haven't even managed to
> build a hello world, but there are a couple of questions I have:
> Would it be possible to code in ooc for iphone?

Theoretically, yes, but I'm unaware of anyone who has done so.

> Can i use c libraries from ooc?

Absolutely! There's an entire section in the documentation that
discusses using C libraries, and how to make one more ooc-like in its
use :)

> And, would it be possible to use xcode for coding/debugging?

XCode currently uses GDB as its debugger, so yes, but there's a twist
which I'll cover below.
As for actually writing code in XCode itself, there is at this time no
plugin (but someone might be able to hack one together ;D)

> I can't even imagine how debugging ooc code would be... is it possible I
> would need to debug the generated c code?

ooc is a source to source compiler, which means your ooc gets compiled
down to C. The function and struct names are usually verbose, so it's
easy to figure out what is what, but any debugging you do will be done
with the C ABI names. (off the top of my head, an ooc lib function
would looks like _Io__print_line, or something to that effect. To get
a better idea of what happens, have the compiler just generate C,
rather than compile, your Hello World. It's a great way to understand
what's going on under the hood :)

> Oh, one more question, is the language mature enough for serious
> development? From what I have read, the language looks very promising, but I
> don't know about the development/progress status.

It's being used currently for a variety of things. There is however
one caveat, which I have mentioned to Amos before, but isn't currently
a big priority, and that's the development and distribution of
precompiled ooc libs. As it stands, there is no easy way (or any way
for that matter) to create a static or dynamic lib for a given
platform, and distribute it with an interface file, without
distributing the actual source of the lib in the first place, and at
that point one might as well just use the actual source rather than
the lib. (A possible solution for this would be to extend use of the
extern keyword)

One other such thing you should be aware of is that there is no
public, private, or protected sense in ooc. The reasoning by some
being that we shouldn't protect the developer, especially since at the
C level you'd be able to effectively access everything, unless it was
declared with internal storage of course. Another reason for this is
because of the currently exhaustive list of keywords, and adding 3
more is apparently too much for some people :P

Hope that helps :)


Follow ups