"PureScript (Maybe This Time We Get JavaScript Right)" by Bodil Stokke

The web browser is the world's most ubiquitous user interface. Sadly, this means we're all basically stuck in an abusive relationship with JavaScript. Obviously not a desirable position to find ourselves in, we've tried breaking out of the JS trap in a variety of ways: JS dialects (solving no design flaws but at least looking prettier) and JS as a compilation target (resulting, mostly, in unappealingly large output to support the emulated runtimes). So when I found myself having to build a system with real deliverable size constraints, my only options seemed to be JS itself, or TypeScript, which doesn't add much to JS but at least provides a modicum of type checking. After a few months of fighting TypeScript, though, I'd had enough. Happily, my frustration coincided with the advent of PureScript. At first glance, PureScript looks and feels like Haskell, but there's hardly any extraneous machinery. The PureScript compiler generates very concise JS, and the language itself is designed with the platform's constraints in mind. Yet it offers things like higher kinded polymorphism, type classes and similar deep Haskell magic. More appealingly, it comes with a growing number of libraries for coping with the browser as a platform: functional DOM manipulation, reactive programming, and more. It turned out to be a delight, getting out of my tangled mess of JavaScript and rebuilding it all in PureScript, and I'd like to show you how and why. by Bodil Stokke (@bodil) - Future Ad Labs Bodil is a compulsive conference speaker in the fields of functional programming and internets technologies, and is a co-organiser of multiple developer conferences in Scandinavia and the UK, mostly because she's still learning how to stop. She is a prolific contributor to the Free Software community, and has recently taken up designing new programming languages as a hobby. In her spare time, she works as a developer for Future Ad Labs, a London based startup that wants to make advertising a productive member of society. Her favourite pony is Pinkie Pie.

Related Talks

"Writing a game in Haskell" by Elise Huard

"Writing a game in Haskell" by Elise HuardHaskell is a beautiful functional language, written by smart computer scientists, and having clever and elegant functional constructs. It clearly separates pure and impure parts of the program. Game programming on the other hand is a very hands-on discipline, trying to wring out the most of the machine's performance, and aiming ...

"No, Really... Robots and JavaScript?!"

Raquel Velez
36 minutes
"No, Really... Robots and JavaScript?!"NodeBots have been around for several years now, but with every presentation, there is always someone who asks, "But... JavaScript?! Why on earth would you make robots with JavaScript?" It's a fair question, and one worthy of more than a hand-wavy answer about how it's cool... or something. In this talk, let's ...

What the heck is the event loop anyway?

Philip Roberts
27 minutes
What the heck is the event loop anyway?JavaScript programmers like to use words like, “event-loop”, “non-blocking”, “callback”, “asynchronous”, “single-threaded” and “concurrency”. We say things like “don’t block the event loop”, “make sure your code runs at 60 frames-per-second”, “well of course, it won’t work, that function is an asynchronous callback!” If you’re anything like me, you nod and agree, ...

The Post JavaScript Apocalypse

Douglas Crockford
an hour
The Post JavaScript ApocalypseThis talk speculates about the next language after JavaScript, and what to do in the mean time about some of the new features in ES6. There will be an emphasis on simplicity and quality. The web is cluttered and full of errors. The talk will also touches on why you should ...

Rishiyur S. Nikhil - Enigmatic Haskell, Haskellish Enigma

an hour
Rishiyur S. Nikhil - Enigmatic Haskell, Haskellish EnigmaBoston Haskell, February 18, 2015 Nikhil builds an Enigma machine. First in Cryptol, then in hardware by way of Haskell. Slides and code available here: https://github.com/rsnikhil/Enigma_Cryptol_Bluespec_BSV.git ...

Is Node.js Better?

Is Node.js Better?How do we resolve the question, "is this better than that?" This talk discusses ideas for improving how we handle conflict in the programming community through the lens of evaluating whether Node.js is better than other technologies like Ruby. ...

Netflix JavaScript Talks - Version 7: The Evolution of JavaScript

Netflix JavaScript Talks - Version 7: The Evolution of JavaScriptJafar Husain discusses interesting features that can be used today in JS6, such as Object.observe, async functions and async generators, while also giving a peek at what's being explored for JS7 to make async programming easier. ...

Netflix JavaScript Talks - Async JavaScript with Reactive Extensions

Netflix JavaScript Talks - Async JavaScript with Reactive ExtensionsJafar Husain shares how Netflix uses the Reactive Extensions (Rx) library to build responsive user experiences that strive to be event-driven, scalable and resilient. Learn the power of the Observable and how Netflix has simplified code through the ability to filter, aggregate, compose and project data streams. This talk discusses how ...

Kenneth Foner - Getting a Quick Fix on Comonads

an hour
Kenneth Foner - Getting a Quick Fix on ComonadsKenneth Foner's Comonad talk at the Boston Haskell meetup, September 17, 2014. Code and slides: https://github.com/kwf/ComonadSheet ...

Mozilla Raw WebGL

Mozilla Raw WebGLNew web developers have trouble distinguishing jQuery from JavaScript. We frequently point developers to three.js for doing 3D on the web, but what is raw WebGL and what tools do we have for debugging 3D web applications? ...