I suspect you are asking for some kind of great cross-platform GUI framework. 
Sadly, IMO, having a good universal cross-platform GUI is nearly impossible, 
for all language,s for multiple reasons.

One of the more basic reasons is handling the OS environment. Some 
environments, such as Windows or Linux are imperative in nature. Others, such 
as Android and HTML/JS are intrinsically reactive in nature. Converting from 
imperative to reactive is nearly impossible to do automatically. Converting 
reactive to imperative is...easier but makes for ugly unmatched code. Just in 
case someone does not believe me, try converting the following imperative 
script even by hand:
    
    
    echo "welcome to the hello program"
    echo "enter a name or the word 'exit':"
    var name = readLine(stdin)
    while (name != "exit"):
      echo "Hello, " & name
      echo "enter a name or the word 'exit':"
      name = readLine(stdin)
    echo "Thanks for playing"
    
    
    Run

into Javascript, where the input comes from an `<input>` and the output goes to 
a `<div>` or `<pre>`. The goal is not get the browser window to "freeze" 
forever.

Impossible? Not if you rethink it and write it differently. But you end up with 
a very different looking program that has to handle state. And converting "with 
a Macro" is a ... nightmarish task. (I sort of did it once, but it was filled 
with SO many restrictions.)

So, instead, I'd recommend stating your project's goal to get a better answer.

So, what is your goal? If writing a game, then there some cross-platform 
systems such as Godot which have limited Nim support. If writing a desktop app, 
are you wanting the "widgets" be truly universal or should they look native to 
each desktop environment? With more details, I'm happy to help out.

Reply via email to