• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
Codemotion Magazine

Codemotion Magazine

We code the future. Together

  • Magazine
  • Dev Hub
    • Community Manager
    • CTO
    • DevOps Engineer
    • Backend Developer
    • Frontend Developer
    • Web Developer
    • Mobile Developer
    • Game Developer
    • Machine Learning Developer
    • Blockchain Developer
    • Designer – CXO
    • Big Data Analyst
    • Security Manager
    • Cloud Manager
  • Articles
    • Stories
    • Events
  • Sign In
Home » Dev Hub » Web Developer » What is ELM and why should I care?
Web Developer

What is ELM and why should I care?

Interview with Claudio D'Alicandro about ELM, a very versatile pure functional language for machine learning (with no runtime errors!)

Last update December 3, 2019 by Codemotion

Hello Claudio. Recently, you’ve given a speech related to ELM that is purely functional and is developed with an emphasis on usability, performance, and robustness. Would you like to briefly explain what your talk was about?

ELM is a pure functional language. I turned to the community that’s beginning more than anyone else to use the functional to show that – yes! – JavaScript can be dealt with in a functional way, but there are pure functional languages that bring us very strong advantages, including ELM, an ML language where there are no runtime errors. Bringing this concept into a world where “null is not a function” or “undefined is not a function” are errors on the agenda, and probably seen by a JavaScript developer dozens of times a day, could be an advantage. I tried to emphasise the interoperability of this language with JavaScript. It’s possible to create elements in ELM which can be inserted in a codebase, for example, React. The idea was to be more interested in raising awareness of the language because, aside from ELM, there are many ML-style functional languages related to JavaScript. In fact, during the talk, I received many questions about these languages from the community members. Facebook, for example, is working on an ML-like language.

In your opinion, is this technology continuing to evolve?

Nothing is perfect or static, and ELM is evolving because it emerged in a period when the maximum aspiration of a functional language usable in JavaScript was to write a very small component, but which was then adopted by quite complex web applications. So it’s evolving towards the usability of code and packetisation. Another proof that ELM is evolving is that the communities and conferences are inviting important people related to this programming language as it happened in case of Codemotion as well. One of the keynote speakers at Codemotion Rome 2018 was Richard Feldman, one of the creators of ELM.

Do you have any advice for those who are approaching the area of functional programming?

There is no ELM community, at least in Rome, but it is possible to start talking about ELM on an international level. Founding an ELM community would certainly be a good idea: the online documentation is well done, and the Open Source code, which is an excellent resource to grow, is also available. Moreover, it could be an opportunity to collaborate with colleagues, friends, developers and maybe carry out a project from scratch, which is always the best way to grow. If anyone’s interested, there’s a repository of Elixir Rome where there’s an app that I used together with Gabriele Santomaggio during our talk at Codemotion Rome 2018; the front-end is entirely developed in ELM.

Could you tell us why you decided to talk about ELM? Did you want to spread the word about it or there is someone in the community who requested this kind of talk?

Once I was talking to one of RomaJS’s leaders, Matteo Manchi, and I told him that I wanted to give this kind of talk to the PHP community. Matteo told me that surely front-end side would have been well-covered, inviting me to do the talk at one of the meeting of his community, and of course I accepted this invitation.

I must also add that requests from community members are always listened to; lately the communities communicate through Slack, and there’s a Slack for every community: BEAM Italy, RomaJS, the Slack for all the GrUSP. If you’re interested, just do a quick search on Google and you find some Slacks to sign up to, where you can request support for each specific topic.

In your opinion, why should anyone who has never been interested in the topics related to ELM and in functional programming in general attend the talk like this?

Something closely related to ELM is the lack of runtime errors. Moreover, it’s interesting that ELM is a pure language, and therefore if you wanted to do all the functional tests on an entirely ELM codebase, having 100% coverage would guarantee the lack of bugs, which is no trivial matter. I would also add the readability of the code. When you feel confident with the language, we’re talking about an extremely readable code, a very lean and very well-made syntax. Even the ELM codestyle standards are designed to use versioning in the most correct way. Sometimes, until you try and you have a little awareness of what it’s like, functional programming looks complicated, but once you get stuck in and see people who didn’t even know what a remap was until two years ago, now they use it constantly within their code.

Thanks for all this interesting information. Now let’s change the subject a bit. Could you tell us a bit about yourself?

I’m a back-end developer and currently, I work at AdEspresso, a startup that deals with marketing activities on Facebook. It’s been a while since I delivered my last talk, but my first talk dates back to 2014 – I delivered it at the Symfony Day conference. I was mainly engaged with the PUG Roma community. My favourite programming language was PHP. It changed a little bit around four years ago when I also dedicated myself to the programming language called Elixir. What I try to do when I deliver my talks is to increase the interest in functional languages, towards this paradigm that’s much older than you think and that’s beginning to re-emerge through frameworks and good practices originating especially in the world of JavaScript.

