Table of Contents
Apiumhub’s development team loves to go to tech events where we can speak with Tech gurus and share our experience using lates technologies and languages. We are big fans of Scala and we believe that Scala is a good choice to develop powerfull platforms. Therefore we couldn’t miss Scala World conference in the UK. It is a project of recurrent conference about functional programming, scalable architectures, design patterns and a lot of interesting things regarding Scala.
Software developers know that choosing the best programming language to use for the project or for the career is critically important but often challenging. We do believe that Scala deserves to be one of the top langauges to be on the to-learn list and to-use list.
Let’s talk about Scala’s growing popularity
Scala is a programming language providing support for functional programming and a strong static type system. Like Java, Scala is object-oriented, and uses a curly-brace syntax reminiscent of the C programming language. Scala seemed like the next big thing in programming languages because it elegantly enabled functional programming within an object-oriented paradigm, it can serve as a bridge for object-oriented programmers entering the world of functional programming.
Actually, Scala is syntactically similar to Java, and, like Java, performs type-checking at compilation time rather than at runtime, thus eliminating the possibility of runtime errors caused by type incompatibility. These similarities reduce the initial learning curve for Java programmers. Scala has built-in support for pattern matching, where arbitrary data types can be matched based on value patterns, in order to perform distinct operations on each matched pattern. Also, Scala includes Akka as a standard library, enabling support for rich concurrency models. This makes it easy for programmers to implement complex creation or processing of streaming data as a graph of actors, where each actor processes data in parallel.
Many people believe that actually Scala was developed for the sake of making Java more efficient and productive. As far as the importance of Scala in the domain of programming languages is concerned, this is also assumed as scalable language. The coding of Scala is easy to adapt and at the same time it can be easily managed as well, therefore, the use of Scala has been increased at a rapid pace in recent years.
Once again, the advantages of this programming language are amazing as compared to the benefits of other programming languages, this language has perfectly utilized the notions and assumptions of object-oriented as well as functional languages in a great way. This is an aspect to consider that this language can also be used as a specific workhorse language for the purpose of managing various mission critical server systems.
Scala is regarded as one of the most influential languages because every value or function in this language is considered as an object. In this phenomenon, every operation is also assumed as a method call and this language also endorses the use of advanced and highly improved component architectures that are actually applied with the help of classes and other traits. The Scala language also applies the notion of pattern matchmaking in a sufficient way. At times, implied classes are also utilized so that users are also allowed to add new operations to the existing classes. There are other aspects incorporated with these first class functions such as a library that provide sufficiently immutable data structures and general preference of immutability over mutation. With the help of attractive and highly understandable migration Scala does offer more appealing functional style as compared to the styles of other programming languages.
Many leading brands prefer working with Scala. For example, Scala language is also being used by Twitter in order to estimate the developer productivity in a certain way. At the same time, the use of coding for both stagnant and dynamic language can also be examined with the help of Scala language in a great way.
Scala language in recent years has been used also by other well-known companies like Foursquare, LinkedIn, Novell, Sony Pictures Entertainment, etc.
Scala world conference at the Rheged Center
It is an anual event always held in very inspiring venues. Two days of advanced Scala talks from
the best international speakers, two days of FP training, organised walks and biking in the beautiful countryside, an exquisite conference dinner, lecture and free bar, and the Typelevel Workshop!
We were very excited to be part of this event in a such cool place as Rheged Center, near Penrith, which is an awesome place to stay for the weekend and enjoy beautidul views and nature. The Rheged Center is located in the Lake district, which is very well known because of many conference rooms, museums, and the nature surrounding it – beautiful, green place with a wonderful lake. Just by doing a quick research on google images you can find those kind of pictures:
The auditorium where the conference was held was quite large and had a capacity of 260-seat, hosting almost all the talks. Other than that, there was a smaller venue; the Pennine Gallery, where eight workshop sessions were held.
The talks were interesting but we saw some areas of improvement, for example Types is a very useful tool when it comes to developing, but I believe that having that many talks regarding progressive interfaces and dependents types was not really necessary, I actually think that two or three would have been sufficient.
There also was a talk about a Scalaz module that is already deprecated due to a very poor performance. Obviously I was not the only one to think that it wasn’t really useful.
The talks about monads focused on the free monad (called Interpreter by the GoF), quite an interesting pattern actually! Unfortunately, it seems too abstract for daily coding. Usually at Apiumhub we follow the motto “Abstraction over Generalization”, making this pattern a premature generalization for us.
Keeping the best for the end, it was not all Functional Programming! There were talks about Akka performance, the new Akka Streams module (an extremely fascinating project) and how to profile different kinds of applications.
Finally, the talks that I personally found the most useful were focused on real problems we also find on applications in production:
- “Akka Streams” which is the newest addition to the Akka toolkit
- “Constraints Liberate, Liberties Constrain”
In conclusion, the Scala world conference was great, venue was great but for the next one I would recommend a few alterations concerning some of the talks/workshops!
We will definitely keep attending such events to see the evolution and maybe share even our insights about Scala usage and Scala importance in the programming world!