JSFoo 2018

JSFoo 2018

On JavaScript and Security

Prasenjit Sharan

@ps1618

The State of Functional Programming Languages for Web Development

Submitted Feb 26, 2018

The most popular web programming ecosystems revolve around JavaScript. JavaScript was invented as a programming language for web browsers with basic aims — to enable simple interactions within a web page. It has evolved to become the standard programming language to write web applications of all complexities.

Along with the design peculiarities inherent to the language, the need to fill the gaps for developing more and more complex applications has led to various styles of architecting a JavaScript application.

This talk is a comprehensive analysis of functional programming languages as alternatives to JavaScript for writing production ready web applications. With a focus on the architectural patterns of Elm and ClojureScript, it discusses the current state of ecosystem (tools, developer experience, packages, etc) built around these languages.

The key takeaways for the audience would be

  • A clear understanding of the options at hand for writing reliable web applications, with a focus on functional languages.
  • Ways one can adopt the functional style in web projects today by using functional language (Elm/ClojureScript) interop mechanisms, and JavaScript’s functional concepts and libraries/frameworks like Redux, underscore, etc.

The audience can be a group of beginner to advanced level web developers.

Outline

⭐️This talk has been organised keeping the following points in mind.

  1. The growing trend and acceptance of functional languages in the frontend community.
  2. The in-built support of functional programming concepts in JavaScript, which in turn has resulted in a number of popular libraries/frameworks (React, Redux, Vue, etc).

⭐️Here’s a mental map of the talk.

  1. A short introduction of the evolution and current state of web development.
  2. Are there problems with the current state of web development using JavaScript?
    • If yes, what are the problems and their solutions?
    • If no, what are the possible improvements?
  3. Should JavaScript developers...
    • Consider moving to functional languages like Elm and ClojureScript?
      • Are functional languages for web production ready? Are there web products already in the market written using a functional language?
      • Do functional languages have mature tools?
      • What are the challenges? How big a roadblock is the learning curve?
    • Follow the functional programming approaches staying in the JavaScript world?
      • Do we have sufficient language constructs and libraries in JavaScript enough to support the functional style?
    • Not consider functional programming principles and follow either imperative or a mix of imperative and functional styles?
      • Can we instead follow a hybrid approach and use functional and imperative constructs as is seemingly required?

⭐️The goals are

  1. To get the answers of the questions mentioned above by analysing the current state of the JavaScript and functional language ecosystems.
  2. To understand how can we adopt functional style of programming for web projects using language concepts and libraries for JavaScript and functional languages aimed for frontend applications.

Speaker bio

I’m a Frontend Engineer, working on JavaScript applications for more than 7 years. I’m currently working with Helpshift on an embeddable conversational app for customer support.

I’ve had experience in functional programming from my time at Amazon, and here at Helpshift, we are big on Clojure. I’ve been exploring functional style of writing frontend applications for the last couple of years, focussing on JavaScript functional constructs and libraries, Elm, and ClojureScript. I earlier spoke at JSFoo 2016 on immutable data structures and how to use them in JavaScript applications.

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

JSFoo is a forum for discussing UI engineering; fullstack development; web applications engineering, performance, security and design; accessibility; and latest developments in #JavaScript. Follow JSFoo on Twitter more