Anton Sutarmin is a Devexperts frontend developer who is located in St. Petersburg, Russia. He is deeply interested in functional programming and TypeScript, something not very familiar to many programmers.
Mr. Sutarmin, what was your impression of the audience at your Global Tech Summit talk?
This is the first time I have ever attended a conference like this and I definitely like it. As for the attendees – the lecture itself was in-depth and very interesting, not a popular topic, and I’m not entirely sure whether everyone present understood what I was talking about. It was marked as Advanced so that was good for me.
Functional programming is your work and you gave out a lecture on this topic. Could you tell us more about it and why you prefer it?
Functional programming is a style of programming very close to mathematics. We look at functions more like mathematical ones, and this gives us many interesting advantages when we have to develop different and more complex parts of our applications. In the beginning when one is trying out functional programming, it might seem complicated because the concept is very much based on theory thus it could be seen as superfluous and too deep. But when the application evolves and starts needing maintenance, functional programming makes it easier compared to other techniques.
Does this mean we need more in-depth knowledge of mathematics?
Today there are many different aids and articles available on how to use functional programming in a practical way. If you do not mind practicing without truly understanding why you are doing it this way, the idea will come to you at a later stage, but first you must trust the paradigm.
What are the fundamentals of functional programming?
There are well known rules and anyone involved in functional programming should know them, such as Immutable Data for example. Once you have created a variable, you cannot change its value, thus it is no longer a variable but a constant. The second thing is Pure Functions. They do not allow us to have the so-called side effects. What they do is keep the core applications clean and predictable. For example – they do not create bugs. This is the main advantage of functional programming.
What are the most complex aspects of functional programming?
I would say that to do everything properly – the hardship you face is to learn as fast as you could. There are many different patterns you are not accustomed to. You could easily say that a problem could not be solved with functional programming and you need to do some “magic”. In such cases you must find another approach on how to solve it with functional programming. There is always a solution but it is not always easy to find.
The interview was conducted by Plamen Mihaylov