Hacker Timesnew | past | comments | ask | show | jobs | submitlogin
Socks - A javascript UI toolkit inspired by Shoes (wiki.github.com)
40 points by desheikh on May 17, 2009 | hide | past | favorite | 9 comments


IMO, a better MIME type would be application/socks+ecmascript or application/socks+javascript instead of application/javascript-socks. That looks closer to how content types that are built on XML have their MIME types. For example, XHTML's MIME type is application/xhtml+xml, not application/xml-xhtml.

Also, a shoes-like syntax is already available in JavaScript, though it would be very hard to utilize as-is (in <JS 1.7, wrap in a function and use `var' instead of `let'):

    app: {
      stack: {
        para("Foo 1"); // para as a function
        para: "Foo 2"; // para as a label
        button: {
          let bar = new Button("Bar");
          bar.onclick = function() { alert("Baz!") }
        };
        flow: {
          style: ({ // CSS block
            color: "red",
            after: {
              content: "!"
            }
          });
          para("This is red and ends with an exclamation point");
        }
      }
    }


thanks a lot for your insight. will look into fixing those in future releases


This project makes the same mistake Prototype does: Using the unmodified name of an existing tech concept.


I started a similar project last year during the summer: http://github.com/omouse/sandals/tree/master

I called it Sandals and it's dead mainly because I'm lazy but also because I find it stupid to re-invent the wheel. YAY yet another UI toolkit to learn grumble


Hmmm... pretty cool. I wrote a little sample app for this that will generate a sierpinski triangle:

http://cloud.github.com/downloads/petejkim/socks/socks-chaos...

And the code: http://gist.github.com/113435


That doesn't look like JS syntax... am I missing something, or are they using JS to parse/interpret it?


It's JavaScript object literal syntax.


No - the application/javascript-socks scripts are putting Ruby-style code blocks in places JavaScript doesn't generally allow them. Presumably that's the reason for the alternate MIME type on the script.


Looking over the api it's pretty thorough and the custom controls look very polished; nice work.




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

Search: