03-04 December 2021
Re:Clojure 2021
conference podcasts
Artem Barmin about Emacs, Haskell, Lisp, StartCraft
and much more


Here we are glad to share with you an interview with Freshcode co-founder Artem Barmin. It's dedicated to re:Clojure 2021 conference that took place on December 3-4.

You can listen to a podcast or read the transcribed interview we've prepared.

Disclaimer: All answers/opinions shared by the interviewee and interviewer are of their own. Also, there may be some discrepancies between written and oral interview versions regarding the stylistic and grammar nuances.
Today I'm very pleased to be joined by Artem Barmin, who describes himself as a Clojure enthusiast and functional programming adherent. Also, Artem is co-founder of Freshcode, a software development services company.

So, let's start our podcast with an ice-breaking question — Artem, w
hat is your favourite pizza topping?

Artem Barmin: Actually, it's a rather hard question, because I eat pizza once a year. But I think one of my favourite toppings is black olives.

Perfect! I'm quite fond of the black olives too. Ok, moving on then. How did you get on computers and what excites you in software and technology in general?

Artem: I started my journey with computers when I was 5 years old. It was started in computer clubs that were very popular in our country at the time. We played computer games and I was very impressed by such games as Starcraft and others. And I decided to build my own game and to learn programming, so… this is how it started.

And were you successful in your game, whether people liked it?

Artem: During my journey, I learned a lot. I started with BASIC, then moved to C++, created several graphic engines and physical engines. And then I've figured out that the key roles in game development belong not to software developers only, but to such creators as scene writers, designers, and other guys. I was a bit disappointed and decided to move to 'usual' business-oriented software development and found myself in this.

Is there anyone in the computer community or software community whom you really admire? Someone, you look up to?

Artem: Yeah, I like Rich Hickey's philosophy a lot, that's why I'm on the Clojure podcast. :-) And I really would like to have a conversation with him and to talk, you know, not about the technology part of what he is doing, but mostly about the philosophical part, about the lifestyle.
Rich Hickey
Rich Hickey on the presentation of the architectural design of databases
Source: purelyfunctional.tv
Definitely, I think a lot of people would really welcome that type of conversation just to get to know Rich a bit better and discover more about the person and his ideas behind who he really is. Okay, moving on to this sort of question. Do you have any particular favourite piece of software that you like to use? This is something that you still use or have used in the past.

Artem: I liked Emacs a lot, it was my most favourite OS. :-) I haven't used it for 5 years, because I've moved to more manager positions, and Emacs is not very relevant for that case. But when I was a software developer I used it for 10 years and created a lot of code inside the editor. The size of my Dot Emacs was nearly 20000 lines. Of course, it was split into different files and different subfolders but it was quite big. I liked it a lot and its philosophy of constantly changing adjustments and building your own workflow on top of the usual text editor.

If you could change anything about software (this could be something that you use currently or something else), is there anything you want to change?

Artem: I'd like to change the ergonomics. I like spending time searching for pain points of friction points in different areas and thinking of how to remove them. My main personal friction point is libraries, I mean library choosing and decision-making about what architecture to use. I'd spend time improving this process. When everything is set up it's quite easy to write your own code and don't waste time on iterating other libraries and understanding how they work, and so on.

I like this idea of ergonomics in functional programming languages regarding contracts and describing behavior in types, and such kinds of things.
Freshcode Clojure research
Freshcode presentation on re:Clojure 2021 conference
How did you actually get involved in Clojure?

Artem: It was started with Haskell. It was my first programming language, I've learned it at university. Then I moved to Common Lisp thanks to the book "Practical Common Lisp", soon I moved to Emacs because of Common Lisp and learned a lot about ELisp. And, finally, after several years of Java production development, I decided to find a mix of Lisp ideas and Java ideas. And I'm in Clojure. It was a perfect discovery.

What are your favourite things about Clojure in general?

Artem: In general, it's a maxim 'Done is better than perfect". That's my vision of Clojure.

It's about a good balance between practicality and theory?

Artem: Yes, as well as about the power of language.

Would you contrast that with Haskell which for me always seems a bit more theoretical and in that respect? Would you say Clojure is a bit more practical-type language?

Artem: Yes, definitely, because Haskell has such an idea "avoids success at all cost". I think Haskell is avoiding a big success in product development just to keep this flexibility, to make it possible to add new ideas and to experiment. And Clojure is more practical, there are no major changes over the years and it's much more well-suited.
Artem Barmin Freshcode
Artem Barmin, co-founder at Freshcode
I agree, I've come from a Java background, and what attracts me to Clojure while the aspect it's easy in probability, it's practicality, and you've been able to use a vast range of existing Java libraries out there. You don't have to of course, but if you do need to, it's very easy to do that. It's something I appreciate about Clojure definitely.

Artem: Yeah, that's true.

Any favourite core function that you go towards in Clojure?

Artem: One of my favourite core functions is group-by for some reason. That is a very usual pattern of data processing for me: grouping by, then processing this group separately. That's the usual way, actually, when I check my source code I find a lot of mentions of group-by. :-)

Excellent! Let's talk about some non-software questions. If you could do something else that is not related to what you are doing now, what would it be?

Artem: I think I would spend more time in philosophy, namely in Buddhism. I like its philosophy about thinking and about life in general. It's closely related to psychology and human-to-human interactions. I would spend more time in this area.

Right-right, that's a very interesting question. Any particular strand of Buddhism that attracts you?

Artem: It has a lot of truth about how the world is working. I could tell you a lot more about it if you had more time. :-)
It's about how everything is changing, and nothing can bring you happiness in the long run. Everything you achieve, every achievement that you get will lose its value at some point.
Artem Barmin Freshcode Clojure
Freshcode presentation on the re:Clojure 2021
I guess then the focus will be to appreciate the moment.

Artem: Yes, focus on the moment and appreciate everything that is happening right now. And don't divide it into bad or good things. Just appreciate everything.

Interesting, interesting. And what would you do to do you unwind/do for fun?

Artem: I like playing games, I like StarCraft, and I like to spend a lot of time in conversations with my friends about philosophy and life in general.

And any particular book, or film, or music that you would recommend to anyone?

Artem: I would recommend Russian author Victor Pelevin. I like his books a lot, it's a fusion of ideas from Buddhism, psychology, and marketing. It's about life in general. Also, if you are interested in modern Russian culture it provides a pretty interesting picture of what is going on. Not only the visual part but also the psychological part of the whole country, including archetypes, and so on.

Okay, so regarding towards the end of the interview today (it's a very short interview), before we do close and was that giving too much away about what would you speaking about at re:Clojure? Would you like to give a little brief overview of what it is about?

Artem: Actually, it's about how we can together help Clojure from some non-technical sides, including improving its ergonomics and building a library navigation system. I want to bring more fun to the Clojure ecosystem.

We thank JUXT Cast and Re:Clojure teams for organizing these special events where we can find a lot of interesting insights from subject-matter experts.

Here you can find more podcasts with the fellowship of Clojure. :-)