From my research, I find that most programmers nowadays use Java, Scala, and the C language. My question is how is Scala used/what is it used for?
I'm an Information Technology major who is working towards becoming a future web/mobile developer, and want to explore lesser known, but still useful programming languages, like Scala and Perl (not stated in my question, but I'm still eager to know). #software #mobile-applications #web-applications #cloud-computing #application-developer #cloud-applications
Here at Chegg, we use a variety of languages depending on the application domain that we're working with. On the front-end, it's PHP. In the back-end, it tends to be Java. For Mobile Apps, Swift and Java. For testing, Python and Java. Lately, we've started looking at other languages like Scala and Go for the efficiencies and special purposes that they fulfill. You don't have to be an expert in all of these languages, it's more important to pick one or two that you really enjoy and become proficient (or at least comfortable) with them. To answer your question about Scala, it is based on the Functional Programming paradigm. This comes from a strong basis in Mathematics, where most operations are defined by functions. Originally, programming languages were imperative-based (used commands that operated on data), in recent decades evolved to object-oriented approaches, and most recently have become complemented with functional. For an overview of functional programming, check out the Wikipedia article on it. Scala has gained industrial traction at companies such as Twitter and LinkedIn, many others are content with Java or the others I mentioned. Hope this helps :-)
I am not sure your goal but focusing on lesser known languages might limit your future employment opportunities because lots of those languages have little adoption and were purpose built.
Each language has something its good based on the understanding of the communities that drive the languages. So, I would recommend figuring out where your passion lies and find a language that can support that.
In summary, the language of choice should support the team/project goals with tools and/or frameworks that can accelerate the project.
For example, here's from an Amazon Senion Software Development Engineer position:
> Strong architectural & system design skills in Java, C#, Scala, Python or other high-scale programming language
I don't know if you've ever heard the phrase, "when software companies grow up, they become Java shops." I used to think this was because Java was awesome, but it's often because there's a larger pool of Java developers than any other language. If you adopt Scala for your company, you might have a hard time finding good engineers.