
Sony's next-gen application platform built on Objective C/GNUStep - aaronbrethorst
http://snap.sonydeveloper.com/pages/about/
======
swannodette
Honestly I always considered Objective-C to be one of Apple's secret weapon.
Both higher _and_ lower level then Java. Objective-C stays closer to the
spirit of Smalltalk yet presents no hoop jumping when you need the performance
of C.

That, and Cocoa was not designed by morons - protocols and delegation, _not_
inheritance, rightfully rule the day.

~~~
fleitz
I prefer to think of it more as "this language has all the memory safety of C
combined with all the blazing speed of Smalltalk."

I'm trying to like Objective-C but I don't. It feels like coding
simultaneously in two different languages and you're never quite sure which
one will be less painful to use.

It makes you write statically typed code, but you still can't figure out what
methods a class has in the IDE. On top of that half of a protocol usually
doesn't need to be implemented but you have no idea which parts, and the IDE
again can't just fill it out for you. I find I spend more time looking through
documentation and copying interface signatures than coding. It has some kind
of 'automatic memory management' but it seems barely better than that of C. On
top of that if you get a compiler error it usually points you to a piece of
code that has nothing to do with the actual error. I'm sure Objective-C was
impressive in 1986, just like Java was in 1994, but it's 2010.

~~~
chime
> you still can't figure out what methods a class has in the IDE.

Maybe I don't understand what you mean but isn't that just an XCode auto-
completion feature? Do you mean you can't see which methods belong to the
class and which are inherited?

> It has some kind of 'automatic memory management'

Initially I was not too impressed by the alloc/retain/release/autorelease
parts of Obj-C but now that I grok the concept well, I think it's awesome. I'm
only coding for iOS devices but my understanding is that for OSX, there is a
stable GC system. On iOS, you manage the memory yourself. I would have liked
to not worry about memory at all but it's not a big deal after all. If you
alloc/copy something, make sure you release it.

~~~
fleitz
I mean the intellisense (autocomplete + docs + method signature) in xcode
blows chunks compared to Visual Studio or even Eclipse.

Lots of things individually in Obj-C/Xcode are minor annoyances, but when you
add them all together it's a very annoying toolchain. Comparing the UI/Polish
in Apple products to Microsoft products, I figured that XCode would be one of
the best dev environments ever. I think it's one of the worst.

It's not that any of the issues are insurmountable, I'd just rather not deal
with them.

~~~
ido

        I mean the intellisense (autocomplete + docs 
        + method signature) in xcode blows chunks 
        compared to Visual Studio or even Eclipse.
    

That last sentence left me puzzled, seeing as how eclipse has much better
"intellisense" for java than VS does for c++ & c# (at least out of the box -
resharper brings it close to eclipse-levels with c#).

~~~
scotth
Agree 100%.

And if for whatever reason Resharper isn't available to you, then check out
the Productivity Power Tools. They'll take you in the Eclipse direction. Not
all the way, mind you, and they're buggy, but it's helpful nonetheless.

------
sudont
This seems like a great move superficially. Tons of dev's know Cocoa thanks to
iOS, and the language and compilers are open.

It will be interesting to see transition difficulty from one implementation to
the other.

At the very least, Linux is going to get a serious push for GNUStep, and a ton
more dev's if it works out.

<http://fireballed.org/linked/2010/11/24/snap/>

EDIT: Site's nuked for me. Main page cache from the fireballed.org site:

 _Sony’s Networked Application Platform is a project designed to leverage the
open source community to build and evolve the next generation application
framework for consumer electronic devices.

The developer program gives access to a developer community and resources like
SDK, tools, documentation and other developers.

The foundation upon which this project is base comes from the GNUstep
community, whose origin dates back to the OpenStep standard developed by NeXT
Computer Inc (now Apple Computer Inc.). While Apple has continued to update
their specification in the form of Cocoa and Mac OS X, the GNUstep branch of
the tree has diverged considerably.

The GNUstep core libraries strictly adhere to the OpenStep standard and
OPENSTEP implementation. They consider changes and additions to their API only
under the following circumstances:

They add methods and classes, either from Cocoa or their own extensions, if
they add substantial value and don't interfere with OpenStep and/or Cocoa
compatibility. They generally don't remove things unless there is a clearly
better implementation in newer Cocoa API Where there is a real problem with a
change, they will attempt find a technically superior work-around. In rare
cases, this might involve a change in the original OpenStep API

We depart somewhat from the GNUstep adherence in that our goal is to
thoroughly modernize the framework and optimize it to target modern consumer
electronic (CE) devices. These modern conveniences include such features as
touch displays and 3D graphics._

