Smalltalk Tools in JavaScript for ExtJs 4.0
March 10, 2011
http://www.silversmalltalk.com/
ExtJs 4.0 is an advanced JavaScript library that I have chosen as the basis for rendering QuickSilver widgets across multiple browsers and mobile devices. It support SVG graphics, flexible data models, and dynamic component loading.
Currently, I am porting QuickSilver from ExtJs 3.3 to ExtJs 4.0. There has been a complete rewrite of much of the library and this has resulted in a great deal of work in migrating the Smalltalk widget libraries.
ExtJs 4.0 has a new class system which is more similar to the Smalltalk class system.
As an exercise, I tried building (in JavaScript) a Smalltalk-style class browser for the native ExtJs classes and the tool works quite well. In fact, it is very similar to tools currently being built by Dan Ingalls (who created both Squeak and the original Smalltalk-72 and Smalltalk-80).
Smalltalk has long had the reputation for being a highly productive language. I keep wondering whether the productivity has been due to the simple language syntax or to the powerful tools available in the environment. It seems that Dan Ingalls has built a complete Smalltalk development environment
using JavaScript as the only language.
Smalltalk tools for JavaScript? I would be glad to hear your thoughts.
March 10, 2011 at 5:34 pm
I think the language has some elegant features, but it is the tools, and the class hierarchy, combined with the ‘liveliness’ of the environment that makes the system so productive
March 10, 2011 at 6:14 pm
Agree 100%.
Dan Ingall’s “Lively Kernel” *feels* like Smalltalk even although the language syntax is totally different.
Anyway, both are possible to do.
March 11, 2011 at 5:37 am
Agreed and the most important tool to me is definitely the debugger! 🙂
March 11, 2011 at 8:34 am
I will start thinking about a debugger.
Thanks Robin
March 11, 2011 at 6:59 am
“Smalltalk tools for JavaScript” – very interesting idea. But you never get smalltalk like debugger 😦
Browser can be improved if you split class pane to “namespace”-pane and class-pane. In “namespace”-pane you see “ext”, “ext.button”, “ext.data”. And in class-pane you see simple class names without “namespace”..
Great work
March 11, 2011 at 8:23 am
Excellent idea for namespace pane.
I will implement it.
Thanks Denis
March 11, 2011 at 1:05 pm
Very cool, but please don’t get sidetracked. 😉
March 11, 2011 at 2:07 pm
The goal is to build an environment with the productivity of Smalltalk for today’s Internet-based applications.
And there are slightly different ways to achieve the goal…