For those wanting to interface their smart phones with their cars OpenXC is an interesting open source platform http://openxcplatform.com/ .

The Bluetooth RFComm interface on the OpenXC dongle can be used from either Android or Windows Phone 8. The OpenXC dongle outputs JSON (or optionally protobuf) so it is easy to understand and use the messages that the car is sending.

Firstly, a very entertaining and engaging discussion. Nice work Charles!

Secondly, as someone who has done a fair bit of Smalltalk, C#, Java and F#, I and can contribute from my experience.

Smalltalk certainly has the cleanest syntax that I have seen. It is a pleasure to work in that language (unfortunately it was all but wiped out by Java). It think it is the most stress free language that I can think of.

Now I work mostly work in F# and I believe that I am better off than when I was working in either Smalltalk (or C# or Java).

F# (or OCaml) has strong *type inference* so most of the time it does not *feel* that you are working in a strongly typed language. If you make a change, the types automatically propagate through. If there is a type conflict, the error gets flagged and you can fix it.

While nothing is perfect, F# strikes a good balance between the extremes of Smalltalk and Haskell.

I understand Anders is being very practical and doing the best he can given all of the constraints around web and javascript.

I think instead of a 'language' standard, we should have a VM standard for browsers. If we have a VM standard then we could use any language we want. There will be constraints that all languages will have to adhere to, for interoperability but it's doable. Note both the CLR and JVM have evolved to support a large variety of languages so its technically feasible.

I don't see any standardization effort in regards to a browser VM. Clearly it is needed because javascript can only be taken so far.

Scala has delimited contintuations (shift / reset keywords) where you can bracket some state that is relevant for your computation and do something with it (save/restore/ship to another location, etc). A stateful web framework could leverage that well, although I don't know of any that does.

Also, one of the useful F# features is metaprogramming using computation expressions that provides language extensibility (this is like C++ or LISP macros but not exactly). Donna talks about that at around the 45 minute mark. One of the products that leverages it well is WebSharper (http://websharper.com) for generating client side javascript from F# code.