Ajax without the ‘j’

I’ve been meaning to dive deeper into the meta-programming side of F# for some time, in particular to try to finish off a side-project I started work on some time ago. In my stash of papers that I intend to read, I’ve had TomasP’s thesis for some time and decided to give it a read to get more data about the facilities. As an aside he gives a very good summary of the contents here. The thesis project can be downloaded here, though it doesn’t work on the latest releases of F# – I spent a little time trying to fix it up in vain.
The idea is really grand… you simply write everything in F# and the system compiles the client side version of the F# into javascript and runs it on the client side, passing values back and forth between the client and server using serialization. Definitions can be processed by the system to make browser javascript functions, like those for manipulating the DOM, available to the client side F# code. Computation expressions, the monadic syntax from F#, are used to mark the client and server side parts of the code and allow the type system to be used to keep them separate.
It all looks really neat and would be great fun to play with… hopefully, it will be fixed up at some point to run in the latest versions of F#. The only missing part seems to be the debugging story; there are some examples of the translated javascript versions of some F# functions in the thesis, but this is likely to be hard to debug. However, lots of the current Ajax style applications still use server side processing for doing all of the hard work and use the client side code for doing the UI manipulation so things might not be too bad. It’s certainly something I will be keeping an eye on.
This entry was posted in Computers and Internet. Bookmark the permalink.

One Response to Ajax without the ‘j’

  1. Frank says:

    Yeah, same thing here! I also fiddled with it but couldn’t get it to work. Hopefully Tomas will be able to finish his book and get to fixing it.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s