10 Reasons To Larn Scala Programming Language
Friday, June 1, 2018
Add Comment
One of the questions my reader oft enquire me is, shall I larn Scala? Does Scala has improve futurity than Java, or why Java developer should larn Scala in addition to hence on. Well, in that place tin move many reasons for learning Scala e.g. yous are forced to larn because it been used inwards the novel society yous joined or your solution architect decided to utilization it, but that's a dissimilar story. Here, we'll verbalize close reasons which encourage Java developers to larn Scala. Scala has emerged equally ane the most powerful Java alternative inwards recent times. It's been the JVM linguistic communication of choice, leaving Groovy in addition to Clojure way behind, in addition to preferred equally the linguistic communication people desire to write most code in.
Scala has several strong points, strongest beingness the multi-paradigm language. With the superiority of functional programming idioms to accept payoff of multi-core CPU architecture, Scala has the correct mix of pop object-oriented paradigm.
It non exclusively solves many of Java issues e.g. less to no boilerplate but also provides several best practices in addition to patterns, correct from the language. Despite providing fluency in addition to flexibility of dynamic linguistic communication similar Python, it's yet a strongly statically typed linguistic communication to foreclose yous from doing bad things, which but tumble out at runtime inwards instance of dynamic language.
I am sure Scala developers volition add together many to a greater extent than reasons into this list, but beingness from Java background in addition to ardent supporter of Java, I think Scala definitely got something to offering in addition to next reasons brand a lot of instance for Java developers to larn Scala.
1) Multi-Paradigm language
Scala is a chip dissimilar than Java, equally it supports ii programming paradigm: object-oriented programming (OOP) in addition to functional programming (FP). For advancing inwards programming science it's proficient to larn at to the lowest degree ane linguistic communication from dissimilar prototype e.g. imperative, logical, functional in addition to OOP, in addition to Scala gives yous a jeopardy to explore both functional in addition to oop together.
The Pragmatic Programmer mass also advised yous to larn a novel programming linguistic communication every year. Scala allows yous to define types associated alongside both information attributes (with classes behaving similar C++/Java classes) in addition to conduct attributes (with traits corresponding to Java interfaces).
Just similar inwards other functional programming languages, Scala functions are fantabulous (which agency yous tin move past times them unopen to equally values) in addition to Scala also supports anonymous functions in addition to currying (partial application of multi-argument functions).
This combination of features makes it possible to write Scala programs that are quite concise in addition to elegant. Being multi-paradigm is ane of the strongest selling points of Scala, which Java 8 has also attempted past times introducing lambda expressions (see Java SE 8 New Features) but it yet a span of steps behind. I think, Scala volition ever move to a greater extent than functional than Java but that's theme of some other debate.
2) Interoperability alongside Java
In my opinion, Scala's selection of beingness inter-operable alongside Java is the best affair tumble out to Scala. Scala runs on the Java Virtual Machine (JVM) in addition to tin interoperate nicely alongside Java code. This agency Scala developer tin utilization Java libraries straight from Scala code.
Given, many Java developers are turning into Scala, this is the perfect way of leveraging their years of experience inwards real-world programming. It is also possible to telephone phone Scala code from Java in addition to yous tin easily write portion of your programme inwards Scala in addition to the remainder inwards Java.
In short, Interoperability alongside Java gives Scala a huge potential to move past times mainstream, corporation programming language, equally hence much of the world's code is written inwards Java in addition to hence many developers are working inwards Java unopen to the world.
3) Best Practices in addition to Patterns built-in language
One affair yous mightiness non know close Scala that it was originally developed at the Swiss academy EPFL inwards an seek to apply recent innovations inwards programming languages enquiry to a linguistic communication that tin gain mainstream traction, much similar Java.
Several of best practices in addition to patterns are built into linguistic communication itself e.g. val declares top-level immutability, which is much improve than the overloaded in conclusion inwards Java, or const/read-only inwards C# alongside the weird rules associated alongside it.
Scala also offers closures, a characteristic that dynamic languages similar Python in addition to Ruby receive got adopted from the functional programming paradigm.
4) Expressiveness of language
When yous compare Scala alongside Java equally I did inwards my previous ship close the difference betwixt Scala in addition to Java, Scala for sure scores large over Java. Scala is inherently real expressive. There’s also tons in addition to tons of actually beautiful in addition to useful code written inwards Scala. This is attracting to a greater extent than in addition to to a greater extent than Java developers to larn Scala, who similar such beautiful code.
To laissez passer on yous an idea, hither is the give-and-take count programme written inwards both Java in addition to Scala, yous tin run across the divergence inwards the expressiveness of linguistic communication past times yourself. Scala has achieved inwards but ane business what Java has taken to a greater extent than than 10 lines to achieve.
Btw, things tin move improved on Java side past times using Java 8 features, which is non used inwards this instance but still, Scala scores large over Java when it comes to concise in addition to create clean code.
5) Marketable
Which programmer doesn't desire to move marketable? One argue for learning a novel technology scientific discipline or framework is ever a improve chore in addition to career growth. Learning Scala volition for sure brand yous to a greater extent than marketable. Many companies are using or migrating to Scala these days, including Twitter, LinkedIn, Foursquare, in addition to Quora.
Given Scala's marketing equally Scalable language, days are non far when the large Investment banks in addition to Financial organizations volition start looking Scala for their depression latency solutions. Similar to the advice given in Effective Java, Twitter has already shared best practices to educate programs inwards Scala equally Effective Scala.
The founders of Quora spent a span of months edifice a Scala spider web framework inwards club to utilization Scala. Martin Odersky, the homo behind Scala, is directly behind the start-up Typesafe for supporting commercial Scala development. All things are going inwards correct direction for Scala to grow equally the foremost alternative to Java.
6) Statically typed language
In general, statically typed linguistic communication similar Java prevents programmers from doing bad things, spell alongside a dynamic linguistic communication similar Python, yous exclusively know close a bad affair when yous run the program.
Scala is best of both worlds. It feels similar dynamic, but its strongly statically typed languages e.g. Haskell or Java. Scala compiler is actually smart in addition to uses type-inference upward to amount extent.
Scala provides type inference for variables in addition to functions, much improve than limited type inference inwards Java in addition to C#. See Beginning Scala Programming to larn to a greater extent than close Scala linguistic communication features.
8) Growing Framework e.g. Akka, Play, in addition to Spark
One affair which yous mightiness know that Scala is growing in addition to it's growing real well. Lots of proficient libraries, frameworks are coming around. Companies, who has started using Scala are also contributing to the recent increase of Scala equally a mainstream language.
There are some prissy Scala spider web frameworks out there, including Lift in addition to Play. Akka, some other Scala based concurrent framework has already established itself equally toolkit in addition to runtime for edifice highly concurrent, distributed, in addition to error tolerant event-driven applications on the JVM.
Scala is also been used inwards Big information infinite along alongside Apache Spark which has farther fuelled its adoption past times many Java developers interested inwards Big Data Space.
7) Growing Community
Along alongside language, Scala community is also growing in addition to growing real fast. Lots of programmers, including Java developers, are joining Scala bandwagon. More in addition to to a greater extent than framework, libraries are getting built on Scala.
More in addition to to a greater extent than IDEs are started to back upward Scala syntax, much improve back upward inwards Eclipse in addition to IntelliJ. Great create tool back upward inwards SBT, Maven, in addition to Ant. Well, Part of this is because of Scala's capability equally beingness a language, which tin equally terse equally many dynamic languages similar python, at the same fourth dimension tin offering features similar static typing, type-inference, a mix of functional programming in addition to object-oriented programming.
In Recent surveys, Scala is also touted equally number ane alternative of Java. In my opinion, to grow Scala has the existent alternative of Java, given Java 8 also has functional programming support, it has to attract to a greater extent than in addition to to a greater extent than Java developers. Getting large organisation similar Twitter to adopt Scala, for sure helps the community, equally they receive got to a greater extent than resources in addition to influence.
9) Concise Syntax
Java has long been criticised for his verbose in addition to boilerplate syntax. Though it makes Java to a greater extent than readable, much similar English, Scala has laid a novel benchmark inwards beingness concise in addition to readable at the same time. Scala compiler, known equally scalac (remember javac) does to a greater extent than than yous expect, it tin generate toString(), equals(), hasCode() in addition to other things for you. Consider ii code snippets of same cast written inwards Java in addition to Scala in addition to brand your selection :
public cast Book {
soul in conclusion String name;
soul in conclusion double price;
world Star(String name, double price) {
this.name = name;
this.price = price;
}
@Override
world int hashCode() {
int hash = 7;
hash = 23 * hash + Objects.hashCode(this.name);
render hash;
}
@Override
world boolean equals(Object obj) {
if (obj == null) {
render false;
}
if (getClass() != obj.getClass()) {
render false;
}
in conclusion Test other = (Test) obj;
if (!Objects.equals(this.name, other.name)) {
render false;
}
if (Double.doubleToLongBits(this.price) != Double.doubleToLongBits(other.price)) {
render false;
}
render true;
}
@Override
world String toString() {
render "Test{" + "name=" + advert + ", price=" + cost + '}';
}
}
You tin write the same thing, using Scala's instance cast equally below :
case cast Book(name: String, price: double)
Btw, yous tin also utilization Lombok library, ane of the essential libraries for Java developers, to withdraw the boilerplate code related to getter, setter, equals, hashCode, in addition to toString. It tin automatically generate those for you.
10) Relative Easy to learn
For a Java developer learning a classical functional programming linguistic communication similar Haskell, or OCaml is rather hard than Scala, In other words, Scala is relatively slow to larn because of its oop functionality.
While taking their fourth dimension to larn Functional Programming, Java developer tin yet move productive inwards Scala past times leveraging their existing cognition of OOP. Like Java, Scala has create clean syntax, prissy libraries, proficient online documentation, in addition to lots of people inwards the manufacture using it.
With growing community of Scala at forums, StackOverflow, it's non hard to notice an answer to whatever Scala questions, which adds to your learning experience.
That's all close Why Java programmer should larn Scala or some practical Reasons for learning Scala programming language. I am sure yous volition notice many to a greater extent than reasons, ane time yous start exploring it. Once yous start learning Scala, I am sure yous volition LOVE IT. It non exclusively got the cleaner OO code but also Functional capabilities, it feels dynamic (Like Python) but also has a static type scheme that tin foreclose yous from doing bad things. If yous create upward one's heed to larn Scala inwards 2018, hither are some of the useful resources for farther learning
Further Learning
Beginning Scala Programming
Scala in addition to Functional Programming for Beginners
Apache Spark alongside Scala
Spark in addition to Hadoop Developer Certification - Scala
5 Books to Learn Scala in addition to Functional Programming
Thanks for reading this article hence far. If yous similar Scala in addition to notice my reasons helpful hence delight part alongside your friends in addition to colleagues. If yous receive got whatever to a greater extent than argue to add together into this list, experience gratuitous to drib a note.
Sumber https://javarevisited.blogspot.com/
Scala has several strong points, strongest beingness the multi-paradigm language. With the superiority of functional programming idioms to accept payoff of multi-core CPU architecture, Scala has the correct mix of pop object-oriented paradigm.
It non exclusively solves many of Java issues e.g. less to no boilerplate but also provides several best practices in addition to patterns, correct from the language. Despite providing fluency in addition to flexibility of dynamic linguistic communication similar Python, it's yet a strongly statically typed linguistic communication to foreclose yous from doing bad things, which but tumble out at runtime inwards instance of dynamic language.
I am sure Scala developers volition add together many to a greater extent than reasons into this list, but beingness from Java background in addition to ardent supporter of Java, I think Scala definitely got something to offering in addition to next reasons brand a lot of instance for Java developers to larn Scala.
10 Reasons to larn Scala Programming Language
Here are some of the reasons I think Java programmers or per state whatever programmer should larn Scala:1) Multi-Paradigm language
Scala is a chip dissimilar than Java, equally it supports ii programming paradigm: object-oriented programming (OOP) in addition to functional programming (FP). For advancing inwards programming science it's proficient to larn at to the lowest degree ane linguistic communication from dissimilar prototype e.g. imperative, logical, functional in addition to OOP, in addition to Scala gives yous a jeopardy to explore both functional in addition to oop together.
The Pragmatic Programmer mass also advised yous to larn a novel programming linguistic communication every year. Scala allows yous to define types associated alongside both information attributes (with classes behaving similar C++/Java classes) in addition to conduct attributes (with traits corresponding to Java interfaces).
Just similar inwards other functional programming languages, Scala functions are fantabulous (which agency yous tin move past times them unopen to equally values) in addition to Scala also supports anonymous functions in addition to currying (partial application of multi-argument functions).
This combination of features makes it possible to write Scala programs that are quite concise in addition to elegant. Being multi-paradigm is ane of the strongest selling points of Scala, which Java 8 has also attempted past times introducing lambda expressions (see Java SE 8 New Features) but it yet a span of steps behind. I think, Scala volition ever move to a greater extent than functional than Java but that's theme of some other debate.
2) Interoperability alongside Java
In my opinion, Scala's selection of beingness inter-operable alongside Java is the best affair tumble out to Scala. Scala runs on the Java Virtual Machine (JVM) in addition to tin interoperate nicely alongside Java code. This agency Scala developer tin utilization Java libraries straight from Scala code.
Given, many Java developers are turning into Scala, this is the perfect way of leveraging their years of experience inwards real-world programming. It is also possible to telephone phone Scala code from Java in addition to yous tin easily write portion of your programme inwards Scala in addition to the remainder inwards Java.
In short, Interoperability alongside Java gives Scala a huge potential to move past times mainstream, corporation programming language, equally hence much of the world's code is written inwards Java in addition to hence many developers are working inwards Java unopen to the world.
3) Best Practices in addition to Patterns built-in language
One affair yous mightiness non know close Scala that it was originally developed at the Swiss academy EPFL inwards an seek to apply recent innovations inwards programming languages enquiry to a linguistic communication that tin gain mainstream traction, much similar Java.
Several of best practices in addition to patterns are built into linguistic communication itself e.g. val declares top-level immutability, which is much improve than the overloaded in conclusion inwards Java, or const/read-only inwards C# alongside the weird rules associated alongside it.
Scala also offers closures, a characteristic that dynamic languages similar Python in addition to Ruby receive got adopted from the functional programming paradigm.
4) Expressiveness of language
When yous compare Scala alongside Java equally I did inwards my previous ship close the difference betwixt Scala in addition to Java, Scala for sure scores large over Java. Scala is inherently real expressive. There’s also tons in addition to tons of actually beautiful in addition to useful code written inwards Scala. This is attracting to a greater extent than in addition to to a greater extent than Java developers to larn Scala, who similar such beautiful code.
To laissez passer on yous an idea, hither is the give-and-take count programme written inwards both Java in addition to Scala, yous tin run across the divergence inwards the expressiveness of linguistic communication past times yourself. Scala has achieved inwards but ane business what Java has taken to a greater extent than than 10 lines to achieve.
Btw, things tin move improved on Java side past times using Java 8 features, which is non used inwards this instance but still, Scala scores large over Java when it comes to concise in addition to create clean code.
5) Marketable
Which programmer doesn't desire to move marketable? One argue for learning a novel technology scientific discipline or framework is ever a improve chore in addition to career growth. Learning Scala volition for sure brand yous to a greater extent than marketable. Many companies are using or migrating to Scala these days, including Twitter, LinkedIn, Foursquare, in addition to Quora.
Given Scala's marketing equally Scalable language, days are non far when the large Investment banks in addition to Financial organizations volition start looking Scala for their depression latency solutions. Similar to the advice given in Effective Java, Twitter has already shared best practices to educate programs inwards Scala equally Effective Scala.
The founders of Quora spent a span of months edifice a Scala spider web framework inwards club to utilization Scala. Martin Odersky, the homo behind Scala, is directly behind the start-up Typesafe for supporting commercial Scala development. All things are going inwards correct direction for Scala to grow equally the foremost alternative to Java.
6) Statically typed language
In general, statically typed linguistic communication similar Java prevents programmers from doing bad things, spell alongside a dynamic linguistic communication similar Python, yous exclusively know close a bad affair when yous run the program.
Scala is best of both worlds. It feels similar dynamic, but its strongly statically typed languages e.g. Haskell or Java. Scala compiler is actually smart in addition to uses type-inference upward to amount extent.
Scala provides type inference for variables in addition to functions, much improve than limited type inference inwards Java in addition to C#. See Beginning Scala Programming to larn to a greater extent than close Scala linguistic communication features.
8) Growing Framework e.g. Akka, Play, in addition to Spark
One affair which yous mightiness know that Scala is growing in addition to it's growing real well. Lots of proficient libraries, frameworks are coming around. Companies, who has started using Scala are also contributing to the recent increase of Scala equally a mainstream language.
There are some prissy Scala spider web frameworks out there, including Lift in addition to Play. Akka, some other Scala based concurrent framework has already established itself equally toolkit in addition to runtime for edifice highly concurrent, distributed, in addition to error tolerant event-driven applications on the JVM.
Scala is also been used inwards Big information infinite along alongside Apache Spark which has farther fuelled its adoption past times many Java developers interested inwards Big Data Space.
7) Growing Community
Along alongside language, Scala community is also growing in addition to growing real fast. Lots of programmers, including Java developers, are joining Scala bandwagon. More in addition to to a greater extent than framework, libraries are getting built on Scala.
More in addition to to a greater extent than IDEs are started to back upward Scala syntax, much improve back upward inwards Eclipse in addition to IntelliJ. Great create tool back upward inwards SBT, Maven, in addition to Ant. Well, Part of this is because of Scala's capability equally beingness a language, which tin equally terse equally many dynamic languages similar python, at the same fourth dimension tin offering features similar static typing, type-inference, a mix of functional programming in addition to object-oriented programming.
In Recent surveys, Scala is also touted equally number ane alternative of Java. In my opinion, to grow Scala has the existent alternative of Java, given Java 8 also has functional programming support, it has to attract to a greater extent than in addition to to a greater extent than Java developers. Getting large organisation similar Twitter to adopt Scala, for sure helps the community, equally they receive got to a greater extent than resources in addition to influence.
9) Concise Syntax
Java has long been criticised for his verbose in addition to boilerplate syntax. Though it makes Java to a greater extent than readable, much similar English, Scala has laid a novel benchmark inwards beingness concise in addition to readable at the same time. Scala compiler, known equally scalac (remember javac) does to a greater extent than than yous expect, it tin generate toString(), equals(), hasCode() in addition to other things for you. Consider ii code snippets of same cast written inwards Java in addition to Scala in addition to brand your selection :
public cast Book {
soul in conclusion String name;
soul in conclusion double price;
world Star(String name, double price) {
this.name = name;
this.price = price;
}
@Override
world int hashCode() {
int hash = 7;
hash = 23 * hash + Objects.hashCode(this.name);
render hash;
}
@Override
world boolean equals(Object obj) {
if (obj == null) {
render false;
}
if (getClass() != obj.getClass()) {
render false;
}
in conclusion Test other = (Test) obj;
if (!Objects.equals(this.name, other.name)) {
render false;
}
if (Double.doubleToLongBits(this.price) != Double.doubleToLongBits(other.price)) {
render false;
}
render true;
}
@Override
world String toString() {
render "Test{" + "name=" + advert + ", price=" + cost + '}';
}
}
You tin write the same thing, using Scala's instance cast equally below :
case cast Book(name: String, price: double)
Btw, yous tin also utilization Lombok library, ane of the essential libraries for Java developers, to withdraw the boilerplate code related to getter, setter, equals, hashCode, in addition to toString. It tin automatically generate those for you.
10) Relative Easy to learn
For a Java developer learning a classical functional programming linguistic communication similar Haskell, or OCaml is rather hard than Scala, In other words, Scala is relatively slow to larn because of its oop functionality.
While taking their fourth dimension to larn Functional Programming, Java developer tin yet move productive inwards Scala past times leveraging their existing cognition of OOP. Like Java, Scala has create clean syntax, prissy libraries, proficient online documentation, in addition to lots of people inwards the manufacture using it.
With growing community of Scala at forums, StackOverflow, it's non hard to notice an answer to whatever Scala questions, which adds to your learning experience.
That's all close Why Java programmer should larn Scala or some practical Reasons for learning Scala programming language. I am sure yous volition notice many to a greater extent than reasons, ane time yous start exploring it. Once yous start learning Scala, I am sure yous volition LOVE IT. It non exclusively got the cleaner OO code but also Functional capabilities, it feels dynamic (Like Python) but also has a static type scheme that tin foreclose yous from doing bad things. If yous create upward one's heed to larn Scala inwards 2018, hither are some of the useful resources for farther learning
Further Learning
Beginning Scala Programming
Scala in addition to Functional Programming for Beginners
Apache Spark alongside Scala
Spark in addition to Hadoop Developer Certification - Scala
5 Books to Learn Scala in addition to Functional Programming
Thanks for reading this article hence far. If yous similar Scala in addition to notice my reasons helpful hence delight part alongside your friends in addition to colleagues. If yous receive got whatever to a greater extent than argue to add together into this list, experience gratuitous to drib a note.
0 Response to "10 Reasons To Larn Scala Programming Language"
Post a Comment