Shoes makes building little graphical programs for Mac, Windows, Linux simple
shoesrb.com
shoesrb.com
Already two years ago shoes 3.3 was crashing a lot unexpectedly so I wouldn’t recommend using it for anything serious. But if you want to access the documentation online I made a small website for that [3]. The official documentation is only available in the executable which isn’t great to browse.
- [1] https://gitlab.com/png-glitch/legacy-glitched-factory
- [2] https://github.com/shoes/shoes3
- [3] https://radoteur.frama.io/shoes-unofficial-documentation/
http://web.archive.org/web/20211205200902/https://walkabout....
>> As you have guessed by now, I’m not maintaining Shoes 3 anymore. I do still answer some questions on github but nothing new is likely. I owe you an explanation of why. It’s pretty simple. My health is bad and is not going to get better.
> The Shoes community (Shoes 3 or Shoes 4) is not growing and there is little enjoyment in working on code that no one else cares about enough to help code the internals. The underlying technology employed is evolving in ways that run counter to what Shoes is and does. It’s just time to quit. We had fun, we learned some things and we’ll leave it at that.
And then a lot of text about wandering off into home automation, Arduino, and 3D printers.
It's possible the community will fork it with a version of PySimpleGUI 4 that's still kicking around, but I haven't seen one yet.
I use Tkinter. It was not hard to learn at all, and while it's not comprehensive, it gets enough stuff done. And it comes with the "vanilla" Python istall.
What I did with Tkinter, starting more than a decade ago, was to create my own little "wrapper" that simplified things even further. Each of my little functions or objects incorporates what I've learned about a widget and imposes a default -- ugly but functional -- layout. That way, I never have to look it up again.
For those who never encountered his work, I'd recommend very much checking out "Why's Poignant Guide to Ruby". It doesn't matter if ruby is nothing you want to learn, it's just a fun, artistic, odd read. So is Nobody Knows Shoes, of course.
Now that's a name I've not heard in a long time.
Embedding a script into a small tray icon/menubar app can be extremely powerfull even with its low complexity.
https://github.com/AndyObtiva/glimmer-dsl-libui
How do Glimmer GUI DSLs compare to Shoes?
(disclaimer: I really like most of his ruby stuff)
Always thought I was missing something.
> We recommend using JRuby 9.X+, with the majority of our testing currently against 9.1. JRuby 1.7.x may work, but has been untested since 4.0.0.pre6.
Your question is still appropriate because they tested with 9,1 and JRuby is at 9.4
About MRI compatibility see https://github.com/shoes/shoes4/issues/1235
Shoes 4 runs on Java and JRuby and the website states that JRuby 9 doesn't work with Java 9+ plus yet, which is in turn amazing, since we are close to Java 22 now more than Java 8.
Is this really a sustainable way to build GUIs?
Edit: I see, the readme for shoes4 is itself many years old.
Sometimes I want to build quick and dirty things and a whole proper Mac app on Swift is too much out of my confort zone.
Maybe GTK/glade?
https://pythoncard.sourceforge.net/walkthrough2.html
This is one of those projects where, if I were retired, I’d love to revive.
Shoes The easiest little GUI toolkit, for Ruby - https://news.ycombinator.com/item?id=34456337 - Jan 2023 (1 comment)
Shoes - https://news.ycombinator.com/item?id=23675819 - June 2020 (34 comments)
Shoes – An easy little GUI toolkit for Ruby - https://news.ycombinator.com/item?id=17103569 - May 2018 (36 comments)
Shoes, a Ruby GUI toolkit, now has some sweet apps. - https://news.ycombinator.com/item?id=120713 - Feb 2008 (1 comment)
But that was back in 1999, and it wasn’t hard to choose a framework, Visual Basic 6 was so fun and easy.
If I wrote it today I’d use .net, and im not sure if it’d work on Mac/Linux too, but maybe it would.
https://www.youtube.com/watch?v=wCF3ywukQYA
This is up there with Tk and PySimpleGUI, UI programming as it should be.
https://github.com/shoes/shoes4/
http://www.rubydoc.info/github/shoes/shoes4
No disrespect to the developers but to me it feels like taking over a GUI toolkit created "to teach programming to everyone" (to quote the Shoes 4 readme) and making it depend upon a super-complicated enterprise-focused Ruby was sort of Missing The Point™ in a huge way.
Heck I couldn't even switch to JRuby if I wanted to because I <3 Ractors and JRuby still lacks CRuby 3.0 feature parity: https://github.com/jruby/jruby/issues/7459
It mentions this…
>this tutorial assumes you are generally familiar with Node and front-end web development basics. If you need to do some background reading before continuing
Then goes on to say you shouldn’t just know web dev and Node, but also the CLI and git, as well as installing node.js and npm.
Those are a lot of barriers to entry for a beginner who is looking for a quick win to get them to keep going.
Scarpe, a WIP revival of Shoes: https://github.com/scarpe-team/scarpe
That is the quickest and most straightforward way of making GUI applications I'm aware of, with the only drawback that it uses Object Pascal as supported language, but being it Open Source I can hope one day we'll see some support for other languages too.
Don't remember what the experience was like at that time.
When I went to the tutorials page just now, some of the code is truncated on the left side of the screen. Probably a CSS issue.
Nowadays is there any reason why you would do something like this instead of standing up a local devserver and delivering the gui via HTML? After using textual for a few months I’ve become pretty anti-gui for small local projects - web is just infinitely more mature and extensible than any little framework.
But maybe I missing the point?
It’s a matter of getting used to. Note that Rails is an even more popular framework.
At the same time Nokogiri for me has more character. It feels justified too, the gem is everywhere and it’s very useful.
Also, since this is one of the most popular ruby gems, it’s hard for me to imagine that a rubyist would forget what this gem is about.
Plus, there is already a “libxml-ruby” gem. I like having library names that are distinct.
But yes, ruby does indeed have a lot of names like Nokogiri, (or Capybara, or VCR, etc).
A simple binary that one builds or downloads and runs is often far simpler than setting up VPSes, SSL, and so forth. And typically "web" projects are ran on complex setups where one needs the right runtime, a database, some weird bundling/dependecies step (that breaks after a few months).
Shoes has the same problems of a fickle runtime and flakey bundling step as Rails, Django, Laravel,Express and whatnot have. So it's a bad example.
But a single statically built go or rust binary is just so much easierto runthan hosting any web-app.
Long story short, I think your answer is a great consideration of typical modern web servers, but I was suggesting the use of the protocols in a more unusual way. Namely, writing web programs that you don’t intend on ever publically hosting
I guess in some ways I still went with your suggestion since it’s an html based gui, but local apps make data ownership way less problematic and are the right choice sometimes.
> But maybe I missing the point?
I'm just looking at WhatsApp taking 150% CPU (plus 30% from a whatsapp helper) and ruining my laptop's battery.
This is the "infinitely more mature" future you want.
All those people with names ending with "s" make my head hurt. Curse you James, Chris, Thomas, Charles and all the others with their fancy and exotic names!
Seriously, proper names are fine to end with "s" as their isn't really a meaningful plural form. Shoes is used as a name here so "Shoes is" is grammatically correct.
Plus “shoe” would be an AWESOME name for a framework! Missed opportunity…
maybe! coding can be playful and computers are for everyone.
https://github.com/whymirror/why-archive/blob/master/shoes/n...
Web is fine when web is fine, and not when it's not.
When is a gui app better than either cli or web? Sometimes.
(*) Almost all. Most of them.
RubyMotion I can't really vouch for.