Skip to content

The Future of Shoes

Cecil edited this page Oct 31, 2015 · 1 revision

The Future of Shoes 3.x

In case you haven't heard, Shoes 4 is being developed in Ruby using jRuby and Swt that allow the developers to leverage Java's cross platform abilities. Shoes 3.x uses MRI Ruby or 'cruby' and C plus some Objective-C on the Mac and Gtk plus others. Shoes 3 is not easy to understand or build.

Shoes 3 has some quirky charms and features that would be difficult to implement in Java technologies. Shoes 3.2 is a maintenance release to keep Shoes alive and working on newer OS and Ruby versions. We mostly fixed bugs -- some of them were very difficult but we did it. Backwards compatibility is very important for Shoes 3.2 and the Shoes 4 folks have bent over backwards to maintain a high level of compatibility with Shoes 2 and 3. But, they do diverge. Shoes 3.2 is at the point were we can think about using those quirky features and perhaps diverge further. Did you read the word "Perhaps".

Every thing below is speculation. This is not a road map or even a plan. Not a promise to be found below. No Promises. Some of these might be impossible and the rest very difficult. Some might be better accomplished in a native back end to Shoes4.

3.2+ Wish List

You can't put Shoes changes in two categories. They overlap and there are feedbacks from one idea to another.

Make the packager a gem or a separate program.

This request has been around forever. And always short of volunteers and long on pointers to gitub projects that almost do it for one or two platforms. Then those projects fade away to unmaintained because it's a hard problem.

Shoes 3.2 is much better. You can run the packaging code as a Shoes GUI program or drive it with a yaml file and some command line ruby. It's also set up to only package Shoes and not 'anything'. A deeper understanding and integration with NSIS would be needed along with some sort of recipe scheme/DSL like brew, knapsack and rake compiler - some of those are falling into dis-repair.

OS integration

  • icons
  • system tray, task bar, dock dynamic changes
  • notifications
  • install the development tools and libs needed to build native code gems.

GUI enhancements

  • Better user drawn/defined widgets. Provide a repaint method.
  • MVC separation
  • Ability to define Z order
  • GUI builder
  • Unit test TestRunner

Deployment

  • Packaging and run a Shoes application in and from an Sqlite3 database.

Miscellaneous

  • Printing feature

It's a wish list. Add yours.

Clone this wiki locally