<div dir="ltr">Hi<div><br></div><div>From <a href="https://mitchellh.com/writing/zig-and-swiftui#appendix-why-not-objective-c">https://mitchellh.com/writing/zig-and-swiftui#appendix-why-not-objective-c</a><br><div><p style="box-sizing:border-box;border:0px solid rgb(229,231,235);margin:1.25em 0px;font-family:"PT Serif",Georgia,ui-serif,Cambria,"Times New Roman",Times,serif;color:rgb(55,65,81);font-size:16px">"Building a native GUI for a cross-platform application is a decades old problem. Nowadays, most people just <em style="box-sizing:border-box;border:0px solid rgb(229,231,235)">don't</em> and fallback to using a non-native experience such as Electron instead.</p><p style="box-sizing:border-box;border:0px solid rgb(229,231,235);margin:1.25em 0px;font-family:"PT Serif",Georgia,ui-serif,Cambria,"Times New Roman",Times,serif;color:rgb(55,65,81);font-size:16px">One approach to building a native GUI for a cross-platform application is to write all of the business logic in a cross-platform language (C, Rust, Zig, etc.) and then write the platform-specific GUI code. This is the approach I take with my <a target="_blank" rel="noopener noreferrer" href="https://twitter.com/mitchellh/status/1662217955424493570" style="box-sizing:border-box;border:0px solid rgb(229,231,235)">my terminal emulator</a> and it works really well. As of the current date writing this post, 93% of my repository is business logic in Zig and C, and 4% is macOS-specific GUI code in Swift."</p><p style="box-sizing:border-box;border:0px solid rgb(229,231,235);margin:1.25em 0px;font-family:"PT Serif",Georgia,ui-serif,Cambria,"Times New Roman",Times,serif;color:rgb(55,65,81);font-size:16px">Kind regards</p><p style="box-sizing:border-box;border:0px solid rgb(229,231,235);margin:1.25em 0px;font-family:"PT Serif",Georgia,ui-serif,Cambria,"Times New Roman",Times,serif;color:rgb(55,65,81);font-size:16px">Taoufik</p></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Dec 31, 2023 at 9:01 PM Gary Palter <<a href="mailto:gmpalter4clozure@fastmail.com">gmpalter4clozure@fastmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> On Dec 31, 2023, at 2:43 AM, R. Matthew Emerson <<a href="mailto:rme@acm.org" target="_blank">rme@acm.org</a>> wrote:<br>
> <br>
>> On Dec 29, 2023, at 10:29 AM, Ron Garret <<a href="mailto:ron@flownet.com" target="_blank">ron@flownet.com</a>> wrote:<br>
>> <br>
>> ...<br>
>> <br>
>> 7.  What is your reading of the tea leaves with regards to the future of ObjC on the Mac platform?  Is it even worth bothering trying to port the ObjC bridge, or should we be thinking about a Swift bridge instead?<br>
> <br>
> It seems to me that the Objective-C runtime is going to be around for some time yet. Maybe at some point it will go away, and I can only hope that Apple will provide some other way for non-Apple languages to access UI libraries. Swift doesn’t have a stable ABI as far as I know, so it’s not possible yet to talk about calling Swift directly from CCL (without going through C somehow).<br>
<br>
Just for the record, the Swift ABI is stable on macOS starting with Swift 5.<br>
<br>
ABI stability on other platforms is still under development.<br>
<br>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr">Taoufik Dachraoui<div><br></div></div></div>