Let’s go back to the start… Why did you choose a career in the IT industry?

In reality, I studied a completely different thing: I am a computational and theoretical chemist. I joined the IT world because it was my first serious work experience. At the very beginning, it was not serious: we drew up a sort of micro company with another colleague. Later on, things went very well, so I decided to drop out of my studies in chemistry and devoted myself to the IT world. At the beginning I was a system engineer and I started programming in C++, then, at my first serious job, there was the need to make an application for distributed work, and then I made my first web application even though it was obviously with very particular methods, it was in PHP and it’s certainly not comparable with what can be done (it happened more or less in 2006). Later on, I became interested in web programming.

Claudio, could you tell us how you keep yourself informed on all the latest tech news? Do you follow any course? Do you attend the conferences?

Absolutely! Doing all these things is super important. Since Codemotion conferences or specifications began, for example, those of GrUSP when I worked in the PHP environment, or those of BEAM Italy now that the team is engaged on Elixir, I think the quality of Italian code and programmers has increased. The best thing for keeping yourself up-to-date is joining the community created within the largest conferences and attending the meetups, with monthly meetings, mailing lists etc. There’s no better way to grow and discover new things than the community. The community doesn’t take charge of anything you learn and it’s the best way to discover what to study tomorrow. There are no professors within the community and no one’s obliged to teach you; the exchange is mutual! The advice I give to everyone who is starting to develop or is entering the tech world is: the community is the most important thing!

Do you have any advice for those who are approaching functional programming or who are starting their career?

The best advice I can give is “get out of your comfort zone: if you keep doing things you know how to do, you’ll never evolve”. That said, specifically with functional languages, I can say that, as with everything connected to IT, the more you keep going, the more you weaken myths. You shouldn’t be scared; what they sell you as complicated often isn’t.

Tagged as:Functional Programming Interview Languages

Which research techniques and UX designs are most suitable for startups
Previous Post
iPhone X’s Face ID using Deep Learning
Next Post

Primary Sidebar

Whitepaper & Checklist: How to Organise an Online Tech Conference

To help community managers and companies like ours overcome the Covid-19 emergency we have decided to share our experience organizing our first large virtual conference. Learn how to organise your first online event thanks to our success story – and mistakes!

DOWNLOAD

Latest

What are the Main Areas of Development for Programmers to Land Their Dream Job? Codemotion

What are the Main Areas of Development for Programmers to Land Their Dream Job?

Backend Developer

How to Contribute to an Open-Source Project

How to Contribute to an Open-Source Project

Backend Developer

6 Great DevOps Metrics - and How to Choose the Right Metrics

6 Great DevOps Metrics – and How to Choose the Right Metrics

DevOps Engineer

Codemotion Interview with Chad Arimura

Thinking Like a Founder – meet Chad Arimura

CTO

DesignOps and UX Engineers

Move Over DevOps! Time for DesignOps and UX Engineers

Designer - CXO

Related articles

  • Why Should You Care to Learn TypeScript?
  • GraphQL Testing With Karate
  • Introducing a new and improved Twitter API
  • Speeding up innovation with Arun Gupta
  • 18 Books & Blogs Every Developer Should Read
  • Kick Off A React Project: CRA, Next.js or Gatsby?
  • Tips For Every Full-Stack Developer In 2020
  • Getting started with WebAssembly and Rust
  • Douglas Crockford and his book “How JavaScript works”
  • Shokunin of the Web

Subscribe to our platform

Subscribe

Share and learn. Launch and grow your Dev Community. Join thousands of developers like you and code the future. Together.

Footer

  • Learning
  • Magazine
  • Community
  • Events
  • Kids
  • How to use our platform
  • About Codemotion Magazine
  • Contact us
  • Become a contributor
  • How to become a CTO
  • How to run a meetup
  • Tools for virtual conferences

Follow us

  • Facebook
  • Twitter
  • LinkedIn
  • Instagram
  • YouTube
  • RSS

DOWNLOAD APP

© Copyright Codemotion srl Via Marsala, 29/H, 00185 Roma P.IVA 12392791005 | Privacy policy | Terms and conditions

  • Learning
  • Magazine
  • Community
  • Events
  • Kids
  • How to use our platform
  • About Codemotion Magazine
  • Contact us
  • Become a contributor
  • How to become a CTO
  • How to run a meetup
  • Tools for virtual conferences

Follow us

  • Facebook
  • Twitter
  • LinkedIn
  • Instagram
  • YouTube
  • RSS

DOWNLOAD APP

CONFERENCE CHECK-IN