That's not a secret that Scala is very popular programming language in BigData industry. And you may heard before that Scala is a data-centric programming language. This means not more, that with its help you can work with a data more easier comparing with other languages. Important roles in this play two Scala features: case classes and case objects.


For a long time I couldn't understand currying functions in Scala and how they work. That was really horrible! Because occasionally I met the currying functions in the code and wasted too much time to read them. So finally I decided to learn how it works and where could be applied.


Scala combines two programming paradigms: object oriented and functional. As a result you get best from the two worlds. From the one side you can describe models as objects, from the other side you can apply functions to them. And as you may guess, it's really awesome! Let's discover today basics of Scala functions.


When you start learning a new programming language you likely begin with an environment setup, of course if you don't learn JavaScript, because in this case a browser would be enough. I bet, that the next step after the environment setup are variables. Definitely you need to start from variables, because it's the most essential topic in process of learning new programming language!


How a newcomer can understand Akka's principles of work? Couple of examples from the documentation could be not enough. From the other side, a simple application which shows Akka in action is a very good way for demonstration of Actors capabilities. So let's start the acquaintance with the simple Akka use case!


Probably the most popular process which happens behind the scenes in Akka is a messaging. And it's not, what comes to mind instantly, no any text messages like in Skype or mobile phones. Akka Actors can deal with different objects and classes which represent messages (Strings also allowed). As usually I'll use Scala as a programming language.