gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Proposal: Swift Open Source Project and Foundation replacements


From: Maxthon Chan
Subject: Proposal: Swift Open Source Project and Foundation replacements
Date: Fri, 04 Dec 2015 04:01:16 +0800

Dear Swift developers:

Maybe you have never heard of it, but there have been several ongoing efforts, 
like GNUstep and Cocotron, at maintaining an open source Foundation 
reimplementation for alternative operating systems like Linux. It seemed to me 
that the current release of Swift did not put such efforts into consideration 
and brutally broke compatibility between Swift and Objective-C on Linux. I 
understand the fact that Apple is unwilling to release source code of 
Foundation, and this is usually where those alternative implementations comes 
into play.

Some of such projects, like GNUstep, are mature enough to allow existing AppKit 
applications written in Objective-C, like TextEdit and Chess, to be ported from 
OS X to Linux and Windows without changing too much, if any, code, taking all 
modern Objective-C features like ARC and object subscripting with stride, with 
a compatible version of LLVM compiler. Meanwhile, with the current version of 
Swift, even if the Swift code is written with calls to Objective-C runtime 
assuming the case on OS X, it is broken under Linux even with libobjc linked in.

I am here suggesting keeping the Objective-C bridge intact at least when built 
with a compatible version of libobjc (and GNUstep project have one already.) 
This will allow users of such alternative Foundation reimplementations to use 
their favourite Foundation distribution in place of the version provided by the 
Swift project, retaining the code compatibility already established between OS 
X and Linux by those Swift reimplementations.

In such an environment the alternative Foundation implementation will provide 
their own version of CoreFoundation and Foundation, implemented using C and 
Objective-C, as well as a libobjc that supports ARC. The Swift environment 
would be built without its own CoreFoundation and Foundation, but linking 
against the provided version instead, bridging calls just like OS X version of 
Swift does. This will also allow the new Swift platform to take full advantage 
of the AppKit came with the alternative Foundation, allow porting full OS X 
apps to Linux a lot easier. The above also applies for porting iOS apps, if the 
alternative Foundation implementation also comes with their own UIKit.

Max

Attachment: smime.p7s
Description: S/MIME cryptographic signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]