Unenterprisey languages going strong
The Unenterprisey Languages Meeting held in Wellington yesterday went very well. The turnout was good with about 16 people there and the talks by Jonathan, Robert and Geoff were great. It's good to see and hear about languages like Io, Common Lisp and Erlang being used.
Jonathan talked about Io's prototype based OO system and how inheritance works in it. He went through an overview of Io itself, how the inheritance works, and how he used ideas gained from Io in a project he worked on recently. His project used a domain specific language he developed that used the inheritance ideas of Io to help manage the project. It looked pretty cool.
Geoff talked about Erlang, going through its history, syntax, reliability, and concurrency system. It was good to see him talk about the OTP system as I wasn't very familiar with that and his demo showed sending messages across processes with dynamic failover of nodes. When the primary node went down the secondary node took over. When it came back up again it again took over. Very neat!
Robert Strandh talked about GSharp, his musical score editor written in Common Lisp. It uses CLIM for the GUI and looks very nice. The focus of the talk was how he embedded a domain specific language into GSharp to handle fonts better. Specifically the language was modelled after MetaFont, but embedded as a DSL in Common Lisp as a macro. This would then get compiled as PostScript bezier paths. The macro itself was a nice example of intentional variable capture (ie. It was intentionally a non-hygienic macro) which was something I'd not seen in a 'real world' usage before.
Robert also showed another CLIM application he wrote to preview the fonts from the DSL. In 172 lines of Common Lisp code it had an impressive amount of functionality. CLIM looks to be a very powerful framework.
My talk was about Javascript. But Javascript used slightly differently than normal. I gave a brief overview of Javascript and its prototype based OO system. I then talked about using Javascript on the server as well as the client, and about the possibilities of having the same code run on both the server and client for things like field validation. This way one copy of the code can validate input fields in client side Javascript and when posted to the server the same code can also check that the server side POST was valid.
To demonstrate running the same code on the client and server I used Wiky, a nifty Javascript bidirectional markup converter. I showed the Wikybox running on the client, and demonstrated loading the exact same Javascript in Rhino and doing the same conversions on the server. The idea being you can have the markup converted to HTML for a preview on the client, send the markup to the server when saving, and use the same code on the server to store the HTML.
From there I demonstrated using Server Side Javascript to dynamically modify a running web server, adding servlets on the fly in Javascript.
I went on to talking about continuations and Javascript. For client side continuations I showed some Narrative Javascript examples and went through the lightweight threading and process communication examples I posted about previously.
Finally I finished with server side continuations in Javascript showing the thread migration example.
After the talks we all went out for a great meal at a local restaurant and ate, drank, and talked for most of the night.
Overall I'd say the alternative language interest and usage in New Zealand is definitely looking good. Thanks to everyone who attended and those that organised it - very worthwhile!
Categories: misc
Jonathan talked about Io's prototype based OO system and how inheritance works in it. He went through an overview of Io itself, how the inheritance works, and how he used ideas gained from Io in a project he worked on recently. His project used a domain specific language he developed that used the inheritance ideas of Io to help manage the project. It looked pretty cool.
Geoff talked about Erlang, going through its history, syntax, reliability, and concurrency system. It was good to see him talk about the OTP system as I wasn't very familiar with that and his demo showed sending messages across processes with dynamic failover of nodes. When the primary node went down the secondary node took over. When it came back up again it again took over. Very neat!
Robert Strandh talked about GSharp, his musical score editor written in Common Lisp. It uses CLIM for the GUI and looks very nice. The focus of the talk was how he embedded a domain specific language into GSharp to handle fonts better. Specifically the language was modelled after MetaFont, but embedded as a DSL in Common Lisp as a macro. This would then get compiled as PostScript bezier paths. The macro itself was a nice example of intentional variable capture (ie. It was intentionally a non-hygienic macro) which was something I'd not seen in a 'real world' usage before.
Robert also showed another CLIM application he wrote to preview the fonts from the DSL. In 172 lines of Common Lisp code it had an impressive amount of functionality. CLIM looks to be a very powerful framework.
My talk was about Javascript. But Javascript used slightly differently than normal. I gave a brief overview of Javascript and its prototype based OO system. I then talked about using Javascript on the server as well as the client, and about the possibilities of having the same code run on both the server and client for things like field validation. This way one copy of the code can validate input fields in client side Javascript and when posted to the server the same code can also check that the server side POST was valid.
To demonstrate running the same code on the client and server I used Wiky, a nifty Javascript bidirectional markup converter. I showed the Wikybox running on the client, and demonstrated loading the exact same Javascript in Rhino and doing the same conversions on the server. The idea being you can have the markup converted to HTML for a preview on the client, send the markup to the server when saving, and use the same code on the server to store the HTML.
From there I demonstrated using Server Side Javascript to dynamically modify a running web server, adding servlets on the fly in Javascript.
I went on to talking about continuations and Javascript. For client side continuations I showed some Narrative Javascript examples and went through the lightweight threading and process communication examples I posted about previously.
Finally I finished with server side continuations in Javascript showing the thread migration example.
After the talks we all went out for a great meal at a local restaurant and ate, drank, and talked for most of the night.
Overall I'd say the alternative language interest and usage in New Zealand is definitely looking good. Thanks to everyone who attended and those that organised it - very worthwhile!
Categories: misc

8 Comments:
Server side usage of Wiky wasn't exactly my original intention. It's really cool though.
I happened on your blog. I'll bet you come across many people with your last name. My son, Brian Double, moved to NZ last year from Canada and was surprised to find the name in NZ.
Thanks Stefan. Wiky is very cool which is why I thought it would make a fun example. I especially like the Math rendering.
anonymous, I don't often come across Double's - especially on the net. It's nice to come across people with the same name though. I'm a family history nut so am always interested in talking about the name.
I write about some of the NZ Double's here:
http://www.mygenealogy.co.nz/2006/01/double-surname.html
Curses! I leave Wellington for a few weeks and miss all the interesting speakers! First Joel Spolsky, and now this. And I can't afford to go to the Euro Lisp Workshop, either. Still, at least it's nice and sunny here in England. And I'm glad the turnout was good.
Perhaps next time you can talk about Factor. ;)
Factor was on my list of things to talk about.
I had a couple of emails asking about the Javascript stuff though so I went with that.
That and the laptop I borrowed runs Windows and I'm a bit unfamiliar with Factor on that.
Demonstating (and playing) Factor space invaders would have been fun :)
Definitely for the next one I think.
Can I please be added to the mailing list if you're going to do this again -- I was in the deep south (in Fairlie!) so I missed it :-(
bruce [at] fitzsimons |dot| org
Oh, and you should tag this post with erlang so it shows up in planeterlang.org :-)
Post a Comment
<< Home