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

Codemotion Magazine

We code the future. Together

  • Discover
    • Live
    • Tech Communities
    • Hackathons
    • Coding Challenges
    • For Kids
  • Watch
    • Talks
    • Playlists
    • Edu Paths
  • Magazine
    • Backend
    • Frontend
    • AI/ML
    • DevOps
    • Dev Life
    • Soft Skills
    • Infographics
  • Talent
    • Discover Talent
    • Jobs
  • Partners
  • For Companies
Home » Frontend » Web Developer » What is ELM and why should I care?
Machine Learning

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!)

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.

facebooktwitterlinkedinreddit
Share on:facebooktwitterlinkedinreddit

Tagged as:Functional Programming Interview

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

Related articles

  • Emerging Tech: Everything You Need to Know About Robotic Process Automation (RPA)
  • Neural Networks: The Evolution of Deepfakes
  • 6 Courses to Dive Deep Into Machine Learning in 2022
  • Programmable Logic: FPGA Internal and External Interfacing
  • Embedded Processing in Programmable Logic
  • FPGAs: What Do They Do, and Why Should You Use Them?
  • How to Optimise Your IoT Device’s Power Consumption
  • How to Implement Data Version Control and Improve Machine Learning Outcomes
  • The Rise of Machine Learning at the Network Edge
  • The Future of Machine Learning at the Edge

Primary Sidebar

Codemotion Talent · Remote Jobs

Flutter Developer

3Bee
Full remote · Android · Flutter · Dart

Python Back-end Developer

h-trips.com
Full remote · Django · Pandas · PostgreSQL · Python

AWS Cloud Architect

Kirey Group
Full remote · Amazon-Web-Services · Ansible · Hibernate · Kubernetes · Linux

AWS SysOps Administrator

S2E | Solutions2Enterprises
Full remote · Amazon-Web-Services · Terraform · Linux · Windows · SQL · Docker · Kubernetes

Latest Articles

laravel best practices. The most popular PHP framework turns 12

Laravel: Celebrating 12 Years of Powering PHP Development

Languages and frameworks

Intelligent document processing with serverless cloud and machine learning.

Intelligent Document Processing With Serverless Cloud and Machine Learning

Cloud

kubernetes, probe failed error

K8s Readiness Probe Failed Error

Cloud

AI books you have to read.

10 Books on Artificial Intelligence for Developers

AI/ML

Footer

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

Follow us

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

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

Follow us

  • Facebook
  • Twitter
  • LinkedIn
  • Instagram
  • RSS