Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Colorful programs for Mac OS X, Linux and Windows (shoooes.net)
91 points by alex_c on Aug 14, 2008 | hide | past | favorite | 22 comments


This is really fantastic stuff, I'm a big fan of _why's work.

I really love the principle behind this: http://whytheluckystiff.net/articles/theLittleCodersPredicam...

I hope that this can help make programming as fun and accessible as it was on the C64. I grew up learning QBasic, taking for granted that I could draw some stuff to the screen and play music in a handful lines of code.


Thanks, I hadn't read that article.

For me, this is part of the magic of the Facebook platform. There would be "How do I..." posts on the platform forums, from people who clearly had no web development experience at all (and probably no programming experience in general). They made me realize that the Facebook platform, in its own way, captured some of the magic of writing a game in QBasic (or, before that, Z80/Commodore/whatever) and passing it along to your friends. All your friends use Facebook, none of you are hackers, but you make something neat on Facebook and they get to use it, and they know YOU made it... because of the intimacy, it's much more magical than just making a website or a desktop program.

Of course, it's a lot more complicated than it used to be. You can't just get a simple Basic program and start messing with it. You need to find hosting, with PHP, maybe MySQL, get the API client, figure out how to get it all working together, upload it... it's far from newbie friendly.

But still, I wouldn't be surprised if there are hundreds of kids today who first got into programming by asking the question "How do I make a Facebook app?"

I definitely agree with _why that we need more of this.


_why is like a one man contemporary version of the Beagle Bros (http://en.wikipedia.org/wiki/Beagle_Bros)

Speaking of beagles, and related to the little coder's predicament: It would be cool if someone chucked a beagle board (http://www.beagleboard.org) into a keyboard case and made a modern version of a C64. A hobby hacking community surrounding it based on _why's aesthetic would be a lot of fun.


hey i also grew up with GW and QuickBasic ;)


Mad props to _why.

I'm a huge fan of the idea of shoes. I tried an earlier version and found it just a bit lacking in features for things I wanted to do (networking, I think). Obviously this is the idea -- everybody wants a language that is nothing but exactly the features they want/need, but all of my sample application ideas were things that were going to need some kind of networking (network tic-tac-toe), and it didn't look like I could do what I wanted with it.

The last time I talked to a kid about computer programming, I asked what they'd want to write, and they said "a game", and drilling down I came to the conclusion that what they really wanted was a level editor for an otherwise complete game engine.

Obviously this is aimed at someone subtly different, but I think it this idea extended to have some graphics/network/game oriented gimmies would be really popular.


Shoes code is Ruby code. The name of the binary may be different, and shoes bundles a different standard library, but you can still access any Ruby libraries you like from your Shoes app.

That doesn't make it a "level editor for [a] game engine", but it certainly should give you more than enough tools to build a networked tic-tac-toe game.


Why should a GUI toolkit have networking features?


points to x11 and squeak smalltalk

that's why... GUI objects that have intrinsic knowledge of networking are actually really powerful and useful.


Really?


It appears that I confused the missions of Shoes and Hackety Hack, which would explain my misaligned expectations.

It looks like Shoes is intended to be the graphics engine for writing Ruby apps including HH, and HH is supposed to be the easy-to-use general purpose programming language.

I would be curious to see how non-trivial applications fit within the Shoes framework. My experience with ambitious frameworks has been that they work great until you want to do something that isn't perfectly aligned with its intent/charter/design, then you start fighting them really fast. Maybe Ruby or Shoes offer ways around this, but if you have to write non-trivial network or disk i/o code maybe the total win you get from a really simple GUI framework is diminished.


Shoes is a GUI framework. It just handles drawing widgets (buttons, text boxes, video player frames, etc.) on screen. Think of it as a equivalent to a web browser, with a single language (Ruby) used to define content, layout, and behavior, instead of the mish-mash that is HTML, CSS, and Javascript.

True, once you break out into the "big bad world" of network protocols and disk I/O, your code may not be quite as dead simple, but it really shouldn't be too hard for most folks to jump from this:

  Shoes.app do
    button "PUSH!"
  end
...to this:

  Shoes.app do
    stack do
      @text = para("hostnames go here...")
      button("PUSH!") { @text.replace(File.read("/etc/hosts")) }
    end
  end
...and from there to this:

  Shoes.setup do
    gem 'simple-rss'
  end
  
  require 'simple-rss'
  require 'open-uri'
  
  Shoes.app do
    stack do
      banner "News.YC Headlines"
  
      button("Fetch") do
        @articles.clear
        
        rss = SimpleRSS.parse(open("http://news.ycombinator.com/rss").read)
        
        rss.items.each do |item|
          @articles.append { para(item.title) }
        end
      end
      
      @articles = stack
    end
  end
That isn't so bad, is it?


oh my god the docs: http://hackety.org/press/nks.html

it reads right to left (click on the left hand page of the spread to advance).

Brilliant zine-like design aesthetic.


I highly recommend the paper version. Very reasonably priced.

Ironically, I haven't found the time to actually read it, but I page through it now and then just to admire the thing.


You see, I was about to make a snide little "too much jazz and hip styling and not enough, well, stuff I haven't seen before" comment, but when they put the "we need 21st century BASIC" wrapper around it, it sounds nice as a toy / prototype library.

I made an attempt a few years ago at making a python library that would try to achieve the same sorts of things (more of just a wrapper around pygame, really), but never really had the motivation to keep running with it. With some extra ease-of-use wrapping around cocos2d, I think the goal would be met.


I got excited when I saw this. Unfortunately, Shoes' text is not displaying right off the bat on MBP running Leopard. I like the idea and especially some of the graphic demos(good-follow).


My 13 year old son have never programmed a single line of code, but spends hours watching anime on youtube. I'll try to see if I can teach him to program ruby.

   >print MCMLXVII + 41
   2008
A language that you can hack to be able to process expressions like this, must be the most pleasent langauge there is right now.


It actually seems very similar to TkInter, though simpler.


The amusing thing about Shoes is that it is something that existed (with more capability) in the Tcl/Tk community 10 years ago, and it's only gotten better since then. If people wanted to develop the short of applications that Shoes enables then they could have been, and indeed, would already be.


Why doesn't shoes still have a wiki page. Great work _why. Downloading the pdf now, this weekend will be awesome.


Shoes is a really impressive exercise in simplicity. I've found it great for prototyping tasks.


This man is pure creative genius...


That looks damn neat.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: