[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNUstep Live on OSnews
From: |
Matt Rice |
Subject: |
Re: GNUstep Live on OSnews |
Date: |
Tue, 1 Aug 2017 07:52:27 -0700 |
On Tue, Aug 1, 2017 at 2:18 AM, David Chisnall <theraven@sucs.org> wrote:
> On 31 Jul 2017, at 20:43, Liam Proven <lproven@gmail.com> wrote:
>>
>> GNUstep apps can _only_ be written in Objective-C?
>
> Kind of. They can only be written in a language that has good bridging to
> Objective-C[++]. All of the interfaces are exposed as Objective-C objects,
> but there are bridges that allow these to be used from (as far as I am aware):
>
> - Java (JIGS)
> - Ruby (RIGS)
> - Python (not sure if this has a name, but I think it’s now part of the
> upstream ObjC bridge).
> - Rust
I'm not sure if the port still works anymore,
however bindings to the scheme-like language with objective-c like
dispatch added, making the briding pretty seamless.
https://github.com/nulang/nu
> And we have a GSoC student who is working on porting JavaScriptCore, which
> would give us a high-performance JavaScript bridge too (for some workloads,
> JSC will generate faster code than using ObjC).
>
> The most under-appreciated language is probably Objective-C++. C++11 or
> later is a good language for programming in the small, Objective-C for
> programming in the large, and the two compose surprisingly well. I’ve
> recently been writing an OmniOutliner replacement[1] in Objective-C++, and
> finding that I can do a lot of things in about half as much code in
> Objective-C++ than in either Objective-C or C++ (for example, Objective-C’s
> for..in loops are restricted to collections that contain objects, but with a
> tiny adaptor you can use NSIndexSet or NSString in C++ range-based for loops).
>
>> OK, if so... are there any other rival foundation classes for writing
>> GUI apps in Objective-C on Linux?
>
> There are five implementations of the Foundation framework that I know of:
>
> - GNUstep Base
> - Microsoft’s WinObjC, which uses a lot of code from Apple’s SwiftFoundation
> - libFoundation (I think this is dead now?)
> - Justin Hibbits’ implementation (lightweight, FreeBSD-only, very clean
> code, but largely unmaintained now).
> - Cocotron (upstream[2] seems to be dead - last commit 2 years ago, though
> there are some moderately active forks).
not a faithful implementation of foundation, rather its own thing, but there is
https://webkeks.org/objfw/
https://webkeks.org/git/
which seems to have QT bindings and a gui abstraction library.
> Of these, only GNUstep and Cocotron also provide an AppKit implementation.
> Microsoft’s WinObjC provides an incomplete UIKit implementation, though
> recently they’ve refocused on providing bridging for their own GUI framework,
> to make it possible to use the same core on Windows and iOS but have native
> GUIs for each.
>
> David
>
> [1] https://github.com/davidchisnall/OpenOutliner/
> [2] https://github.com/cjwl/cocotron