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?
In your opinion, is this technology continuing to evolve?
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?
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.