The Shoes Blog

shoes 4 preview released!


Hello shoesers out there! Long time no see! Wondering what we have been up to?

Well we’ve been hard at work on shoes 4! Today is a happy day because we can announce the first preview release—just in time for the second birthday of the project (24th of May 2012)!

shoes 4?

shoes 4 is a complete rewrite of the shoes DSL. shoes 3 is great but it has its problems… e.g. a lot of C-code which made it hard to maintain, inaccessible for new contributors, and difficult to install.

shoes 4 is a united effort of the community to make shoes easy and fun again. The primary purpose is to re-implement the functionality shoes3 offered, improving features and squashing bugs along the way while making it easily runnable on every operating system again. The new codebase is modular and extensible, so it can support multiple rendering backends (Qt, GTK, etc). Also it’s an all ruby rewrite. There’s no C or Java code, just ruby. Easy to maintain. Easy to contribute!

shoes 4 uses jruby to leverage the cross platform power of swt for building GUIs. That means you do need to have a JVM installed, but don’t worry—all your code is ruby.

Preview Release?

shoes 4 is not quite done yet—this is the first release after almost 2 years of work. It’s not quite ready for production use and is missing some features. However there is already a lot in there! A lot of vintage shoes programs run just fine and it’s definitely possible to enjoy the power of shoes again!

What’s in?

What’s missing?

How do I get shoes 4 and run it?

Alright, alright—enough talking!

At first you have to install JRuby—preferably a version of the 1.7 series (most current release is 1.7.12). If you use rvm you can do it like this: rvm install jruby

Then while JRuby is selected as your main ruby do:

gem install shoes --pre

et voila!

After installing the gem successfully you should have a shoes command available to you on the console for running shoes programs. E.g.

shoes path/to/my/program/my_app.rb

If you want to install shoes 4 straight from the github there are instructions at our github repository README.

If you run into issues we’d appreciate it immensely if you reported them in our issue tracker. Thank you ♥

Also of course contributions, pull requests and feedback are extremely welcome!

What does shoes 4 look like?

Take this little sample program for instance:

Shoes. app title: 'Hello Shoes' do
  background gradient
  stack do
    para 'This is just a very basic app'
    button 'Click me' do alert 'Hello there!' end
    image ''

It creates this application (after clicking the button):

sample app

Here are screen shots from some applications running just fine on shoes 4:

sample tank

Vintage tank game.

sample manual

The good old shoes manual!

You can check out more samples in the samples directory. Not all of them are working yet though, so also make sure to check the README for information about which samples work.

The road to a 4.0 release

This pre release is the first step on our way to an official 4.0.0 release.

There will be subsequent pre-releases as we fix outstanding issues. You can have a look at our milestone to see the overall progress.

The next big milestone is our release candidate. We already have more than 70 issues lined up for that release. Please report more though—we want to ship bug free and fun software!


Last but not least heaps of thanks to everyone who ever contributed to shoes (shoes 4 already has nearly 40 contributors! Wooohoooo!!!), reported an issue, gave us feedback or just used shoes and had a lot of fun with it.

Special thanks goes to the JRuby organization which always supported us straight from the start with advice, quick fixes and giving us a total of 3 of their Google Summer of Code slots so we could have students working on shoes for 3 months. This release wouldn’t have happened yet without their help.

Also thanks to you for reading. Please try installing and running shoes on your machine. Let’s have fun with shoes!

Shoes on!

Team Shoes