Okay, so I just took Imba for a little spin. Some thoughts: I like the way it looks. A lot. Love, love the tags. Really like the simplified object literals. The use of global variables for class state is deeply troubling - they are not scoped at all. The parser is far too forgiving. if you change do |x| x x into something like do x x x it will compile fine, but be wrong. The tooling is quite nice, and I like the defa…
Thanks for the feedback. What do you mean with global variables for class state? We do consider moving class-bodies inside an actual function (again) - but there is a virtual scope there in the compiler. So class A var i = 10 var i = 20 Compiles to function A(){ }; var i1 = 10; var i = 20; So they are actually scoped even though it does not look like it in the compiled js. I'm looking really forward to improving the…
class Todo
# variable defined in class scope
var count = 0
Which compiles into this: var count = 0;
And also your example page elides the IIFE that your compiler surrounds all output with, implying (falsely) that it's global.As for ST, I think that for me based on my brief experience, you might want to add more compiler warnings to the watcher. (Basically I messed with Imba locally with two ST windows side-by-side, looking at Imba on the left and js on the right, treating the watcher output as compiler output.) Don't get me wrong, ST feedback is great, but the watcher feels more canonical. Besides, not everyone has ST!