Objective-C in web development

user187291 picture user187291 · Sep 7, 2011 · Viewed 8.6k times · Source

Is it possible/feasible to use ObjC (not necessary the Apple flavor) to develop server-side web applications? Is GNU ObjC toolchain at all usable? Please share your thoughts and experiences.

Upd. I'd like to hear more answers with concrete practical experience, like "i tried/use .... and it is great/sucks, because...". 300 bounty!

Upd2. The rationale behind my question is that I'm about to develop an iOS app with a large web-based backend and thought it would be nice to use the same toolchain/IDE for both parts. But, alas, the answers so far show that this is not going to be feasible. Thanks everybody for taking time.

Answer

samkass picture samkass · Sep 18, 2011

The answer that the market has pretty definitely settled on is that yes, it's possible, and no, it's not feasible to try to push such a thing on the market. Apple's WebObjects (what the Apple Online Store uses) used to be Objective-C and even they moved it to Java.

As for the GNU Objective-C toolchain, I wouldn't be hugely optimistic about its future, either. Since they moved to GPLv3, Apple has dumped them and built their own Objective-C compilers around LLVM, so those code paths are probably getting a little rusty on the GNU side. GNU "supports" everything under the sun, but the more something gets used the more its implementation gets vetted.

As for the "I've used" bit, yes, I used the Objective-C variant of WebObjects back in the day. It was pretty good for its time, but Objective-C's relatively low-level memory allocation needs and its non-C syntax made it a little awkward. And its strong typing was great for core development but burdensome for the "scripting" aspects of web development.

In the end if a language is Turing-complete you could theoretically do anything in one language you could do in another, but the lack of an ecosystem of libraries for parsers, scripting, database interactions, indexing, etc., means you'll be starting from a pretty deep valley compared to Java or a JVM-compatible language.