Sony Adopts Objective-C and GNUstep Frameworks
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."
I wonder if this will finally give us GNUStep WebKit. That would be an interesting thing :)
The GNUstep core libraries strictly adhere to the OpenStep standard and OPENSTEP implementation.
From the submission:
While Apple has continued to update their specification in the form of Cocoa and Mac OS X, ...
So, I take it one would need two code bases?
RIP America
July 4, 1776 - September 11, 2001
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.
Or more accurately, One foreign company adopts a compiler.
I want a list of atrocities done in your name - Recoil
"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.
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
Hack your mind out of its sandbox.
Qt is LGPL, it's not "owned" by Nokia - certainly not in the way Apple controls Cocoa and GNUstep strives to keep up.
That said, as far as I am concerned GNUstep is at least the second best choice of the two / it's nice to see that their efforts might finally give something big.
One that hath name thou can not otter
If someone develops for a Sony gadget then it would be natural to port it over to Apple products which will increase their available apps.
Except by the time you are eligible to develop for Sony gadgets, you're expected to already have released an app for the iProducts. Plenty of existing Sony gadgets that run apps, such as PlayStation family products, appear to require all developers to be established companies, not individuals or small businesses.
Apple is so far ahead in competition compared to its competition.
I nominate this for November's Yogi Berra award.
As others have mentioned in the comments, Objective-C was one of Apple's poorer decisions
I suppose you have a significantly better (simpler and more flexible) compiled OO language suitable for system-level programming up your sleeve, when you talk like that.
Ezekiel 23:20
Actually, Objective-C's performance is very very good, and verbosity is absolutely a good thing. The problems I might raise with objective-c would involve it's highly dynamic nature, and lack of a decent type system, not it's implementation's speed or it's code clarity, which are both positive advantages for it!
Cocoa is also one of the absolute cleanest application development frameworks out there by far (CocoaTouch improves on it a chunk though purely by binning a lot of old cruft), so I'd say sony made a bloody good choice.
Why is this pushed without mentioning that "SNAP Development is currently on hold" and the source code removed?
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
Encryption: I may not agree with what you say, but I will defend your right to encrypt it...
In what way GNUstep + GCC (+ presumably Linux) facilitate "systems [lock]down and ... prevent after-market modifications" more than "Android-esque / Java"?
As others have mentioned in the comments, Objective-C was one of Apple's poorer decisions
I suppose you have a significantly better (simpler and more flexible) compiled OO language suitable for system-level programming up your sleeve, when you talk like that.
I like the D programming language. It's relatively new, but its well designed and multi-paradigm. It's suitable for system-level programming, but still supports higher-lever programming methods such as OO and functional programming.
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...
Loading...
This makes total sense - Sony are very similar to Apple in that they lock their systems down and actively prevent after-market modifications. For these reasons, there was no way Sony were going to go down an Android-esque / Java route, so mimicking Apple was the logical choice.
did this just came out of your arse or what? do you think that using java instead objective-c/gnustep will prevent Sony or anyone from locking down the system, or even better do you think that using objective c like Apple will automagically lock down the system?
Oh and by the way Sony Ericsson use android for their phones, and there is some speculation that they will use android 3.0 for the playstation phone
As far as I understand it, Cocotron is more concerned with implementing Cocoa rather than OpenStep (i.e. it would be more attractive to iOS developers), and I'd have thought its license (MIT) would be easier for Sony to ensure compliance with than the GPL.
"Wise men talk because they have something to say; fools, because they have to say something" - Plato
... with a language that does run time binding? It sounds like the ideal enviroment for all sorts of trojans , viruses and obscure faults and failures.
look at the homepage, http://snap.sonydeveloper.com/
it says SNAP development is currently on hold
Now, when I was checking out the site last night, it was all still there, now for some reason, some CEO type decides axe the project. Wonder if Microsoft got wind of this and forced them to shut it down and re-write in visual basic. Perhaps Microsoft threatened Sony by raising their OEM costs or something?
"The world continues to chase apple -- probably for the better."
When did Slashdot become a forum for apple fanboys?
So how does this fit in with SonyEricsson's current Android efforts?
I did, and then you came along.
The world's burning. Moped Jesus spotted on I50. Details at 11.
I think a lot of people who dislike Objective-C are those who just looked it over and haven't spent too much time with it. I used to feel the same way until I got most of the way through an iPhone app recently. I view it as an acquired taste. Watching the great WWDC videos that Apple provides on it's development site helped me to understand it a lot and learn why they do the things they do with it.
Can you give some concrete, real-world examples where these have plagued Objective-C applications/systems?
It has been a few years since it migrated from a Linux fanboy-only site to a more democratic one. Today, you'll find Linux fanboys, Apple fanboys and surprise! Even Microsoft fanboys! But more importantly, you'll also find people impartial enough to not be fanboy to anything.
http://dilbert.com/2010-12-13
It is linux (specifically, Ubuntu 10.9)
Do you even lift?
These aren't the 'roids you're looking for.
The proprietary "do-whatever-you-please-with-it"-license still exists for Qt. The license is on per developer/per year-basis. Note the absence of handsets in the previous sentence. A company can do anything with the toolkit and not release anything back to the community with the proprietary license. Not that I can think of any reason to do - Qt Quick/QML seems great, and one will be able to achieve a lot easily without modifying the toolkit - which is LGPL, so your $KILLER_APP can be very much proprietary.
NSInputManagers, but all of that is behind us, or so we keep telling people. ;)
Don't blame me, I voted for Baltar.
Are any of those good enough compared to obj-c to overcome the advantage obj-c has of being familiar to far more programmers? From what I've heard, CL might be, but I don't know any of those languages enough to judge.
Also, do any of those languages make it as easy to use C and C++ libraries as Obj-C does?
I'm sorry, I don't understand what you're getting at. Sony Ericsson (and many other handset vendors) use Android, without having to pay anything to Google. Similarly they could use Qt, and not pay Nokia a dime. Yes, many handset vendors build proprietary UIs on top of Android, but they do so without modifying the core platform. What's stopping them from doing the same with Qt? The framework itself is more than comprehensive for all kinds of things, and LPGL certainly doesn't preclude proprietary UIs.
Pointing out redundancy is not in itself redundant.
Don't blame me, I voted for Baltar.
If you're *starting* a new project, D might be an option, but the GGP's assertion was that Objective-C was a mistake that Apple made.
According to Wikipedia, D first appeared in 1999, long after Apple acquired NeXT and its Objective-C based OS which was the foundation for Mac OS X. iOS is based on OSX, so it follows that they'd re-use the core parts rather than re-write it from scratch and have to maintain two distinct OS programming skillsets, if a different language didn't provide substantial benefits over staying with Obj-C.
Ada2005,Eiffel,Lisp (with CLOS for OO),OCaml
None of them can work with C code so directly as Objective-C, which is a very large advantage indeed for systems programming, and a decent advantage for other forms of programming too (like being able to use something like a blowfish library with almost no work).
Now that Objective-C has closures, I'm not sure I really see that great a benefit of any of those languages over the drawbacks.
If you like a LISP syntax, consider Nu which is an S-exp based variant of Objective-C and call compatible so it maintains the same benefits.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Yes, there is a possibility for clashes if someone chooses a string which is the same as yours
Does NS stand for NeXT Software, or does it stand for Netscape?
I have not had a chance to look at Sony code examples, but from the summary it's pretty obvious the UI is different - Sony states for instance part of it is based around the cross-media bar...
But realistically when you consider there is already OpenStep which replicates a lot of Cocoa functionality, Apple is not doing anything to anyone. And since all of Apple's improvements to Objective-C compilation (such as additions to GCC and LLVM) are all open source, where do you get the vibe that Apple would try to block other people from using Objective-C?
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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.
That's a reasonable assumption, given that you have to be an established company with an office just to get a devkit that doesn't use C#.
Writing apps for a phone is a like writing 1/10 of a webpage display wise. Good coding / language doesn't matter that much. What really matters is how easy it is to get things done. I've used, C, C++, all sorts of Java, C# asp.net, but C# Silverlight is by far the best. The Visual Studio IDE is great, there is a ton of free forum support, and a lot of people are using it / (lots of sample code)
Sony are very similar to Apple in that they lock their systems down
In what way GNUstep + GCC (+ presumably Linux) facilitate "systems [lock]down"
Sony hardware that includes Linux is open until Sony kills the Linux. This happened with the PlayStation 2 when Sony discontinued the Linux kit, and it happened with the PLAYSTATION 3 when Sony killed the ability to use Game OS and Other OS on the same console with a system software update. As of right now, it appears Sony has a policy like that of Nintendo: you have to be an established company or Sony won't sell you a devkit.
there is some speculation that they will use android 3.0 for the playstation phone
How much do you want to bet that Sony will lock down the PSP phone? Let me count some ways it could go down:
To quote Carmack:
https://twitter.com/ID_AA_Carmack/status/28939697453
"A single use of an obj-C number formatter, and it actually shows up in profiles. Obj-C does not belong in high performance apps."
About ten years ago, when Taco got a TiBook and Mac OS went all UNIX-y. Where have you been?
Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
The fact that a single, rarely-used class is somewhat slow is in no way an argument against a langauge.
Claiming Objective-C is "familiar to far more programmers" is a stretch at best. I'm a C/C++ programmer, and I've been working with Java for a long while now, but I still find Objective-C's "messaging" syntax and its idiotic class definition syntax to be unintuitive and nigh-unreadable, despite the language's C-like appearance much of the time.
Seriously, what idiot decided "+" and "-" are better choices for distinguishing between class methods and instance method than using C's existing "static" keyword for one and defaulting to the other?
I added the "chase Apple" zing in order to get the submission accepted by slashdot. There is a recipe. Deliberately omit important details from the summary, include something slightly inaccurate, and end with a zing.
It drives responses. People post to add the missing important detail. People post to correct or clarify the slight inacuracy. People post in response to the "zing." I have been doing this for years. Follow the recipe any your submissions will be accepted too.
If Objective-C has the performance of a scripted language, then how is it that my Mac runs as fast or faster than my Windows machine?
If you can't convince them, convict them.
I was referring more to the fact that there are a great many programmers developing apps for Apple platforms, but Ada and Eiffel programmers are harder to find. CL and Ocaml are probably too abstract to catch on in a market where the average programmer can handle Java and some of C++'s capabilities.
objective-c is long overdue in the Linux world... I've been a programmer some 25 years now and I have to say I nothing comes close to using objective-c, I just wish it looked better thats my only problem I have with it it's just hard to read.. We need more developers using O-C it would make Linux a better place.
a few years ago.
now that's funny, what with Google-warez being the mega-Linux distro/app/service the whole fucking planet runs.
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.
Or it could be that they used XCode and it gave them a function from another class that wasn't on the class they were using. The program then proceded to compile just fine and when they ran it, it didn't work but there were no clear indications why.
-]Phreak Out[-
Yes, because the "static" keyword hasn't been overloaded at all.
As I'm not an Obj-C or Cocoa developer, I don't know what Carmack has meant by this quote, but it sure sounds like whatever is the Obj-C analog to printf("%d"). orrect me if I'm wrong. If I am not, then that's not a "rarely-used class".
It isn't clear what Carmack exactly meant because that class can be used for both converting strings into numbers (ints or floats) or numbers into formatted strings, such as currency values. It has performance penalties, but it isn't the only way to do conversion. To do something like printf("%d", value) in objective-c you can just use printf("%d", value).
Fair enough, but it would still be a lot clearer than "+".
Does anyone know what hardware this would run on? While I expect that using Objective-C and GNUStep may get some iPhone developers to try this platform. I wouldn't expect much a lot of code iOS to be portable. The UIKit framework is the core that runs iOS apps, which is something that GNUStep does not have at this point. Is Sony planning on have a touch interface or something more conventional?
Brought to you by Team SPAM! where we believe: "Information in the noise!"
The Objective-C language syntax was carefully designed to co-exist with C and C++. It may look a bit different than C or C++, but that is by design. It was designed to mix into both. It therefore required a syntax style which would be unambigious. It had to look different, or it would have just been sm odd flavor of C or C++.
Here is what Apple says about 'Using C++ With Objective-C': http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocCPlusPlus.html
"Apple’s Objective-C compiler allows you to freely mix C++ and Objective-C code in the same source file. This Objective-C/C++ language hybrid is called Objective-C++. With it you can make use of existing C++ libraries from your Objective-C applications.
"In Objective-C++, you can call methods from either language in C++ code and in Objective-C methods. Pointers to objects in either language are just pointers, and as such can be used anywhere. For example, you can include pointers to Objective-C objects as data members of C++ classes, and you can include pointers to C++ objects as instance variables of Objective-C classes."
If you want to use C or C++, go right ahead. The Objective-C language includes ALL the capabilities and drawbacks of both C and C++.
Yeah, that can make it tough when you are staring at the computer all day.
You're absolutely exaggerating. Objective-C is C with an object-oriented run-time, and so it has the performance of C. The overhead of sending messages through the run-time is little more than that of a function call.
Your post is so misinformed. Objective-C is one of the reasons Cocoa is such a beloved and powerful framework, Steve Jobs had nothing to do with GNUStep, and you provide zero evidence or examples to back up your claim that "it's just obsolete and never worked that well to begin with."
In fact, you're another one of these suspicious, anonymous posters who seems to show up in every Apple article, bashing their technologies. It's getting way too predictable to be a coincidence.
NSFormatters are usually attached to text fields or cells in a user interface, for things like formatting internationalized dates or numbers. With numbers it includes the sort of pretty-printing you see in spreadsheets (red for negative numbers, etc), maximum/minimum checking, etc. For dates I believe formatters will handle converting a string like "tomorrow" to the appropriate date.
If you just want to create a formatted string, you can use [NSString stringWithFormat:@"%d", anInt].
Or even printf.
September 2011: Looking for Cocoa/iOS work in Boston area Cocoa Programmer Quincy, MA
I suppose you have a significantly better (simpler and more flexible) compiled OO language suitable for system-level programming up your sleeve, when you talk like that.
Yes. It's called C++. Which is significantly better than ObjC, and almost as simple and flexible.
And before you say anything, consider the fact that BeOS was largely programmed in C++. If the most flexible, fastest and most responsive multimedia operating system ever produced is not a testament to C++'s power, I don't know what it is.
The overhead of sending messages through the run-time is little more than that of a function call.
No, it is not. It has significant overhead. WTF, doesn't anybody here understand how message passing works? Each time an ObjC message is passed to an object, the run-time does a search in a map to find the implementation!!!! WTF, what is wrong with Slashdot!!!!! has it become so popular that we can't understand how searching in a map works vs a vtable indirection!!!!!!
Please excuse my tone, but I've read lots of comments about ObjC today, most of them either wrong or exaggerating. It's amazing that a site proud for its members being technically skilled with computers to be ignorant of such basic facts!!!
Qt is not fully owned by Nokia right now, and is moving to be a fully openly governed project. And Qt has now Qt Quick, which is a system for developing apps using a declarative language, and can be mixed with C++ very nicely. I've been playing with it lately, and is a great product.
For those who say C++ cannot be as flexible as ObjC, I wrote a little C++0x class and example that demonstrates how easy it is to have message passing in C++.
That's exactly what I said, and it's true.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
All of the implementation addresses are cached when run for the first time, and it's usually inlined; after the first invocation a message usually is only a cycle or two slower than a vtable indirection, given the normal caveats. objc_msgSend is extremely optimized, it's the single most called function on the platform so it gets a lot of attention from optimizers.
Don't blame me, I voted for Baltar.
Cocoa crucially depends on reflection features of the underlying language (obtaining classes, calling methods and manipulating data members by name). Lisp would obviously qualify for this (for sufficiently large values of "Lisp"), but standard Ada and Eiffel would be completely unsuited to the task, and I doubt OCaml would be suited.
I could see Ruby become an increasingly serious contender, though. Right now, the primary problem is that debugging is messier than in an Objective-C app, but otherwise, it's an excellent match.
Apple's implementation of Objective-C also offers vtable dispatching as an optimization since Mac OS X 10.6, and benchmarks indicate little chance that either approach gives you much improvement on modern hardware.
(Don't mean to keep posting but I did some more reading this morning and I found it interesting.)
Don't blame me, I voted for Baltar.