Dlaczego warto uczyć się Scali w 2021 roku
W internecie można często natknąć się na następujące pytania: czy warto jest uczyć się Scali? Czy Scala ma znaczenie w 2021? Czy istnieje coś lepszego, niż Scala? Java, czy Scala? Niech ktoś porówna obie technologie. I jeszcze więcej.
Na Reddicie i innych portalach można znaleźć odpowiedzi starające się zaadresować wspomniane problemy. W tym artykule postaram się wytłumaczyć, dlaczego, z mojego punktu widzenia, warto nauczyć się Scali.
1. Łagodne przejście do programowania funkcyjnego
Scala wspiera dwa paradygmaty programowania: programowanie obiektowe oraz funkcyjne. Jeśli znasz Javę, Kotlina, czy jakikolwiek innych język obiektowy, zapewne będziesz początkowo pisać bardziej obiektowy kod, przypominający Javę, a nie idiomatyczną Scalę. Z czasem, będziesz odkrywać coraz więcej możliwości Scali, oraz benefitów, jakie płyną z programowania funkcyjnego.
Scala jest również o wiele łatwiejsza od Haskella, czy Lispu. W Scali nie trzeba od razu wiedzieć wszystkiego, zanim zacznie się pisać kod. Potem korzystanie z takich rzeczy jak monady, case classes, czy pattern matching, będzie czymś oczywistym.
2. Kompatybilność z Javą
Ekosystem Scali cały czas rośnie. To świetnie, że mamy tyle fajnych bibliotek i frameworków. W Scali mamy również dobre narzędzia, dzięki którym możliwa jest praca w takich obszarach jak Data Science, czy Blockchain.
Jeśli masz jakąś swoją ulubioną bibliotekę Javy, to możesz jej bardzo łatwo użyć w środowisku Scali - język ten działa na JVM.
3. Otwarta i rosnąca społeczność
Nie ma znaczenia, czy jesteś samoukiem, chcesz wziąć udział w Bootcampie, czy szukasz rady - społeczność Scali zawsze chętnie Ci pomoże.
Warto zauważyć, że coraz więcej firm (np. Twitter i New York Times) decyduje się na używanie Scali na produkcji.
4. Zwięzła składnia
Scala ma całkiem zwięzłą składnię. Oto przykład w Javie:
import java.util.Objects;
public class Product {
private String name;
private double price;
public Product(final String name, final double price) {
this.name = name;
this.price = price;
}
@Override
public int hashCode() {
int hash = 7;
hash = 23 * hash + Objects.hashCode(this.name) Objects.hashCode(this.price);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Product other = (Product) obj;
if (!Objects.equals(this.name, other.name)) {
return false;
}
if (Double.doubleToLongBits(this.price) != Double.doubleToLongBits(other.price)) {
return false;
}
return true;
}
@Override
public String toString() {
return "Product{" + "name=" + name + ", price=" + price + '}';
}
}
Ta sama rzecz w Scali:
case class Product(name: String, price: double)
Tak, wystarczy napisać tylko tyle.
5. Rynek
Programowanie to nasze powołanie i pasja, którą kochamy tak bardzo, że nie musimy za naszą pracę otrzymywać wynagrodzenia, prawda? To, czego uczymy się podczas poznawania Scali (nauka kolejnego języka, nowych frameworków i bibliotek, programowania funkcyjnego), sprawia, że jesteśmy bardziej atrakcyjni na rynku pracy.
Właściwie to będziesz bardziej atrakcyjny/atrakcyjna od ludzi, którzy znają tylko 1, czy 2 języki, ale obiektowe. W 2019 programiści Scali byli najlepiej opłacanymi specjalistami od kodowania w USA. Co więcej, zapotrzebowanie na nich cały czas rośnie.
Źródło: HackerRank 2020 Developer Skills Report
6. Produktywność
Jestem pewny, że programując w Scali, Twoja produktywność wzrośnie. Po pierwsze, jesteś w stanie zacząć od razu, posiadając jedynie podstawową wiedzę.
Po drugie, pisząc mniej, dostarczasz znacznie więcej kodu! Możliwość startu z takimi narzędziami, jak IntelliJ (wystarczy dodać bezpłatną wtyczkę Scala) sprawi, że Twoja praca będzie przyjemniejsza.
Podsumowanie
Takich artykułów, jak mój jest o wiele więcej. Dlaczego? Ponieważ ludzie kochają kodować w Scali i chcą zarażać swoją pasją innych! Spróbuj sam/a.