discuss-gnustep
[Top][All Lists]
Advanced

[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



reply via email to

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