📜 ⬆️ ⬇️

What place does the language of Scala in the IT industry



The Scala programming language is a “symbiosis” of Java and C #. This is not the first language to combine OOP with a functional approach, but it began to gain momentum at a time when Java development slowed down. Moreover, the creators of Scala decided that the language should work on the JVM virtual machine and provide access to Java libraries.

Martin Oderski began developing Scala in the early 2000s within the walls of the EPFL Programming Lab. He was previously engaged in the development of Generic Java and Sun's Java compiler.
')
The internal release of Scala appeared in 2003. The first public release was released in early 2004 on the Java platform, and in June of the same year - on the .NET Framework (albeit, since 2012 this platform is not supported). Scala 2.0 saw the light in 2006. Its compilers and libraries are distributed under the BSD license.
The BSD license (Berkeley Software Distribution license - Berkeley University Software License) is a license agreement that was first used to distribute UNIX-like BSD operating systems.
On January 17, 2011, the language development team won a research grant for a period of five years. The European Research Council gave them about € 2.3 million. In May 2011, members of the Scala community, led by Odersky, founded Typesafe Inc. (renamed Lightbend Inc. in February 2016). The established company was to provide financial support for developers, create services for Scala. Typesafe was supposed to earn on Scala-libraries. In 2011, the firm received a $ 3 million investment from Greylock Partners.


Martin Oderski - the creator of Scala

What is "under the hood"


The Scala language combines three things: static typing, an object-oriented and functional approach. As already mentioned, Scala runs on a Java virtual machine. Compatibility (“free mixing”) of this language with Java makes it possible to write Android applications on Scala. In addition, the ability to compile in JavaScript allows you to develop web applications on Scala.

Despite some similarity and even related relationship of this language with Java, for 10 years after the appearance of Scala, its “elder brother” remained loyal to the object-oriented paradigm. And only in 2014, elements of the functional approach, lambda expressions, were included in Java 8.

In addition to Java and C # mentioned above, Scala was influenced by other languages ​​and technologies. The way property is expressed is largely borrowed from Sather. From Smalltalk, the concept of a unified object model migrated. Beta shared the idea of ​​nesting everything in a row, including classes. Abstract types in Scala resemble abstract types of signatures in SML and OCaml, summarized in the context of full-fledged components.

In addition, Scala has adopted the features of such functional languages ​​as Scheme, Standard ML and Haskell.

The target audience


The benefits of Scala have been appreciated by many large companies - Twitter, LinkedIn, Foursquare, Novell, Siemens, GridGain. However, in academic circles this language is still more popular.

The user @platoff in the article rather in detail stated his opinion about the target audience of the language.
I understand perfectly what Scala attracts inexperienced young people (and she basically wants Scala):

• A halo of elitism: really the smartest guys make progress in Scala, like, they don’t write fools on Scala, and if you write on Scala, then you are clever. Oh, guys, programming is not studying at the university, you will not be a more “clever” programmer, the more complicated the problem you solve.

• Difficulty: probably many of the Scala-fans and fans do not realize, and are not able to formulate, what attracts them to the difficulties. Subconsciously, someone thinks complexity == might. Type the harder, the more powerful.

A very difficult task can be solved simply by re-using complex solutions. In our case, the compiler should take on as much complexity as possible, simplifying the solution. The Scala compiler is certainly complex, but there is a problem - a language in which this complexity is expressed. To use such a language is incredibly difficult.

Ngoc Dao, creator of the Xitrum Scala web framework, Ngoc-Dao looks at the situation in terms of the functional approach:
Speaking of the functional approach in principle, whatever Scala, Haskell usually comes to mind. However, arguing from a practical point of view, it is better to learn Erlang. No wonder Facebook spent $ 19 billion on the purchase of WhatsApp, which is written on it.

Erlang will shift your thinking towards a functional approach stronger than Scala. In addition, Erlang is much easier and faster to learn. You can master it in a week and save your time.

So, the opinion on the universality of Scala can be skeptical - neither two nor one and a half: the functional paradigm is not easy to implement, and in terms of "object orientation" it is also too complicated.

However, if you “switch over” to this language with the background of a Java developer, the complexity will be less.

Ratings and Indices


The TIOBE index at the end of October 2016 shows that Java is the most popular programming language. He is confidently leading for 15 years in a row and was in second place only in 2001.



