Submit A Resource
Contact Us
About Functionn

Subscription Options

Subscribe By Email (265+)



Dec 11, 2012

Author: Hirvesh Posted At: 12/11/2012 Tags: , , ,

Elm - A Functional Reactive Programming Language Meant To Replace HTML/CSS/JavaScript


Elm is a functional reactive programming language meant to replace HTML/CSS/JavaScript. Elm is optimized for creating web GUIs, supporting complex user input, and avoiding callbacks.

Functional Reactive Programming (FRP) allows rich interaction in a functional setting. It answers the question, “How can I handle user input and update a GUI in a functional way?” FRP ends up making it much easier to create interactive GUIs and to work with complex sequences of synchronous and asynchronous events. Its ideas can be valuable in an imperative setting too.

FRP comes down to one simple idea: some values change over time. In FRP, these time-varying values are called signals and they update automatically.

FRP becomes truly powerful when paired with a good graphics library, making it possible to create interactive pages or design purely functional games.

Functional reactive programming (FRP) is a declarative approach to GUI design. The term declarative makes a distinction between the “what” and the “how” of programming. A declarative language allows you to say what is displayed, without having to specify exactly how the computer should do it.

The term declarative is important only because most current frameworks for graphical user interfaces are not declarative. They mire programmers in the many small, nonessential details of handling user input and manually modifying the display.

So with FRP, many of the irrelevant details are left to the compiler, freeing the programmer to think about things that matter. That means no event handlers, no callbacks, no DOM manipulations. These things simply are not necessary with FRP in Elm.

Coding these examples in a traditional GUI framework – such as HTML/CSS/JavaScript – would require significantly more work and headache. Imagine manually extracting the mouse position from an event, adjusting the value to deal with cross-browser incompatibilities, finding a node in the DOM based on its ID, and finally describing exactly how to destructively modify that node. Not only is that painful to code, but it also requires broad and deep knowledge of inconsequential things.

FRP makes tasks considerably easier by taking care of the messy “how” of events, display, and updates.

Requirements: None
License: BSD3

Daily Posts, Be Updated, Subscribe:

Want Free Web Resources? Enter Your Email And We'll Send It To You - Daily! (265+ Subscribers)

Yup, it's that straight forward! Enter your email address below and we'll send you the latest web resources to your inbox, everyday. We don't do spam. Ever.

Trending Posts On Functionn This Week


Other Interesting Resources:


Post a Comment


Recent Posts

Popular Categories

Popular Components

Popular Licenses