~~~
lenni
I'm sure they aren't writing another phone OS, but what devices exactly are
they targeting? TVs, set-top boxes, MP3 players?

I loved the hardware of a Sony MP3 a bought a couple of years ago but it was
ruined by absolutely atrocious syncing software. I hope this means they open
up their interfaces a little more and let other people integrate with their
products.

~~~
anigbrowl
PlayStation 4. It's a Good Thing, but I've been overly optimistic about Sony
adopting a policy of greater openness before. IIRC devices classed as
computers incur lower import charges in the EU than devices classed as
entertainment accessories (ie games/toys). Hence Linux on PS2, PS3,
and...?PS4? So far, this has been something of a letdown after launch.

~~~
rbanffy
> Sony adopting a policy of greater openness

Sony had, a long time ago, a family of Unix workstations. At that time, those
systems were called "open" in the sense that they played well with other
systems over documented protocols.

------
allenbrunson
wow. wouldn't have guessed this would happen in a million years.

we are all well aware of apple's successes in the last few years, but they all
seemed to be happening in their own little walled-off corner of the world.
it's typically apple's tech versus the rest of the industry. now here's a sign
that apple's influence is being felt at even deeper levels.

i guess webkit was another sign of this, but that doesn't seem as stark as
some other company adopting objective-c.

~~~
frb
WebKit (and KHTML) is written in C++.

I don't think it had any influence on this decision.

~~~
jbrennan
WebKit most probably did not have any influence here, but was mentioned
because WebKit in the past, like "Cocoa/Objective-C" in this instance, is
being used elsewhere. Hence, Apple's technologies are influencing adoption in
the industry (yes, gnustep is not from Apple but for the most part, Cocoa is a
distinctively Apple technology).

------
achille
This is a great coup for GNUStep, back in 2006 when Greg took over as
maintainer he posted a blog entry about future plans. Lots of people on
slashdot pretty much mocked him and the project.

[http://tech.slashdot.org/story/06/12/26/0342200/GNUstep-
Proj...](http://tech.slashdot.org/story/06/12/26/0342200/GNUstep-Project-Gets-
New-Chief-Maintainer)

ie: "by Psychotria (953670) ...I think this dude is a complete moron..."

Looks like Greg proved them wrong. As they say: "Living well (or rather: doing
well in this case) is the best revenge."

