
Objective-C in the Cloud - LinaLauneBaer
http://objective-cloud.com/2013/12/17/public-beta.html
======
zackmorris
I'm torn how to feel about this. I've been developing with objective-c on iOS
for several years now, and to say this as gently as I can ..it's not my
favorite language. I want to play devil's advocate for a moment and ask some
tough questions (these may go away in a request/response scenario where the
app isn't running continuously):

* How does Objective-Cloud handle circular references (will memory leaks be a problem?)

* Is there a way to cut down on boilerplate (having to declare member variables, accessors, synthesize them, and understand the differences between var = _var, self.var, static class vars, etc?)

* Any plans to port to other platforms (Android) and if so, will it still use objective-c?

* How do you sandbox binary code (will security be a problem?)

* Will you allow third party binaries/libraries to be uploaded with the code (or will everything be open source/code only?)

To be fair, I believe that this style of development may be the future.
Perhaps we need a wrapper around pure C because it doesn't do enough to
promote inter-module communication, and C++ dropped the ball on that.

I'm just concerned because objective-c is ideologically different from, say,
Boost, D, or Go. It focusses more on patterns than abstractions and simplicity
over correctness. I've found it nearly impossible to build an app in obj-c
above a certain size that's guaranteed to run indefinitely, stably and without
leaks. And I've found that large obj-c projects often lead to spaghetti code
and repetition, because of a lack of understanding about things like
delegates, inheritance, using notifications instead of nesting code, etc. Some
aspects of obj-c are quite brilliant (like queuing tasks on the main run loop)
but others like manual memory management are antiquated.

But kudos for this effort. I'm curious how this plays out.

~~~
graetzer
I happened to be at a presentation the creators of this gave a few months ago

* I think ARC helps with most of the problems, of course you'll have to understand where to use weak or strong etc.

* You don't have to write @synthezize anymore, literals remove a lot of boilerplate too: [http://clang.llvm.org/docs/ObjectiveCLiterals.html](http://clang.llvm.org/docs/ObjectiveCLiterals.html)

* As far as I know the protocol between server and client is just HTTP + JSON

* They use the BSD sandboxing facility [https://developer.apple.com/library/mac/documentation/Darwin...](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man7/sandbox.7.html)

~~~
potatolicious
It's still pretty trivial to mess up memory management and segfault and die.
Speaking as a full-time iOS person, I don't think I want to write a backend in
Obj-C.

When I flub a strong/weak reference on a phone, my app crashes. The user is
mildly inconvenienced as they launch the app again.

When I flub a strong/weak reference on a server, my app crashes. That server
is now down and my ops guy (probably me) will have some unkind words for me,
particularly if it's in the middle of the night.

It's tempting to say at this point "well, don't flub references, n00b", which
is much easier said than done. Bear in mind that we _did_ use to write webapps
in C - we moved to higher-level, more resilient languages for a reason.

I don't mind Obj-C/Cocoa. I'm a graphics guy at heart, so the closer-to-the-
metal implementation makes me happy and lets me spin all kinds of neato magic
with custom UIs... none of this is necessary serving data off a server.

~~~
cstejerean
Your server crashing can also be a mild inconvenience if your ops person sets
things up properly. An occasional crash should lead to an automatic restart +
an email to investigate later. A single process crashing is not a good reason
to wake anyone up in the middle of the night.

~~~
Tom9811
Indeed, the cloud apps are restarted automatically after a crash.

------
pepijndevos
So this is still pretty mac-centric, right?

I tried using Obj-C on Linux as a "better C", much like people use C++, D,
Rust...

The language is... acceptable. The ecosystem is just, mac, mac, mac.

~~~
Tom9811
We made the service completely non-mac-centric. One of the basic ideas is,
that you can develop a service on the mac that uses all the frameworks of OS
X, but the client can be written in C, C++, Java, … Anything that knows HTTP
and JSON.

------
alexgaribay
This looks very awesome! I like what this is providing. I really like coding
in Obj-c (not my most used language but love the syntax and feel) and being
able to make a backend using code that could be shared with an iOS/Mac client
is a very attractive feature to myself.

I'm already sold on your service. I can't wait to get started and I'm really
looking forward to the iOS and Mac SDKs.

------
yoda_sl
WebObjects 4.5 anyone? For those not familiar WebObjects was the Objective-C
framework created at NeXT for developing Web Apps in the 90's.

It was then later on ported to 100% Java.

WebObjects 4.5 was the latest ObjC version and was cross platform even at the
time: NeXT, Windows, Solaris and HP-UX.

------
millerm
I've been playing around with the API and tools for the last hour. Seems
pretty cool. Very easy to understand and very straightforward. It sure is nice
to be able to share code/language between the client and the server. If not
for immediate full blown production usage, this can still be a very effective
tool for an iOS/Mac developer who might not know their server's language and
frameworks. The developer will be able to get a useful, functional prototype
up and running very quickly. It does seem like a very enabling tech for
iOS/Mac developers.

Edited for style.

------
mentos
I currently use Parse but I could definitely benefit from not having to switch
between Obj-C/Javascript(Parse Cloud Code) when writing my backend. As well it
would be nice to copy/paste logic between client/server. However, I think I'd
have to see Push notifications and another layer of abstraction added to the
database layer before I considered switching to Objective-Cloud.

If Apportable delivers on its promises you could theoretically never leave
Objective-C land.

------
jds375
This definitely looks very interesting. I think I'll give it a try later this
week. It would be awesome to do some coding in Obj-c for HTTP services for a
change. Also, the name works out perfectly (Objective-C)loud, hah.

------
Tom9811
The client SDKs will be published next week.

------
twodayslate
Very cool. Looking forward for the iOS SDK

------
applecore
objcloud.com is available, why not go with that?

~~~
rfnslyr
Because I just bought it for no real reason.

