WebAssembly , or WASM for short, is a new technology for running portable programs in a safe and efficient manner primarily aimed at the web platform. Similarly to ASM.js , WASM aims at a low level-of abstraction suitable as an intermediate representation of a higher-level program — i.e. WebAssembly code is intended to be generated by compilers rather than being written by humans. The W3C…
Gotalk exists to make it easy for programs to talk with one another over the internet , like a web app coordinating with a web server, or a bunch of programs dividing work amongst eachother. Gotalk takes the natural approach of bidirectional and concurrent communication — any peer have the ability to expose “operations” as well as asking other peers to perform operations. The traditional…
Dropbox’s first developer conference DBX was a lot of fun. Me and Adam Polselli gave a talk on “Designing Products for People” as seen in the video below.
I’m very excited to let you know that I’m joining Dropbox . After two years at Facebook I couldn’t be more proud. Proud to have been part of something as important as Facebook and proud of the work I’ve done with shaping the future of mobile communication. It’s truly been a fantastic time of my life — an experience rich of great people, mind-boggling challenges and once-in-a-lifetime experiences.…
Your favourite fancy-pants modern programming language is from the 1950s. Pretty much any programming language used today is a derivative of Fortran or Lisp , both born in the 1950s. Okay, reality check: It’s 2013—yes, 60 years later—and we have cars that drive themselves on the street, robots roaming the surface of alien planets and tiny networked devices with interactive surfaces that we keep in…
Questions by Mme. L. Amic, Answers by Charles Eames . What is your definition of “Design”, Monsieur Eames? One could describe design as a plan for arranging elements to accomplish a particular purpose. Is Design an expression of art? I would rather say it’s an expression of purpose. It may, if it’s good enough, later be judged as art. Is Design a craft for industrial purposes? No, but design may…
During this weekend, together with a few evenings earlier this week, I created a rather simple virtual machine dubbed “Sol” , after the Swedish word for “sun”. I’ve read a lot about VM design and I’m into stuff like OS design, programming languages and other seeminlgy obscure and nerdy stuff surrounding the concept of a computer as a generic tool. A virtual machine (VM) is a software…
Let’s write our own programming language. It’ll be fun and we will learn some key tools for processing structured data, performing semantic analysis, how to make a computer execute code, and all this using modern JavaScript. We will create five major components, each outlined in a separate article: Lexical analyzer Semantic parser Code generator Management and support Runtime library Today we will…
As I slowly make progress on my little functional programming language Hue , I’d just wanted to share the “Hello World” of functional programming — factorial and fib . The factorial function calculates the factorial of a natural number: factorial = func ( n Int ) if n == 0 1 else n * factorial n - 1 factorial 10 # -> 3628800 The fib function computes Fibonacci numbers: fib = func ( n Int ) if n <…
Hue is one of my latest hobby projects that didn’t die after a week. It’s a functional programming language, in a sense. There are no statements in this language, but everything is an expression. An expression does something funky and returns something—hopefully—even funkier. That includes if..then..else as well as logical tests and functions. Anyhow, this hobby language of mine is still very much…