Native Applications with Racket
defn.io
defn.io
If not, do the Apple EULAs prohibit such a service or is it not considered lucrative enough?
I used to develop for MacOS but have stopped supporting it entirely since Catalina, because I cannot be bothered with being locked into Apple's development tools, notarization, the Developer Network, and so on. It just isn't worth my time and money, but I'd still like to distribute native applications. Provided the EULA of such a service would be reasonable (e.g. good protection of the source code), I'd gladly use it, since otherwise all Apple sales are lost anyway. But there doesn't seem to be any such service, and it's IMHO weird that Apple don't offer that themselves.
Am I missing something fundamental here?
In this case, the user application also had to explicitly request permission to run unsigned just-in-time-compiled code. This makes sense because macOS apps are typically written in compiled languages like Objective-C or Swift, so executing unsigned code usually means someone's doing something bad like a buffer overflow attack. Also, Apple probably wants to collect metrics on how many apps use JIT (and how) so they can restrict it more in future OS releases.
I agree that a well-implemented sandbox seems like a much better solution here.
That's the main difference between you and the author.
I have seen a lot of movement for Windows but you might be right that this could be a problem. My hope is that it gets resolved before I get there. Great point though. I kind of just assumed I could ship Swift on Windows.
This is generally the way to go if you want to be cross-platform: write your core code in the language of your choice, but make sure you use the platform frameworks for the porcelain. If you do it well, your users won’t notice the difference!
It’s also seriously funny that it’s the same accounts that argue this stuff every time it comes up on this site. ;P
People do this all the time, there's native mobile applications using the true platform frameworks for both operating systems
There's plenty of abstractions for Win32, too, such as Qt (see VLC for example, which feels native to Windows).
The only major consumer program written in WPF I know is Visual Studio, but I haven't heard of WPF development in a long time (except for the move to open source).
Qt is harder to create bindings for since it’s C++, meaning it’s more likely that your language of choice doesn’t have bindings, in which case if said language doesn’t have C++ interop you’re stuck.
Or write it in Win32 api, in C.
For GNU/Linux, write it in GTK or QT, as appropriate.
It seems that Racket does allow for C-to-Racket calls. You could write a glue program that generates C code that calls Racket functions and returns data, Swift code can then be generated to call that C code. That might be faster.