
Shoes – An easy little GUI toolkit for Ruby - jxub
http://shoesrb.com/
======
Arubis
Perhaps this is nostalgia for times irretreviably past, but if someone were to
start building toolkits and projects in almost _any_ language with the love
and care and quirkiness that _why brought to the table, I'd almost certainly
be writing that language as my primary within a year.

I miss you, _why.

~~~
supermatt
I got into ruby because of _why. I wouldn’t be where I am without that.

I’ve found a similar feeling in the javascript community. There’s a few
characters who have changed the way we even recognise the language these days.
It’s not quite _why’s beautifully artistic approach, but it has been genuinely
exciting working with JavaScript in the last decade.

~~~
andrei_says_
Could you share some of your favorite writings?

------
vlucas
From the 'About' page:

> Shoes 4 is a total re-write of Shoes. It's being done in JRuby with best
> practices. It re-implements the original Shoes 3 definition of Shoes in a
> pure Ruby friendly way whereas Shoes 3.x is more difficult for Rubyists to
> modify since it has C and Objective-C components and a build process that is
> less than easy to understand. Shoes 3.2 also has hardware costs and web
> hosting costs which makes if difficult for many developers to duplicate.

------
mhd
I miss those more explorative GUIs. Shoes, Tk and Rebol had their issues, but
they're pretty great at throwing together a few buttons and paint some stuff.
For all its power, I don't get the feeling from contemporary web stuff.

~~~
akavel
I got very positively surprised by Elm when trying it over last weeks. I mean
for building web app GUIs.

------
slx26
I learned shoes some time ago for a project I wanted to test, and dropped it
because it didn't suit my needs, _but_... reading "Nobody Knows Shoes" was
extremely fun. The kind of fun that makes you want to keep coding random
projects and messing with technology in general, that feeds your curiosity.
And that's when you learn the most. It can't be said enough.

~~~
Boulth
Is this book available somewhere? I tried this repo
[https://github.com/shoes/shoes-
deprecated/downloads](https://github.com/shoes/shoes-deprecated/downloads) but
github returns only 404.

~~~
yebyen
Yes

[http://shoesrb.com/manual/Shoes.html](http://shoesrb.com/manual/Shoes.html)

Nobody Knows Shoes link, follow the redirect, then second link from the bottom

[https://github.com/downloads/shoes/shoes-
deprecated/nks.pdf](https://github.com/downloads/shoes/shoes-
deprecated/nks.pdf)

~~~
miloignis
It's showing file not found for me now.

~~~
yebyen
Crap you're right, I don't know why GitHub would present a link and the
content is missing...

I'm sure I have a copy but this should be the source. I'm actually on the
Shoes maintainer list, so if nobody knows why, I know who to ask at the
least...

This link got me there

[https://www.google.com/url?sa=t&source=web&rct=j&url=http://...](https://www.google.com/url?sa=t&source=web&rct=j&url=http://evc-
cit.info/cit020/nks.pdf&ved=2ahUKEwiv-
YnEqpDbAhUi6oMKHfYHAS0QFjAAegQICBAB&usg=AOvVaw0voxAUBGHt9WM6IirYV8_B)

[http://evc-cit.info/cit020/nks.pdf](http://evc-cit.info/cit020/nks.pdf)

------
relyks
For those of you who don't need the newer features of Shoes 4, there's the
"green shoes" [1] version of the project, which only needs GTK and doesn't
need Java. You just need to do "gem install green_shoes" and "require
'green_shoes'" and you're good to go. I've used green shoes for a bunch of
simple utilities :)

[1]:
[http://ashbb.github.io/green_shoes/](http://ashbb.github.io/green_shoes/)

------
drudru11
I miss _why and the earlier ruby days

------
mwexler
Looks cool, esp for beginners. Any suggestions for a similar toolkit at a
similar level of ease for beginning/junior python devs?

~~~
favorited
A coworker is writing his first Python app (and first GUI app) using Tkinter.
He picked it because it was the most convenient to set up, but has written a
nice little frontend for a SQL database he was building.

------
GuiA
Shoes was started by why_, who also wrote A Poignant Guide to Ruby. Highly
recommended.

~~~
jerrycruncher
Indeed. He did a small run of zines, that acted as a sort of printed manual,
to celebrate the release of Shoes and I was lucky enough to get one. It's
almost certainly my favorite piece of computing ephemera.

Here's to you, _why - wherever you are.

------
rubyn00bie
Anyone know how performant (this version of) Shoes is? I'm guessing with the
port to Java it's just as performant as any JVM based application can be?

Additionally, has anyone used it for more complex applications or UIs? I'm
just curious how easy it is to customize. Could be a nice alternative to
Electron as I prefer Ruby to JS and Rust doesn't seem to have great UI support
yet (from what I can tell, which is admittedly not much).

~~~
yebyen
> just as performant as any JVM based application can be?

I know this is not meant to be a leading statement or a subtle dig, but it's
left open enough for interpretation that I think it's probably why you got
downvoted.

If you want to get performance out of your Ruby application and it needs to be
multi-threaded, I think you usually switch to jruby. I've never had to do
that, this is just what I've heard... how I personally read your statement is
basically the opposite, as in "JVM is dragging you down, man" \- whether that
interpretation is warranted or not is left as an exercise for the reader

I am really not a fan of drive-by downvoters, by the way...

------
macrael
Anything similar to this in python? My brother is a new programmer working on
a python project and wants to be building a UI and I don't really want to
point him to the cocoa scripting bridge as the solution.

~~~
52-6F-62
You bet! Maybe not web-like, but:

[https://www.wxpython.org/](https://www.wxpython.org/)

[https://blog.qt.io/blog/2018/05/04/hello-qt-for-
python/](https://blog.qt.io/blog/2018/05/04/hello-qt-for-python/)

I have very little experience with both outside of tinkering, but they will
probably be gratifying and practical enough to build something that works to
encourage him further.

------
coleifer
I love everything about this. When I started programming I had zero interest
in boring cli programs. I wanted buttons and stuff. _why is one of a kind and
missed.

------
ng-user
I've heard the joke hundreds of times but I honestly think naming things is
(one of) the most challenging parts of building anything software related.

~~~
compsciphd
for us that are unaware, what's the joke? Only thing I can imagine is a wizard
of oz reference to ruby slippers.

~~~
kej
The joke isn't specific to this project, it's a reference to the semi-famous
quote "There are only two hard things in Computer Science: cache invalidation
and naming things."

More info:
[https://www.martinfowler.com/bliki/TwoHardThings.html](https://www.martinfowler.com/bliki/TwoHardThings.html)

------
mrkstu
So, looking at the screenshot, the GUI and language seem very HyperCard like-
on purpose I assume?

~~~
yebyen
Have you read "Nobody Knows Shoes" ? I consider this the canonical source on
how Shoes is supposed to work and what it should look like.

It's supposed to look like writing HTML, if your HTML writing was done in a
builder syntax on a domain language in Ruby blocks. (But that's gibberish
compared to the explanations found in NKS guide to Shoes.)

Edit: the book link

[https://news.ycombinator.com/item?id=17105068](https://news.ycombinator.com/item?id=17105068)

