Is there a tutorial on how the variable scoping works in this language? I have never understood how scoping works in Rebol-likes; as far as I can tell, it is similar to a closure passed in form of an f-expr, but I'm not sure on the details.
Makes me think of Rebol/Red and indeed seems it was one of the influences.
Yes, Rye started and is basically Rebol + few more word types (Rebol has multiple types of words) that allow left to right oriented evaluation (op-words, pipe-words, left-set-words).
Get words are `?word` instead of Rebol's `:word` because that's left-set-word, we don't have refinements and scoping / contexts work somewhat differently. There are probably other differences in details, but all basic concepts are based on Rebol.
It's nice; well done.
It would have been helpful to have some info on what exactly fyne is. A quick search brought me here: https://github.com/fyne-io/fyne
The rye version looks much nicer both to read and write.
Thanks for the feedback. Good idea. I will make "Go's Fyne UI library bold" and provide a link to Fyne page at the top.
pretty nice looking. people say rebol, but i'm reminded instead of tcl/tk
Hm ... I keep hearing about tcl and I'm aware Rebol and Tcl have some similarities, but I've never really looked that deep into it. Now I looked at the first example that I found (https://wiki.tcl-lang.org/page/A+little+stopwatch) and visually there really are many similarities. We also seem to use the same word-formatting combinations. I see ".word" "::word" { } and [ ] blocks. They are all probably used for different things, but it is funny. I really need to look at Tcl at some point.
I was a little discouraged by "everything is a string" idea so far, but I keep hearing that it is conceptually very interesting language.
Ah yes, that as well. I built a LOT of things in tcl/tk in the 90s. Weird that didn't pop for me. I guess because this looks 'cleaner' that tcl/tk ; tcl is quite noisy.
Accessibility?
Thanks for pointing it out. Frankly I haven't looked at that topic with Fyne yet. If I google it I see this response from the main Fyne maintainer from 2022:
https://news.ycombinator.com/item?id=31788824
They do keep actively moving forward so I have hope this will get addressed.
Accessibility was mentioned at FyneConf last week as a priority. It may not make it to v2.6.0 this year but expect it in 2.7. https://conf.fyne.io
Great to hear. I have yet to see the full video of the conf. (It's on Youtube)
On that thread, I plugged my AccessKit project (https://accesskit.dev/). We have a C API now, and the project is much further along than when I commented on that old thread, so somebody could develop Go bindings now.
What an excellent project and idea. Accessibility is always a big gap in these cross-platform, lowest common denominator frameworks, glad to see someone is trying to tackle it.
Fyne has no integrated accessibility support yet.
The Fyne lib works for web too; does this at well? Seems a nice candidate for a LiveView type of thing.
Rye works on web too, we are currently trying to make a proper and fully compatible web console (REPL) and then include more web technologies. So I think there should be no problem in running Rye-Fyne on web. In fact the developer who is working on binding generator proposed it few chats ago.
What exactly do you mean by LiveView?
Like Phoenix Liveview [0], so frontend/backend blurs and you don't have to think about what is front and what is backend; everything is backend and parts of the frontend are updated based on serverside DOM changes. No JS; such a blessing.
[0] https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html
I was so far a little skeptical of these all-in-one solutions, but never say never and language is general one, so somebody could try to tackle this if they see the oportunity. I will try to find out more about LiveView, thanks for the link.
I was as well, but in the last years they really jumped ahead; it might be personal, but for me I cannot imagine going back. Especially when I now use nextjs or so, I scratch my eyes out. It's such an timewasting and frankly annoying experience compared to liveview, livewire [0], go live [1] and of course CLOG [2].
Edit; Blazor server[3] is another one
[0] https://laravel-livewire.com [1] https://github.com/jfyne/live [2] https://github.com/rabbibotton/clog [3] https://learn.microsoft.com/en-us/aspnet/core/blazor/hosting...