Going Deep

Expert to Expert: Web Programming, JavaScript with Types and Flapjax

Download this episode

Download Video


Flapjax is a new programming language designed around the demands of modern, client-based Web applications. Its principal features include:

  • Event-driven, reactive evaluation
  • An event-stream abstraction for communicating with web services
  • Interfaces to external web services

Flapjax is easy to learn: it is just a JavaScript framework. Furthermore, because Flapjax is built entirely atop JavaScript, it runs on traditional Web browsers without the need for plug-ins or other downloads. It integrates seamlessly with existing JavaScript code and other frameworks. [Source = http://www.flapjax-lang.org/]

Shriram Krishnamurthi is one of the authors of Flapjax and was in town recently giving a series of lectures to fellow programming language researchers in MSR. Shriram is a professor of computer science at Brown University. Expert to Expert host and programming language designer Erik Meijer is also doing some interesting things with event driven reactivity (you'll learn all about this soon...) so the two language guys just had to chat and we had to film it. Tune in to see what happened in Erik's office over the course of an hour or so. A fair amount of time is spent discussing the reasoning behind and benefits of adding types to a language like JavaScript. It's an interesting idea, but what does it mean for web developers (who, potentially, adopted JavaScript for its wide open and highly dynamic characteristics in the first place).

As usual, there's no editing here. It's as though you just came along and watched the magic unfold. Much thanks to Shriram for taking the time to chat with us. Flapjax is impressive. Do give it a try, Niners.



Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • jonathansam​pson

      I'm only about 50% through, but I must say I am enjoying the on-and-off debates throughout the discussion. It's great to see that when MSFT interviews MSFT, it's not all tea and back-patting Smiley

    • Charles

      I love the notion of world to world transformations versus world to world passing Smiley (around 00:31:00 in the conversation). Great stuff all around.


    • stevo_

      That was a great video, really interesting.. seems more and more my requirements to make a clean solution are becoming more functional (c# functional at least), maybe its a sign of the times (trends or functional programming being more accessible today?).. I know that wasn't specifically what this was about- I think there could have been a bit more practical talk about flapjax, but the website seems to have that anyway.

      p.s. Charles, don't give away all your secrets or it might end up as the Erik Meijer show Wink.

    • Borum.NET

      Sounds interesting, but seriously, did you look at the source code of the "flapjax.js" core file that backs the demos? I am impressed with the efforts put in the framework (and obviously the idea), but the implementation is not impressive. Perhaps I'm biased; I'm using mootools / jQuery and am really impressed with the beauty of these frameworks (both in design, idea and implementation).

    • Charles


      Will do. I'd imagine you noticed a few missing ingredients upon my departure. But, yeah, I'm not going to train Erik anymore than he needs to be. It's best that I am present both to free up Erik to concentrate on the task at hand and provide some comic relief and/or non-expert perspective.

      And it's great to be there live! Wink


    • GrantB

      I don't think I've ever seen a video where I'm more sure that something important is being said without actually understanding in the slightest what it was.

    • Charles

      That's not good. Importance is relative, of course, but it doesn't exist if you can't "see" it. Could you elaborate on your comment?


    • Jules.dot

      Wow, this video really resonates with me. The thoughts on types like Erik on partially statically checked contracts being the nirvana of type systems, that type inference should be an environment (or even IDE) feature, etc. Great video!


      BTW I don't think Erik completely got how the world transformation works, especially with events like mouse clicks coming in. But of course there wasn't really an explanation of this so anyone who isn't already familiar with their model wouldn't be able to understand that...

    • Charles

      Ah. Good fodder to use as a reason to have a non expert engaged in the conversation, behind the lens. Before long, Erik won't need me anymore Wink

    • pvil

      Shriram seems to be unexperienced on jQuery and Visual Studio platform (WPF, Silverlight, MVC, IIS)  when he tries to ask about why using desktop programming environment. Maybe he is tryng to emulate a compiled language paradigm into javascript. Javascript was not designed for that purpose, so what is the point on his theory?, and what kind of real industry problem is trying to solve?

    • aL_

      interesting stuff Smiley although i personally think there is a tendency to invent new lanugaes to solve problems and perhaps that is not always best approach.. i think alot of things can be done though clever api:s, just look at something like linq or tpl Smiley thats not to say there should never be any new language, but i sometimes get the feeling that academia is a little bit to eager to invent new languages Smiley perhaps in hope to end up in the books, i dont know

      also i completly agree with eric on the confusion between the web and the browser.. lots of folks seem hell bent on cramming as much stuff as possible into our browsers.. but that seems like a artificial requirement in a way.. consider the myriad of twitter clients that are popping up.. arent these "browsers" as well? but specialized for a specific task. the question is asked: "why do i haev to download the ide?" well i think thats becase desktop apps can provide a much richer experience right now. in many many years we might get there with web standards but i think soa style apps that have one foot on the client and one in the cloud will dominate.. arent these rich web apps just regular apps with alot of restrictions on language that happen to be distrubuted seemlessy over the internet? are xbaps web apps? i dont know... food for thought.. Smiley

      also, i noticed the wii box in eric  office Big Smile good stuff Smiley the natal will p0wn the wii when it comes out, but the wii changed the world in its own way Smiley

    • Jules.dot

      I think Shriram agrees with you aL_. Flapjax and world transformations are libraries, although Flapjax also includes a syntactic layer on top of the library, just like Linq's query syntax Smiley

    • Charles

      I'm surprised nobody's talking about the implications of typed JavaScript... Come on, Niners. Smiley

    • leanmoda

      Well it's not surprising, what Flapjax tries to do is vastly more ambitious than what jQuery or MooTools do. These are just libraries wrapping the DOM. Flapjax brings Functional Reactive Programming to Javascript, it lets you write event handling code without inversion of control (no callbacks). There's no way you're going to do that with just MooTools or jQuery. FlapJax is orthogonal to these, you can use them together.

    • leanmoda

      @ Borum.NET

      >  and what kind of real industry problem is trying to solve?

      Programming with callbacks and the reliance on state this implies


    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.