📜 ⬆️ ⬇️

Yes, Virginia, Scala is complicated!

To begin with, let me clarify that I have been a big fan and supporter of Scala for 5 years now. I have written books and articles about Scala. I also worked with many companies that started using Scala and Lift and conducted a code review of a huge number of Scala projects. I used to think that Scala is simple. It has been and continues to be a cure for many Java problems. From the point of view of “complex or even impracticable things in Java are quite simple in Scala”, Scala is a fairly simple language. Working with collections is very simple. Isolation of business logic makes programs much more supported and incredibly simple than if they were written in Java.
So why is Scala complicated? Here are the best I could come up with:


There are several types of commands for which Scala is definitely a better option than Java, Ruby or some other language. Twitter is a great proof of that. They need a clear, type-safe, high-performing language and environment. And Scala gave them all this. Foursquare uses the complexity of Scala for its filtering mechanism. You must be good enough to be able to master Scala and be successful in Foursquare.
But if you have a team with skills close to the middle, the choice of Scala may not be optimal (it depends on the management ... does Scala challenging features are required to filter and improve the team?) Being a mediocre company, in terms of training, Scala will cost you a rejection of existing developers, the lack of patterns. You will need a strong technical director or architect to create patterns, rather than isolating them from books or an IDE. And the number of such medium-sized companies with fairly strong technical directors or architects, to put it mildly, is small.
So, how can you find out if Scala will be easy to adapt to your organization:

Of course, you may have your thoughts on this account. But I definitely agree with the statement that Scala for the middle team is difficult. And not only is it difficult, but it may still not bring any advantages in the near or future future. Those that could bring teams consisting of participants with 95% skill.
And a few more thoughts:

')

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


All Articles