------
aufreak3
Site says "SNAP development is currently on hold"
(<http://snap.sonydeveloper.com/>). Dead on arrival?

~~~
Leynos
Do you think they may have run into legal issues with Apple once news of this
project started to spread?

~~~
aufreak3
Unlikely, since they're based on GNUStep.

~~~
Leynos
GNUstep being more or less a re-implementation of Cocoa (and prior to that
OpenStep). I'm not suggesting any copyrights have been infringed upon (indeed,
I'm an avid user of GNUstep), but I always wondered if GNUstep would fall foul
of the same kind of patent threats that Mono detractors seem to feel it is at
risk from if it ever gained commercial traction. In fact, Apple has already
made legal threats against manufacturers of Android phones, Android having
nothing to do with Cocoa or Cocoa Touch.

------
cpr
Interesting--they're basing the 2D graphics on Cairo, which is probably the
best choice available in the OSS world.

~~~
jonhendry
I'm too old - when I read this my first thought was "Microsoft's stillborn
90's project?"

------
j_baker
What's especially interesting about this is that Steve Jobs modeled so much of
Apple on Sony. Interesting to see things work the other way around.

~~~
mitjak
First time I hear about that. Source?

~~~
_delirium
Jobs was reportedly greatly influenced by Sony's late-70s/early-80s design
sense, especially wildly popular consumer products like the Walkman. This book
has a brief mention of Apple sharing a building with a Sony office in 1977,
though I could've sworn I've seen a longer discussion somewhere:
[http://books.google.com/books?id=W4_P8LDZOmAC&pg=PT38](http://books.google.com/books?id=W4_P8LDZOmAC&pg=PT38).
I think Jobs has actually said somewhere that the iPod was intended to be the
"Walkman of the 21st century".

------
rbanffy
I think the best thing here is that GNUStep is GPL - any improvements - and
there will be many - bringing it to the same functionality level as Apple's
equivalent will be also GPL'ed and open for all.

~~~
cobbal
Do you know if this will have any implications for applications built on it
(will they be forced to use GPL)?

~~~
xiaomai
GNUstep is actually licensed under the LGPL, so applications that link against
GNUstep libs are not required to be similarly licensed. If GNUstep were GPL,
however, the app would also need to be GPL'ed.

This is how Trolltech used to charge money for commercial use of Qt. Qt was
dual-licensed under the GPL and a commercial license, so GPL'ed software could
freely use the library, but non-GPL software would have to pay for the
commercial license.

~~~
rbanffy
Oops... Correct. GNUStep is LGPL.

I should start writing * GPL as I do with * BSD

As for linking proprietary code do GPL'ed libraries, the license is not
explicit. However, according to Larry Rosen
([http://en.wikipedia.org/wiki/GNU_General_Public_License#Poin...](http://en.wikipedia.org/wiki/GNU_General_Public_License#Point_of_view:_linking_is_irrelevant))
linking, even statically, does not make a derived work (that would be subject
to being GPL'ed by accident). Also, the GPLv3 has some different wording. I
understand the GPLv3 makes it less likely a program linked to a GPL'ed library
will be considered derivative.

------
mambodog
The thing that surprises me about this is that I took a look in at GNUStep
recently and it kind of seems... unloved. I imagine Sony's had its work cut
out bringing things up to date. Also, I would be interested to know how much
GNUStep code Sony will be using and how much it will be re-implementing. I've
heard some pretty average things about the state of the GNUStep codebase.

~~~
Stormbringer
My impression is that Objective-C is pretty big (for a minor league language)
in the US, but that elsewhere in the world its use is nearly non-existent.

Most places I've lived you could throw a shoe and hit a Java developer or a
Windows (VB/.net) programmer, but you could set a nuke off and not kill any
Objective-C programmers.

I think NeXT and Apple never really bothered promoting it outside of the US.
Australia has just about the highest level of iPhone usage per head of
population, but prior to the iPhone coming out jobs for Objective-C were
running at something like one per N-thousand Java jobs. Now the iPhone pops
up, and all of a sudden everybody wants an Objective-C programmer with 5 years
experience and proven commercial success on the iPhone... well... guess
what... you reap what you sow. Because virtually nobody in Australia invested
in Mac programming for all those years, you now don't have a deep pool of
talent to dip into.

But a similar thing may happen with Android ... anyone that didn't invest in
Linux programmers is at a disadvantage.

~~~
jonhendry
Trust me... it was rare as hen's teeth in the US also, especially during the
period after Java came on the scene but before the iPhone.

(In 2001 I found myself looking for work with 10 months' of Java experience,
and 8 years of NeXT experience. I doubt anyone hiring had any clue what
Objective-C, NeXT, OpenStep, EOF were. Certainly the HR drones didn't.)

Back in the NeXT days, I think interest was primarily in US/UK/Germany, with
some interest in France and Japan and maybe some Swiss activity due to the
investment banks.

------
frou_dh
In other words Sony feel they need to at least make the iOS brain-drain a two
way street?

------
frankus
I vaguely remember that there was an Objective-C environment in one of the
90's game consoles. I want to say PlayStation, but it could have been one of
the Sega consoles. Anyone know more?

~~~
dazzawazza
It certainly wasn't the PSX, I spent years in MIPS ASM and C on that loveable
rogue platform (from hell).

~~~
rikthevik
I still have a soft spot for MIPS. What a great assembler.

------
sandGorgon
What is the meaning of _SNAP has a re-architected display model and backend
based on Cairo evolving toward COLLADA over time._

COLLADA looks like an XML based digital asset interchange format.

------
hakl
From the chief GNUStep maintainer:
[http://heronsperch.blogspot.com/2010/11/gnustep-is-not-
opens...](http://heronsperch.blogspot.com/2010/11/gnustep-is-not-
openstep.html)

------
halfADDer
i don't see anything in the article that supports the claim of the title.
seriously, did anyone even read it?

~~~
J3L2404
From the documentation:

SNAP is Sony's Networked Application Platform and is intended to be the basis
for future consumer electronic devices. It is planned to evolve this into a
complete software stack that will allow third party applications to run on
Sony consumer electronics products. This Linux based software stack will
include operating system, device specific middleware, general and device
specific Objective C APIs including GNUstep, and key applications. The SDK
will provide the necessary tools to begin developing Objective C applications
for the SN Application Platform.

On a typical CE device hardware resources are much more limited than in the
average PC or even a netbook. In order to get the most out of the available
hardware it is therefore necessary to control access to scarce resources and
manage their use and coordinate sharing them between applications. This is one
goal of the SNAP stack. The other one is to provide the application developer
with easy to use libraries to access all capabilities of the underlying
hardware without reinventing the wheel.

------
siculars
If you can't beat 'em, join 'em.

------
curtisspope
this is the secret to dethroning apple.especially if devs can have an open app
store with less stringent rules

