Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
GNUStep Programming Sony Apple

Sony Adopts Objective-C and GNUstep Frameworks 345

EMB Numbers writes "Sony has revealed that the new SNAP development environment for 'consumer electronics' is based on Objective-C and the open source GNUstep implementation of Apple's Openstep spec. While Apple has continued to update their specification in the form of Cocoa and Mac OS X, GNUstep has preserved the original standard. Anyone familiar with Cocoa Touch and iOS will feel right at home developing for Sony. There may even be some source code compatibility between the platforms. The world continues to chase apple — probably for the better."
This discussion has been archived. No new comments can be posted.

Sony Adopts Objective-C and GNUstep Frameworks

Comments Filter:
  • Apple's response? (Score:3, Interesting)

    by symes ( 835608 ) on Thursday November 25, 2010 @09:03AM (#34342290) Journal
    It will be interesting to see if Apple respond to this and how. My feeling is that they might try and protect their assets and restrict developers' options. I haven't really thught this through but I just can't see Apple letting people develop apps for iPads and then recycling ostensibly the same code for some Sony gadget. It is not in their nature.
    • by RedK ( 112790 ) on Thursday November 25, 2010 @09:13AM (#34342338)
      The OpenStep specification is... well, Open. What can Apple do ? They don't hold rights that are being infringed here.
      • Re:Apple's response? (Score:3, Interesting)

        by Bill_the_Engineer ( 772575 ) on Thursday November 25, 2010 @10:42AM (#34342892)
        Well actually they do, but they wanted it "open". Apple also owns the rights to Obj-C and they still support its inclusion in gcc.
        • Re:Apple's response? (Score:3, Informative)

          by codegen ( 103601 ) on Thursday November 25, 2010 @01:31PM (#34344140) Journal

          Apple also owns the rights to Obj-C

          ???? Obj-C was created by Brad Cox in the early 80s. Next licensed the trademark from StepStone. GCC has had an objective C compiler in it (as described by Cox) since the early 90s. As it is, the compiler used by Apple is the GCC compiler with some extra features such as properties (which have been released as gpl and are available for download from apples website). With the exception of trademarks and patents on an implementation, you can't own a language. Anyone can build a compiler for the same language with a different name (with exception of patented parts of implementation which is less certain with Bilski).

    • by yabos ( 719499 ) on Thursday November 25, 2010 @09:13AM (#34342340)
      I don't see why. OpenStep has been around for a long time. Obviously they don't have all the same APIs for the UIKit that Apple has but a lot of code could be shared since they implement a lot of the same classes.
    • by lurch_mojoff ( 867210 ) on Thursday November 25, 2010 @09:41AM (#34342486)
      Apple don't have to do squat to prevent iPad apps form being "recycled" on a Sony gadget - there are more than enough differences that cannot easily be compensated between this Sony platform and iOS for this to even be a possibility. For example Sony will be using Cairo instead of Apple's Quartz, so any drawing code in an app will have to be rewritten. Also GNUstep does not implement UIKit at all. It doesn't even mimic AppKit all that well. And reverse engineering and achieving parity with either framework is a gargantuan task. So any UI code in an app will also need to be rewritten, or at least significantly modified, at which point you might as well rewrite the whole application in an entirely different language/framework.
    • by tlhIngan ( 30335 ) <slashdotNO@SPAMworf.net> on Thursday November 25, 2010 @11:31AM (#34343298)

      It will be interesting to see if Apple respond to this and how. My feeling is that they might try and protect their assets and restrict developers' options. I haven't really thught this through but I just can't see Apple letting people develop apps for iPads and then recycling ostensibly the same code for some Sony gadget. It is not in their nature.

      Why should Apple be worried? It enhances both ecosystems. People who want to develop for Sony's platform exclusively still need Objective-C developers, and those developers can turn around and write MacOS X and iOS apps as well, enhancing Apple's platforms on the market.

      Apple knows they need developers, which is why they threw in the developer tools for free with every Mac. Sony also validates Obj-C as a useful language and that can easily bring in more developers, who after writing apps for the Sony device may decide to re-use their skills on MacOS X and iOS, enhance both ecosystems. In the short term it'll hurt a bit as Obj-C devs get poached by Sony but that'll just bring new entrants into the field.

      Right now, other than iOS and MacOS X, development with Obj-C is very minimal. But having two major players in it can entire others to use Obj-C, and hey, they too can develop for MacOS X or iOS. Provided Sony doesn't screw it up too badly.

    • by ToasterMonkey ( 467067 ) on Thursday November 25, 2010 @01:27PM (#34344100) Homepage

      It will be interesting to see if Apple respond to this and how. My feeling is that they might try and protect their assets and restrict developers' options. I haven't really thught this through but I just can't see Apple letting people develop apps for iPads and then recycling ostensibly the same code for some Sony gadget. It is not in their nature.

      None of what you said makes any damned sense, but yah.. +1 interesting in the same way a crazy naked man screaming "the end of the world is near!" is I suppose.

      BTW, the language & frameworks that iPad apps are built on is the same environment that most OS X apps are built on.

      Not to say there shouldn't be any concerns, but Sony is a big boy with more lawyers than people reading this post...

  • Who does what? (Score:5, Insightful)

    by clickclickdrone ( 964164 ) on Thursday November 25, 2010 @09:11AM (#34342322)

    The world continues to chase apple -- probably for the better

    Or more accurately, One foreign company adopts a compiler.

  • For the better? (Score:2, Insightful)

    by Xest ( 935314 ) on Thursday November 25, 2010 @09:12AM (#34342330)

    "The world continues to chase apple -- probably for the better."

    lol, did someone really just say that in the context of Objective-C? For all the things Apple has done right and does well, clinging on to Objective-C is not one of them.

    • Re:For the better? (Score:3, Insightful)

      by WrongSizeGlass ( 838941 ) on Thursday November 25, 2010 @09:24AM (#34342400)
      Indeed. I've worked with Objective-C on and off since the pre-OS X 'Rhapsody' days. It's almost like a cruel mix of coding, texting and writing documentation ... all that plus a touch of COBOL's verbosity with a syntax/grammar nazi in its heart. After a while you just want to look a blank screen.
    • by CODiNE ( 27417 ) on Thursday November 25, 2010 @09:30AM (#34342430) Homepage

      I'm no expert on languages, but doesn't Objective-C deliver on what it's intended to be? A light-weight object oriented extension to C without all the extra stuff that makes C++ difficult to use?

      Also doesn't it's dynamic runtime stuff allow certain things that C++ doesn't?

      • Re:For the better? (Score:4, Insightful)

        by Xest ( 935314 ) on Thursday November 25, 2010 @10:22AM (#34342742)

        To be fair it's not that there's any inherent problem with Objective-C, that much is pretty well demonstrated by the countless great applications built on it for Apple's platforms. The real issue is really that it's like the neanderthal of languages- it evolved from C in parallel with languages like C++ and Java, but in doing so has ended up rather more ugly, and whilst it has some good bits, it also has bad bits like a lack of namespaces and operator overloading (although of course these issues aren't limited to Objective-C, Java lacks operator overloading too for example) but the combination of what is frankly a quite horrible syntax and these missing features means it's essentially just a poor man's C++. The obscurity of the syntax just builds an extra barrier that's really unnecessary in this day and age- every developer just about is comfortable with C++ style syntax so why waste time with a language syntax that's so obscure when you can just have one that people can jump straight into? This issue spills over into cross platform development somewhat in that it's much more of a headache to development multiple versions of a program when you're facing two very different sets of syntax more so than porting between programs with similar syntax.

        So yeah, certainly it "works", but there's really just no point in it when other languages work just as well without the added headache of lack of things like namespaces and an obscure syntax. There are bigger issues with the development tools and libraries themselves, but really that's something else, my comment was really targetted at the language- effectively Objective-C is different without bringing anything worthwhile to the table- at least with some other languages that have more obscure syntax they also often have a redeeming feature, like say being a functional programming language for example.

        • Re:For the better? (Score:3, Interesting)

          by Viol8 ( 599362 ) on Thursday November 25, 2010 @10:29AM (#34342772) Homepage

          Yes , I agree about the syntax. Instead of creating a nice consistent extension to the C language as Bjarn did with C++ (albeit with some kludges) , Obj-C really looks like someone tossed a completely different language into C because it was easier than making an effort to actually extend C nicely, and then didn't even bother to stir the resulting dogs dinner.

          • Re:For the better? (Score:5, Insightful)

            by onefriedrice ( 1171917 ) on Thursday November 25, 2010 @11:48AM (#34343464)

            Yes , I agree about the syntax. Instead of creating a nice consistent extension to the C language as Bjarn did with C++ (albeit with some kludges) , Obj-C really looks like someone tossed a completely different language into C because it was easier than making an effort to actually extend C nicely, and then didn't even bother to stir the resulting dogs dinner.

            I laughed at this post, but then I realized you might not be trying to be funny. As a C++ programmer myself, I've never heard anyone referring to C++ in a serious way as a "nice consistent extension to the C language." C++ is an absolute monster. It's completely inconsistent in many ways and is riddled with so many "gotchas" that it takes years until you should be able to call yourself an expert. That's a long time in the context of learning a new way to describe what a computer should do.

            I haven't programmed in Objective-C in years, but I do remember that it is far simpler to learn than C++. It adds comparatively little to the C language, as far as syntax goes; basically just the [] message-passing construct and the @ keywords. I think Objective-C "2.0" may have distinguished itself a little more, but I haven't looked into it.

            Anyway, hopefully you're being funny. Otherwise, we have completely different opinions. Objective-C seems to have extended C in a way that is much nicer and cleaner than C++ IMO.

            • Re:For the better? (Score:5, Insightful)

              by Xest ( 935314 ) on Thursday November 25, 2010 @01:38PM (#34344180)

              But that's a completely different argument, his point is that C++ extends the C syntax and rules pretty consistently, whilst Objective-C does not, it changes them.

              The complexity of C++ stems not from the syntax per-se, but simply because you can do that much more with it- not only have you got namespaces for better code organisation in large projects, not only have you got tools such as operator overloading, true multiple inheritance, but you also have options such as template meta-programming.

              You found C++ harder simply because it has more features, and more complex features to learn, not because of it's syntax. C++'s complexity stems purely from it's power, Objective-C's complexity stems from it's obscure syntax- the former is the price you pay for extra features, the latter is just simply inexcusable difference for the sake of difference and/or poor language design.

              C++'s syntax change complexity is purely down to the amount of syntax that is required to implement such a rich set of features. If you base your argument purely on syntax without any consideration of why that additional syntax is there and without any consideration of language changes then you might as well just argue Java trumps them both because it's much closer to C syntactically than either of them, but that would be ignorant of the fact Java offers a completely different featureset again.

              Perhaps the most obvious test though is this, write an application that's not overly complex and uses the base set of shared features the languages provide using their preferred syntax (rather than the fact you can just use C for either) and which then more closely represents a C program syntactically? you really can't argue it's anything other than C++, which is precisely why the jump to C++ is much more natural than to Objective-C as per the GP's argument.

              • Re:For the better? (Score:4, Interesting)

                by Anonymous Coward on Thursday November 25, 2010 @02:24PM (#34344520)

                I think you have that backwards. Objective-C doesn't change any of the rules of C. On the other hand there's a lot of C syntax that is not valid C++.

                Both C++ and Objective-C started off as object oriented extensions to C, and IMO Objective-C does a much better job. C++ tried to add everything and the kitchen sink, and ended up with horrible, bastardized syntax because it's still trying to achieve C compatibility, even though it hasn't been strictly compatible with C in over a decade.

                It's even more noticeable if you look at what's considered "good" code in each language. The following is valid C, Obj-C and C++, but a C++ weenie will whine that it's not using std::cout.

                #include <stdio.h> int main() { printf("Hello world!\n"); return 0; }

        • Re:For the better? (Score:4, Insightful)

          by teh kurisu ( 701097 ) on Thursday November 25, 2010 @11:01AM (#34343044) Homepage

          I think the extent to which the syntax is a barrier to entry for new developers is exaggerated. Square brackets denote method calls - easy. It might take a wee while before typing out method declarations in the right order is second nature, but I think that's acceptable because you gain (forced) named parameters.

          I like the fact that the syntax is different, because the chances of getting caught out are reduced. There are already too many languages with similar but subtly different syntaxes out there.

          • by Xest ( 935314 ) on Thursday November 25, 2010 @11:24AM (#34343254)

            I agree it's not a big barrier, it's just an unnecessary inconvenience, that's the problem. I think the inconvenience alone puts a lot of people off of it because there are so many other languages out there that don't have that inconvenience for them.

        • Re:For the better? (Score:4, Insightful)

          by Arker ( 91948 ) on Thursday November 25, 2010 @11:38AM (#34343378) Homepage

          essentially just a poor man's C++.

          Actually, it's the other way around, C++ is the poor mans objC. Unlike C++ it's a C superset, and way back with NeXT it was demonstrably leading to fewer bugs and less developer time on the same job. Apple has made some poor decisions in its role as de facto shepherd but the language is solid in its role.

        • Comment removed (Score:4, Informative)

          by account_deleted ( 4530225 ) on Thursday November 25, 2010 @11:46AM (#34343448)
          Comment removed based on user account deletion
      • Re:For the better? (Score:5, Informative)

        by Graff ( 532189 ) on Thursday November 25, 2010 @10:45AM (#34342912)

        Also doesn't it's dynamic runtime stuff allow certain things that C++ doesn't?

        Yeah, like built-in introspection [wikipedia.org] and reflextion [wikipedia.org]. Stuff like RPC (remote procedure calls) [wikipedia.org] is simple and flexible under Objective-C but under C++ it has to be hard-coded in and can be very brittle.

        • by CODiNE ( 27417 ) on Thursday November 25, 2010 @11:11AM (#34343140) Homepage

          Nice link on Reflection, every now and then I wish I could do that but didn't know I could.

          • Re:For the better? (Score:4, Informative)

            by Graff ( 532189 ) on Thursday November 25, 2010 @11:46AM (#34343442)

            Nice link on Reflection, every now and then I wish I could do that but didn't know I could.

            There's a lot more to it if you dig deeper:
            Objective-C Runtime Programming Guide [apple.com]

            You can do some pretty neat stuff like dynamically creating a class and adding methods to it. Some of it should only be used as a last resort but it's nice having the tools at hand if you really need them. This kind of stuff is either extremely difficult or outright impossible in C++.

            Yes, there are some performance penalties to a dynamic runtime but for most cases it is negligible. If you desire you can circumvent the dynamic aspect of Objective-C and "freeze" method calls in order to get around those penalties for performance-critical code. There's a great series of articles on this subject: The Optimizing Objective C Series [mulle-kybernetik.com]

        • Re:For the better? (Score:4, Informative)

          by UnknownSoldier ( 67820 ) on Thursday November 25, 2010 @12:50PM (#34343844)

          You CAN do reflection in C++ as the code base for one game I saw ... the catch is you need a super-base object, templates, and macros to pull it all off ...

          but yeah, there is no _native_ language support for it.

      • Re:For the better? (Score:3, Insightful)

        by dyfet ( 154716 ) on Thursday November 25, 2010 @10:59AM (#34343018) Homepage

        While your overall statement could be thought of as broadly correct and relevant, it does so by being a chimeric language where you have two completely different and unrelated syntactic forms (C and smalltalk) that are superimposed on each other. I personally feel this reduces overall legibility.

        Another consideration is that since method calls are messages with signatures that are symbolically matched at runtime as each method is invoked, there is some runtime overhead in method calls that are very different than found in C++ methods, even in respect to C++ virtuals, and this may become very important depending on how methods are used. To me Objective-C tends to make you use smalltalk as the framework for "overall" application structure and then use pure C for the details, where C++ is better for applying object oriented methods even to low level details, and this is where execution speed often does matter.

        Finally Objective-C's runtime library standardized threads and conditionals, which makes writing multi-threaded applications more consistent and even generically cross-platform. However, all the issues with using pure C functions and libraries that are not re-entrant do of course remain.

      • by t2t10 ( 1909766 ) on Thursday November 25, 2010 @11:04AM (#34343070)

        Sure it delivers on that. And in 1985, that was a great thing; it was technically obsolete even then, but for underpowered personal computers, it was a decent compromise.

        In 2010, it's just stupid. We don't need extensions to C of any form, we need C and its satanic spawn to die.

        • by UnknownSoldier ( 67820 ) on Thursday November 25, 2010 @12:53PM (#34343856)

          > In 2010, it's just stupid. We don't need extensions to C of any form, we need C and its satanic spawn to die.

          Sounds like you have never actually shipped any games on modern consoles. C (and C++) isn't going anywhere, because there is nothing better* to replace them with.

          Which means, in the mean time, we need extensions to solve Real World (TM) problems. Not to sound like an ass, but let me know when you understand restrict semantics.

          * Better, in this context means a) fast to compile, b) fast to execute. D _might_ be a possibility, but at the moment, I don't know of any D compilers for PS3, XBox 360, or Wii.

    • Re:For the better? (Score:5, Interesting)

      by thenextstevejobs ( 1586847 ) on Thursday November 25, 2010 @09:41AM (#34342484)

      For all the things Apple has done right and does well, clinging on to Objective-C is not one of them.

      It'd be nice if you pointed out, you know, actual reasons rather than just make snide comments. I'm sure some knee-jerk Apple haters will vote you up though.

      My issues with iOS development lie not with Objective-C, but with Apple's frameworks and libraries. It's frustrating to only have header files and not be able to check out what a method actually does when debugging. Fortunately, the documentation for their classes is top-notch. The objc runtime is also a pretty wild ride, but once you know your way around you can poke at it and find out where your messages are going at least. Can check out the source for the runtime here http://opensource.apple.com/source/objc4/ [apple.com]

      Another issue of course, is XCode. I've switched to writing most of my iOS code in vim, building my code with the xcodebuild command. I still rely on XCode to do things like add files to the xcodeproj and manage the build configurations. XCode has a mind of its own, wacky completions, a completely fucked up undo buffer, strange locations for settings, and more frustrating joys. Would love to do away with that.

      Check out the cocoa.vim plugin [vim.org], and also, while I'm at it, you can get your vim for your local environment pimped out in minutes with Vimlander 2: The quickening [github.com]. Test driving my apps with Pivotal's Cedar [github.com] framework.

    • Re:For the better? (Score:2, Informative)

      by nicholas22 ( 1945330 ) on Thursday November 25, 2010 @09:58AM (#34342578)
      "The world continues to chase apple -- probably for the better." That's just flame bait, I wouldn't have glimpsed twice on this article had there been no such phrase... Yet, here I am now, reading the article, posting and trying to come up with something that will tease Apple fanbois, for the heck of it. This is why I come here every day ;)
    • by Maury Markowitz ( 452832 ) on Thursday November 25, 2010 @11:15AM (#34343182) Homepage

      Or perhaps more accurately, not updating it.

      It still has some things I like, but there's many more things I like in other places now. Boxing for one...

    • by ToasterMonkey ( 467067 ) on Thursday November 25, 2010 @01:29PM (#34344124) Homepage

      lol, did someone really just say that in the context of Objective-C? For all the things Apple has done right and does well, clinging on to Objective-C is not one of them.

      Hey, I'll give you a chance for "Informative" points too.

      Why?

  • Summary is incorrect (Score:5, Informative)

    by zr-rifle ( 677585 ) <zedrNO@SPAMzedr.com> on Thursday November 25, 2010 @09:12AM (#34342332) Homepage
    GNUstep's objective is to create a free and open source implementation of the Cocoa libraries, with some additional libraries. It does not target the OpenStep spec, which is antique and obsolete.

    Please read the definition [gnustep.org]
    • by thenextstevejobs ( 1586847 ) on Thursday November 25, 2010 @09:51AM (#34342540)
      If Apple started using open source'd classes for things like strings and could focus their internal development on things that interact more directly with hardware (especially graphics), that would be a win for everyone.

      Less money for them for common functionality, more ability for me to see what's causing a bug.
      • by gnasher719 ( 869701 ) on Thursday November 25, 2010 @10:06AM (#34342630)

        If Apple started using open source'd classes for things like strings and could focus their internal development on things that interact more directly with hardware (especially graphics), that would be a win for everyone.

        1. Have a good look at all the open source stuff that you can download from Apple. You'll be surprised. Especially with string handling, Apple has always been one of the driving forces behind Unicode. 2. "Everyone" I think excludes Apples.

        • by rxmd ( 205533 ) on Thursday November 25, 2010 @11:34AM (#34343324) Homepage

          Apple has always been one of the driving forces behind Unicode.

          For selected values of "always". Apple has supported Unicode well since OS X, that is since 2001 or so, or in other words, ten years after the Unicode standard was published. Even Windows was earlier - Unicode support in Windows NT 3.x was there on the API level, in NT 4 it would work well if your programmers had been halfway diligent, and in Windows 2000 it would work well out of the box. With Apple systems before 2001, it was a pain to get Unicode working properly on MacOS 9 - it was technically supported in 9.x, but it didn't really work all that well.

          With OS X, Apple finally had the opportunity (that Plan 9 had had something like a decade earlier) to design a new API that used Unicode for all strings. Prior to OS X, the Apple device that supported Unicode best was the Newton, and even there you didn't have proper input methods and rather limited font support.

      • by beelsebob ( 529313 ) on Thursday November 25, 2010 @10:40AM (#34342874)

        Apple do open source their implementation for things like strings... here it is:

        http://opensource.apple.com/source/CF/CF-550.42/ [apple.com]

  • by mrnick ( 108356 ) on Thursday November 25, 2010 @10:17AM (#34342700) Homepage

    I had a difficult time moving from C++ to Objective-C. I think it would have been easier going straight from C to Objective-C. Old habits are hard to break. I thought I new OOP but it was learning Objective-C that really let it sink in.

    I learned it as part of my Master's project, an iPhone application, for my graduate studies in Computer Science. I have since setup a Linux box specifically to code in Objective-C.

    It really comes down to personal preference. Code in what language you like. Currently I prefer Objective-C.

    NP

  • by Assmasher ( 456699 ) on Thursday November 25, 2010 @10:29AM (#34342776) Journal

    Insinuating that SONY making use of Apple inspired development tools/specs/practices/whatever is validation of Apple in some way seems quite strange.

    SONY is famous for being absolutely crap and producing/choosing/using development tools.

    SONY's picking a development tool set related to Apple's only clear benefit is to people who have had to develop for SONY products in the past - ANYTHING is better than software that came out of SONY.

    They sure used to make great hardware though, and that's starting to return a bit.

    But adopting Apple-like dev environment(s)...? Water to a man dying of thirst and all that...

  • by Charliemopps ( 1157495 ) on Thursday November 25, 2010 @11:04AM (#34343076)
    "The world continues to chase apple -- probably for the better."

    When did Slashdot become a forum for apple fanboys?
  • by Coward Anonymous ( 110649 ) on Thursday November 25, 2010 @05:20PM (#34345692)

    These two quotes just about sum Objective-C:

    "Objective-C is simple. It just takes a genius to understand its simplicity"

    and:

    "Those who don't understand Objective-C are condemned to reinvent it, poorly"

    With apologies to Dennis Ritchie, Henry Spencer and Unix.

Have you reconsidered a computer career?

Working...