There is a big gap between Java and Scala in this ranking. However, the latter is also inferior to the languages ​​Lua, Fortran, Lisp, Transact-SQL, Ada, and F #, occupying the 33rd place. However, in the ranking of 50 places, and Scala still managed to circumvent the functional logic languages ​​of Haskell and Prologue.



At Scala's other rankings, things are not so bad. According to the IEEE Spectrum data for 2016, it ranks 15th. Java is also in the lead, but this time in an honorable second place. The ranking compilers indicate that the scope of their Scala application is limited only to web and mobile development. PC development is not taken into account. While Java they perceive as a development language for all three platforms.



According to the Github survey at the beginning of 2016, Scala is doing even better: it takes 11th place. Java tops the ranking again. Moreover, here it comes with a large margin from C #.



The researchers also calculated the satisfaction index programming language. It shows if programmers using a particular language would like to write the following project in the same language:



In the first group, we see Swift and Scala, who share the title of "ideal language"; still it is possible to note rather highly appreciated Go. Java here occupies only the fourth line. This is the first indicator on which Scala could bypass its relatives - C # and Java.

Perspectives


Baruch Sadogursky has already expressed his opinion about the future of Scala - Developer advocate at JFrog:
It scares me a little about what is happening with Scala now, because there is a trend of leaving it: for example, the company TypeSafe, which tried to make money on libraries related to Scala. Some time ago, it was announced that TypeSafe was leaving a strong Scala focus on a much greater emphasis in Java, because most of the Java enterprise development, where the money itself is. Therefore, they hired a lot of new people who are pulling up some Java-interfaces that they did not have before.

We also see other libraries that were very Scala-oriented. For example, Spark, where in the new release of Java API are pulled up to the level of Scala, and it seems that further they will develop no worse than the Scala API, if not better. I would say that in the global picture we see some reversal towards Java.

And I am absolutely not surprised by this, because Scala, as an academic language, is an absolutely wonderful creation, but for Enterprise hardcore to drive code into production, it is not suitable, because it is difficult for developers who solve real business problems that need powerful, but, at the same time, not a very complicated tool, which have things in life more important than understanding the Scala type system.

That is why I have never been a big fan of Scala, and the trend of leaving Scala does not surprise me. Of course, Scala will not go anywhere and will continue to develop, but in a much more niche format.

Ashesh Ambasta, Lead backend engineer in CentralApp looks much more optimistic:
I believe that Scala still has good perspectives. No wonder many large companies have chosen it. Despite the fact that the path combining OOP and OP may seem dangerous and confusing "puritans", with careful use, Scala programming can be a pleasure.

I do not agree that Scala is more difficult to master than other programming languages. There is, of course, a certain “barrier” associated with the need to think simultaneously in different paradigms. Although for most forums this language is for some reason discussed in the context of functional programming.

I’ve heard statements like: “Scala is more suitable for large-scale systems, not some Twitter.” But it would be a mistake to believe that it was created only for this. I do not think that implementing MVP (Minimum Viable Product) on Scala is more difficult than in any other language.

I have never been particularly keen on object-oriented programming. Since I met Erlang, I have not returned to him. Then I chose Scala for backend development in a new company and received positive feedback. It gave me confidence that I made the right choice.


Where to go to study?




For those who are thinking about changing their specialization or are just beginning a programmer’s career, I’ll give a few replicas from the Toaster .

HaruAtari :

Many years I write on php, tired. Now I am retraining on the Scala-developer. So far so good, the language is wonderful. Plus compatibility with Java-libraries.

But today I went to hh.ru and out of curiosity I looked at the number of vacancies for Java / Scala-developers. Scala - 47, Java - 705. After that, I thought a little. Can I find a job in this language? Are there any prospects in the study of Scala as the main language now. Are there any prospects for such an investment of power? Or just java?

jkotkot :

Nobody needs a Scala developer without Java knowledge. If you do not understand how different open Java libraries work and work, then you will never be all the right professional in this area.

opium :

For Russia, Scala in the coming years is a dead market, one must look either at foreign freelancing, or at vacancies abroad.

gurinderu :

What are you so upset? Scala-developers are many times smaller than Java, so the spread is as follows. It will definitely demand. For example, Tinkoff Bank uses Scala.

mrRontgen :

The lack of 100,500 vacancies on hh is not a reason for panic. The language is young, but it is rapidly gaining momentum. As far as I know, Huawei is starting to cut integration solutions in Russia on Scala (instead of Oracle products). So it's not so bad.

Oder and the company have very big prospects and ambitions. So, in my opinion, Scala (or its “updates”) will still surprise programmers!

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


All Articles