Archive for the ‘Elm’ Category

Elm explained

Sunday, March 13th, 2016

Elm explained by Nik Silver.

From the webpage:

Some demonstration code and commentary to explain various fundamental features of the Elm language. The idea is mainly just to be able to read and understand Elm code, not so much how to use it well.

I will still be posting about the FBI’s efforts to rape Apple but I want to get back to delivering more technical content as well.


I first saw this in a tweet by Jessica Kerr.

PS: See also: Discovering the Elm Language.

Learning FP the hard way:…

Sunday, October 11th, 2015

Learning FP the hard way: Experiences on the Elm language by Ossi Hanhinen.

From the webpage:


A good friend of mine convinced me about the benefits of Reactive Programming not that long ago. It almost feels wrong not to write Functional Reactive Programming — apparently the functional methodology lends itself magnificently to complement reactive programming. How, I did not know. So I decided to learn this stuff.

Knowing myself, I soon realized I would only ever get in the mindset if I had to solve some actual problems using the techniques. Having written JavaScript for the past few years, I could have just gone for RxJS. But again, I knew myself and felt it would give me way too much room for “going against the grain”. I needed something that would enforce me to solve everything in a functional manner. This is where Elm comes in.

Elm? What’s that?

Elm is a programming language that compiles to HTML5: HTML, CSS and JavaScript. Depending on how you display your output, it may be a <canvas> with objects inside, or a more traditional web page. Let me repeat. Elm is a language, which compiles into the three languages used to build web apps. What’s more, it is a functional reactive programming language with strong types and immutable data structures.

Okay, so you may have gathered I am no expert in this field, but in case you’re lost, here are my short explanations on the terminology: Appendix: Glossary.

I can think of three reasons why you should read Ossi’s post:

#3 – You like functional programming languages.

#2 – Elm sounds like a great way to avoid writing HTML5: HTML, CSS and JavaScript.

And the #1 reason people will read Ossi’s post:

#1 It provides a base for writing a Space Invaders type game! 😉

I liked Space Invaders but my personal favorite was Missile Command. It was so bad, once upon a time, that I had a jar into which I had to put quarters for each game. Just to keep time spent playing to a reasonable amount.


Elm 0.12.3

Tuesday, May 20th, 2014

Elm 0.12.3: Hardware accelerated 3D rendering with WebGL

From the post:

Elm now supports 3D rendering with WebGL! Huge thank you to John P. Mayer for designing and implementing such a simple API for this. It has been really fun to work with so far and we are excited to see what people can do with it!

This is the first public exploration of using alternate renders with Elm. Our goal is to be great for all kinds of UI tasks, so 3D is just the first step on the road to more traditional renderers such as the D3 backend for Elm. Future exploration will focus on more traditional kinds of UI, all super easy to embed as a component in an existing JS app.

This release also comes with some changes to the Color library, making it easier to create colors programmatically. The initial motivation was to make Color play nice with WebGL, but the library came out a lot friendlier to use in general.

If you want to become a functional programming shop, use Elm to experiment with 3D UI components. Or UIs in general for that matter.

I first saw this in a tweet by Paul Smith.


Tuesday, April 2nd, 2013

The Elm Programming Language

From the webpage:

Elm is a functional reactive programming (FRP) language that compiles to HTML, CSS, and JS. FRP is a concise and elegant way to create highly interactive applications and avoid callbacks.

The hyperlinks for “create,” “highly,” “interactive,” and “applictions,” all lead to examples using Elm.

I never was much of a Pong player. More of a Missile Command and Boulder Dash fan. Still, it is an interesting demonstration. (Wasn’t working when I tried it.)

Yes, another programming language. 😉

But, it does look lite enough to encourage experimentation with interfaces.

Whether it is lite enough to keep people from feeling “invested” in prior interface choices only time will tell.

Not for everyone but I can imagine a topic map interface that offers design patterns in UML notation which are extended/completed by a user.

Or interfaces that are drawing kits of nodes and edges. Some predefined, some you define.

Or interfaces with text boxes and reasonable names for their contents.

Or other variations I cannot imagine.

Could be “lite” or “feature rich,” although I lean towards the “lite” side.

Wherever you come down on that continuum, topic maps need interfaces as varied as its users.