Friday, June 06, 2014

GNUstep's position on Swift


I wanted to make this post to make it clear to the community regarding GNUstep's position on the new Swift language.    If the language is released as open source then GNUstep will fully support it.  If it is, however, not released as open source then we will either take steps to create an implementation ourselves or provide any assistance needed to a group of people other than ourselves who are willing to take that on.

I believe that the language itself is a good one and that it represents an opportunity for more people to take part in the OSX, iOS and GNUstep communities if it's properly done.

My previous post was to illustrate the dangers of lock-in if that is, indeed, Apple's intention.  Those warnings should not be construed as any condemnation of the language itself.  This post is not backpedaling, only a clarification of my previous position (see the comments in the previous post).

6 comments:

julian said...

why this speculation? they already said the will open source it for the "final" release in fall

HiPhish said...

@ julian: Do you have a source or link for that? That would be awesome news indeed.

The question of openness and performance is what's bothering me most now. I love the Mac and if I were to write a cross-platform app that's where my main development would take place, but I don't like the idea of shutting myself out of any other option. The language is till in beta, so we'll have to wait and see.

One thing that really confuses me is metal. It promises console-level graphics (whatever that means) on an iPad, but how much market demand is really there? The only people who care about that level of graphics fidelity are the people who play games for an hour or more at a time, which is next to impossible on tablets and phones due to their form factor. So why not just keep using OpenGL? It looks to me like they want developers to use a non-portale graphics API so their games cannot be run on Android. But maybe I'm reading too much into it and Metal is actually intended primarily for graphics-intensive applications on Macs but Apple thought that demonstrating it on iPad would look more impressive?

I have been reading the book and watching the WWDC videos and so far I have to say that Swift looks very nice. One can be as verbose as in Objective-C, but the language doesn't force you to as long as there is no ambiguity. Programmers can use the language's features to simplify the API of their low-level code so that high-level coders (who might not be as familiar with programming) can use Swift like a scripting language.

Performance is still an open question; Apple offered some comparisons during the press conference but that doesn't say much. Comparing a compiled language like Objective-C or Swift to an interpreted language like Python is pointless, and we don't know anything about how effective the implementations in Objective-C were. Usually the rule in objective-C is to write anything that's performance-critical in C, so if Swift could reach C-levels of speed (of course assuming one only uses select language features) it would be fantastic. It will take some time though until proper benchmarks appear.

If Apple were to open up Swift it could be a huge benefit to GNUStep as well: I only recently discovered the failed Kickstarter and a big problem was the lack of interest. Swift is a new language with a lot of buzz surrounding it, Apple is a company capable of pushing their technologies, so I am certain there will be a lot of interest from people to get Swift and Cocoa running on non-Apple systems as well. This will also mean that GNUStep will have to improve their presence as well; currently looking at the site I get the impression that GNUStep is a compatibility layer for NeXTStep applications, not an implementation of Cocoa. Yeah, I know it isn't, but that's what it looks like. Amy's comment on the Kickstarter page pretty much says it all.

GregC said...

@julian @HiPhish I would very much like a link to show that it is going to be open source. That would be awesome.

Unknown said...

@HiPhish RE: Metal

i'd be surprised is this wasn't released in advance of games coming to the AppleTV. Metal is about having a common platform for games that can run on all Apple devices from AppleTV to iPhone to iPad and Mac.

Silber Deveau said...

@HiPhish I wouldn't say it "failed", in fact I think it was pretty awesome that it raised the 20k so there is an interest out there.

I'd really love to see another Kick starter, maybe with goals broken down into smaller financial bits. If Objective-C really will be eventually deprecated out, I wonder if some programmers would want to keep Objective-C and all their knowledge alive by being able to simply write on other platforms. This is possible today with GNUStep so I think it's an amazing project.

Anton Armin said...

I found your blog when I was looking for a different sort of information
but I was very happy and glad to read through your blog. The information
available here is great. . I know something information, to know you can click here
Zutrittskontrolle Gesundheit
Zutrittssysteme Verein