📜 ⬆️ ⬇️

Farewell Note to the Programming Language

In this article, I would like to share with the Habrahabr community a verse “Onegin's letter to Tatyana” with a translation of an article from Matthias Nehlsen “ “ A farewell note to a programming language ” . The author tells about his experience of developing on Scala in the style of “I am writing to you - what is more?”



A slight deviation from the translator:


When I start learning new technologies, I try to draw attention to the trend of this technology in the labor market, complexity, interestingness, opinion on the Internet, etc. Recently I got hooked on Scala. For me personally, after more than one year of Java development, the approaches to writing code in Scala were something new and changing consciousness.

More and more itching to try this interesting language in one of its next projects. But articles like this make you doubt: “Yes, Virginia, Scala is hard!” , “Scala is worse than Java. At least for half of Java projects ” , “ OMG Scala is a complex language! ” . Post Mattias, too, from this repertoire, only with a large emotional color. In general, I will not torment, let's move on to the translation.
')

Farewell Note to the Programming Language


Dear Scala,

Do you remember how we first met back in 2012? Your functional approach seemed fresh and unusual to me. For some time, I believed that we were made for each other. My first project was successful, I was comfortable working, using the best that you have. But as soon as I started working in commands using Scala, your complex syntax started to drown me. At first it seemed to me very pleasant that you offer me to perform tasks in exactly the way I like. But after a while I noticed that you offer it not only to me. Instead, you want to please everyone, while offering all the programming paradigms known to mankind.

This was most terrible when working with experienced Java developers. Yes, of course, they were engaged in the PLO for a very long time and probably it was worth it. But this does not mean that trying to recreate Java on Scala with a slightly smaller amount of sample code is a good idea. For more than a year of work in Scala-using teams, there has not been a single day when I would feel that we have a common understanding of how to develop a system or at least a single approach to solving problems.

All this is not to say that a person cannot create powerful systems with your help; There is a huge amount of evidence to the contrary, but my heart no longer belongs to you, and I’m not even sure that it ever was.

Last year, using Scala and the Play Framework, I wrote a small application called BirdWatch, originally created only to show something during a job interview. But then everything got its meaning. It looked as if a small and cute stray dog ​​suddenly appeared on your porch. And you didn't know what to do with her, but she looked so hungry that you decided to feed her; she decided to stay and stick around, and before you knew it, you noticed that you were looking for regular meetings with this dog. You know about such stories, that's sweet; however, I'm not complaining.

But I never felt obliged to work hard on the implementation of the server side, in particular, because I already had enough time to write on Scala. In addition, while the implementation on the server side looks deceptively simple, in reality, everything is difficult to understand in detail, because it requires implementation on the Iteratee library. In my opinion, this library is difficult to understand; it is even harder to explain it to other people and it’s almost impossible to understand the source code. For the sake of due diligence, I prefer to rely only on the source code of the library, which I have read and understood well. In this case, I could not fix even the smallest bug, and it was a red light for me.

I spent a lot of time working with different clients. I initially worked with the AngularJS / JavaScript version, then with another version of ReactJS / JavaScript and even with ReactJS / ScalaJS.

All this time I have been flirting with Clojure, so for me it was the next logical step to write a client using ClojureScript and Om. I immediately refused the previous one. Not because I did not like him, but because I liked the experience of using ClojureScript so much that I completely wanted to abandon you, dear Scala, in favor of all-Clojure.

Therefore, all so. I discovered another programming language, and for the first time I feel as if I had found my soul mate, exactly the kind that a programming language can become. I'm sorry, but I have to follow the call of my heart.
You may ask, why am I writing all this here? Good question. The other day a recruiter approached me about a project on Scala, it happens so often that I don’t even care to see who this project is for. But this time it was different. I felt the need to end this completely. Taking into account my career, I decided that you, Scala, will no longer be a part of it, no matter how high the demand will be and how impressive the rate on the freelance platform will be.

I will be happier working with Clojure projects. Although this leads me to the disappointing observations made at Conj. I was surprised by the number of people who said that they wished they could code at Clojure to at least pay the rent.

To summarize, dear Scala, I can say that it's all over between us. This is not about a break, I found a better partner. And this does not mean that someone else should blindly follow my example. All this in order for people to think about what language they currently use for work, and if they are not satisfied, they may look for something else suitable for themselves. I do not know anything about the lives of other people, but my life is too short to spend on work with what I do not like.

Thank you, Mattias.


Ps .

It seems to me that the authors did not write most of these articles in order to scare away people who are interested in Scala. Rather, to make you think that this is not just "Java with a different syntax." These are completely different paradigms and approaches. And maybe even a niche application.

% HabraUser% , and what do you think about this?

[UPD]:
Corrected the translation with the comments of the @Vedomir habraiser , for which he thanks.

Source: https://habr.com/ru/post/253855/


All Articles