Dlaczego warto się zainteresować tym językiem?
Obiektowo i funkcjonalnie na raz
Scala pojawiła się po raz pierwszy w 2004 roku, nie jest więc ani starym, silnym, ani też specjalnie nowym graczem na rynku języków programowania. Dostarcza unikalną kombinację funkcji, dla których warto rozważyć dodanie jej do swoich umiejętności - jako wartościowego dodatku do zestawu swoich narzędzi programistycznych.
Scala łączy programowanie obiektowe i funkcjonalne w jednym zwięzłym języku wysokiego poziomu. Statyczne typy Scali pomagają uniknąć błędów w złożonych aplikacjach, a jej środowiska wykonawcze (JVM i JavaScript) pozwalają tworzyć wydajne systemy z łatwym dostępem do ogromnych ekosystemów bibliotek.
Łączy w sobie wydajność i łatwość konserwacji na dużą skalę, charakterystyczną dla języków kompilowanych, z narzędziami i ekosystemem języka Java (w tym maszyną wirtualną) oraz zwięzłością i łatwością użycia typową dla języków skryptowych.
Jak każdy język tak i Scala ewoluuje w czasie. Ten język miał w przeszłości swoje przeszkody – kiepskie czasy kompilacji, mylące użytkownika biblioteki i frameworki oraz społeczność bardziej skupioną na nurzaniu się w samozadowoleniu niż na prawdziwej pracy. Ale w ciągu ostatnich pięciu lat ekosystemowi Scala udało się zwalczyć wiele z tych problemów.
Szeroki zakres zastosowań
Scala to język, który właśnie dobrze się skaluje - od jednowierszowych fragmentów do kodu produkcyjnego z milionami linii. Wygoda języka skryptowego oraz wydajność i skalowalność języka skompilowanego sprawia, że szybkie tworzenie prototypów jest przyjemnością, a optymalizujący kompilator i szybkie środowisko wykonawcze JVM zapewniają doskonałą wydajność, aby obsłużyć najcięższe obciążenia produkcyjne. Zamiast być zmuszanym do uczenia się innego języka dla każdego przypadku użycia, Scala umożliwia ponowne wykorzystanie istniejących umiejętności, dzięki czemu możesz skupić się na rzeczywistym zadaniu.
A przecież programista zawsze ma dylemat, co wybrać, bo prawie każdy duży program zaczyna się jako mały program. Często nie jest oczywiste, które małe programy staną się w wyniku rozwoju naprawdę duże, a które nigdy. I tu jest problem - dużo czasu i wysiłku bywa marnowane na opracowywanie małych programów w językach kompilowanych, które nigdy nie rozrosną się na tyle, aby koszt kompilowanego języka był tego wart. Wyjściem nie jest też przecież tworzenie dużych programów w językach skryptowych, nawet jeśli rosną one powoli to i tak w końcu przekroczą rozmiar do jakiego nadaje się stosowanie języka skryptowego.
Węzeł gordyjski rozwiąże Scala
Lekkie języki kompilowane, takie jak Scala, mają na celu wyeliminowanie wskazanego wyżej dylematu: możesz użyć tego samego języka dla swojej pierwszej linii kodu w interaktywnym REPL, jak i dla systemu rozproszonego z milionem linii. W małej skali REPL i skrypty w Scali są tak samo wygodne w użyciu, jak Python czy Ruby, podczas gdy systemy Scala obliczane na zastosowanie w dużej skali są tak samo łatwe w utrzymaniu i wydajne, jak ich odpowiedniki napisane w Javie lub C#. Ba, Scala dobrze odnajduje się w data engineeringu, o czym już pisaliśmy dla Was.
Sprawdź oferty pracy na TeamQuest
Oczywiście Scala nie jest jedynym językiem w tej kategorii: liczy się też F#, a Swift i Kotlin stoją na granicy między hybrydowymi i bardziej tradycyjnymi językami kompilowanymi. Ale Scala w dużym stopniu przełamuje tą dychotomię. Do tego dostarcza funkcjonalny styl programowania a kompilator sprawdzający typy pomagają wykluczyć całe klasy błędów, oszczędzając czas i wysiłek, który możesz zamiast tego poświęcić na opracowywanie funkcji dla użytkowników. Zamiast walczyć z TypeErrors i NullPointerExceptions w środowisku produkcyjnym, Scala wykrywa błędy i problemy na wczesnym etapie kompilacji, dzięki czemu można je rozwiązać, zanim wpłyną one na wynik finansowy Twojego klienta i Twój, rzecz jasna.