On 31 Jul 2017, at 20:43, Liam Proven <[email protected]> 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 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). 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 _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
