Scala to nowoczesny, wielozadaniowy język programowania, który łączy w sobie elementy języków obiektowych i funkcyjnych. Język ten jest często używany w analizie dużych zbiorów danych, tworzeniu back-endów dla aplikacji webowych czy w środowisku Big Data. W tym artykule pokażemy, jak zainstalować Scala oraz Scala Build Tools (sbt) na systemie Ubuntu 18.04 LTS. Proces ten podzielony jest na kilka etapów, które po kolei omówimy.
Aktualizacja Systemu
Przed przystąpieniem do instalacji dobrze jest zaktualizować system. Otwórz terminal i wykonaj poniższe polecenia:
sudo apt update
sudo apt upgrade
Instalacja Java
Scala wymaga maszyny wirtualnej Javy (JVM) do działania. Jeśli nie masz jeszcze zainstalowanej Javy, możesz ją zainstalować, wykonując poniższe polecenia:
sudo apt install openjdk-8-jdk
Po zakończeniu instalacji, sprawdź wersję Javy, wpisując:
java -version
Instalacja Scala
Po zainstalowaniu Javy możesz przejść do instalacji Scali. Istnieje kilka sposobów na zainstalowanie tego języka, ale w tym artykule skupimy się na użyciu menedżera pakietów apt. Wykonaj następujące polecenia:
sudo apt install scala
Sprawdź instalację, wpisując:
scala -version
Jeśli wszystko poszło zgodnie z planem, powinieneś zobaczyć informacje o zainstalowanej wersji Scali.
Instalacja Scala Build Tools (SBT)
Scala Build Tools (sbt) to narzędzie służące do kompilacji, uruchamiania i zarządzania projektami w Scali. Aby zainstalować sbt, wykonaj poniższe polecenia:
echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
sudo apt update
sudo apt install sbt
Po zakończeniu instalacji, możesz sprawdzić, czy sbt zostało poprawnie zainstalowane, wpisując:
sbt about
Ustawienie Zmiennych Środowiskowych
Aby ułatwić sobie pracę, warto dodać ścieżki do Scali i sbt do zmiennych środowiskowych. Otwórz plik .bashrc
w edytorze tekstu, np.:
nano ~/.bashrc
I dodaj na końcu pliku następujące linie:
export PATH=$PATH:/usr/local/share/scala/bin
export PATH=$PATH:/usr/local/share/sbt/bin
Następnie zastosuj zmiany, wpisując:
source ~/.bashrc
Testowanie Instalacji
Po zakończeniu powyższych kroków warto przetestować instalację. Najprostszym sposobem jest utworzenie prostego projektu w Scali i skompilowanie go za pomocą sbt.
mkdir MyScalaProject
cd MyScalaProject
echo 'object HelloWorld extends App { println("Hello, World!") }' > HelloWorld.scala
sbt run
Jeśli zobaczysz napis „Hello, World!”, oznacza to, że instalacja przebiegła pomyślnie i jesteś gotów do rozpoczęcia pracy ze Scalą i sbt na swoim systemie Ubuntu 18.04 LTS.
Dalsze kroki
Po pomyślnej instalacji warto zapoznać się z oficjalną dokumentacją oraz praktycznymi przykładami, które pomogą Ci w dalszej pracy. Niektóre polecane zasoby to Strona oficjalna Scali, Scala Exercises, czy też kursy na platformach takich jak Coursera czy Udemy.
Warto również rozważyć użycie IDE specjalnie przystosowanego do Scali, takiego jak IntelliJ IDEA z wtyczką Scala, co znacznie ułatwi codzienną pracę.
W kolejnych artykułach przyjrzymy się bardziej zaawansowanym aspektom Scali, takim jak programowanie funkcyjne, biblioteki do analizy danych oraz korzystanie z frameworków webowych takich jak Play czy Akka.
Korzystanie z Scala REPL (Read-Eval-Print Loop)
Scala REPL to interaktywna konsola, która pozwala na szybkie testowanie kodu i eksperymentowanie z językiem w czasie rzeczywistym. Aby uruchomić REPL, wystarczy wpisać w terminalu:
scala
Po uruchomieniu pojawi się konsola, w której można wpisywać różne wyrażenia w Scali. Jest to świetne narzędzie do nauki języka oraz testowania różnych funkcji czy bibliotek.
Korzystanie z Package Managerów
Jeśli chcesz zainstalować dodatkowe biblioteki w Scali, możesz skorzystać z menedżerów pakietów takich jak Maven czy Gradle. Zintegrowane są one również z sbt, co ułatwia zarządzanie zależnościami w projekcie.
Aby dodać nową bibliotekę do projektu w sbt, wystarczy edytować plik build.sbt
i dodać odpowiednią zależność. Następnie sbt automatycznie pobierze i zainstaluje potrzebne pakiety.
Debugowanie i Profilowanie Kodu
Debugowanie kodu w Scali jest podobne jak w innych językach działających na JVM. Możesz użyć narzędzi wbudowanych w IDE, jak IntelliJ IDEA, lub skorzystać z narzędzi linii komend, jak jdb
.
Jeśli chodzi o profilowanie kodu, istnieje kilka narzędzi specjalnie przeznaczonych dla Scali i JVM, takich jak VisualVM czy YourKit, które oferują zaawansowane funkcje do analizy wydajności aplikacji.
Budowanie Aplikacji Webowych w Scali
Scala jest często używana do budowy aplikacji webowych. Jednym z popularnych frameworków do tego celu jest Play Framework. Aby zacząć pracę z Play, najpierw musisz go zainstalować. Instrukcje można znaleźć na oficjalnej stronie projektu. Po zainstalowaniu możesz użyć narzędzia sbt new
do stworzenia nowego projektu i zacząć budować swoją aplikację webową.
Analiza Danych i Machine Learning
Scala znajduje również zastosowanie w analizie danych i uczeniu maszynowym. Biblioteki jak Spark umożliwiają efektywną pracę z dużymi zbiorami danych. Spark można zainstalować jako osobny pakiet lub dodać jako zależność w projekcie sbt.
Integracja z Językami na JVM
Jednym z atutów Scali jest jej łatwa integracja z innymi językami działającymi na JVM, takimi jak Java czy Kotlin. Możesz bez problemu korzystać z bibliotek i narzędzi napisanych w tych językach, co otwiera przed Tobą szerokie możliwości.
Praca z Bazami Danych
W Scali można korzystać z różnych bibliotek do pracy z bazami danych, zarówno relacyjnymi, jak i nierelacyjnymi. Slick, Anorm czy Quill to tylko niektóre z bibliotek, które ułatwiają interakcje z bazami danych.
Mikroserwisy i Architektura Reaktywna
Scala jest również doskonałym wyborem do budowy mikroserwisów i systemów opartych na architekturze reaktywnej. Frameworki jak Akka pozwalają na tworzenie skalowalnych i odpornych na awarie systemów. Akka oferuje m.in. model aktorów, który ułatwia programowanie asynchroniczne i konkurencyjne. Aby zacząć z Akką, można dodać ją jako zależność w projekcie sbt i zacząć korzystać z bogatej dokumentacji oraz licznych przykładów dostępnych online.
Testowanie Kodu
Jakość kodu to kluczowy aspekt w każdym projekcie. W Scali dostępne są różne biblioteki i narzędzia do testowania kodu. Jednymi z najpopularniejszych są ScalaTest i Specs2, które oferują różne podejścia do testowania, od testów jednostkowych po testy integracyjne i behawioralne. Wykorzystując sbt, można łatwo uruchamiać różne zestawy testów i integrować je z innymi narzędziami, takimi jak serwery CI/CD.
Automatyzacja i CI/CD
Automatyzacja procesów deweloperskich jest niezwykle ważna w szybko zmieniającym się środowisku IT. Scala i sbt oferują różne pluginy i narzędzia, które ułatwiają automatyzację zadań, jak kompilacja, testowanie, czy deploy aplikacji. Możesz użyć popularnych serwerów CI/CD jak Jenkins, GitLab CI czy GitHub Actions, które doskonale integrują się z ekosystemem Scali.
Bezpieczeństwo Aplikacji
Bezpieczeństwo jest jednym z najważniejszych aspektów w każdej aplikacji. W ekosystemie Scali dostępne są biblioteki, które pomagają w zabezpieczaniu aplikacji. Na przykład, Silhouette lub SecureSocial to biblioteki, które można wykorzystać do uwierzytelniania i autoryzacji w aplikacjach webowych.
Zarządzanie Zależnościami w Projekcie
W dużych projektach zarządzanie zależnościami może stać się skomplikowane. Sbt oferuje zaawansowane mechanizmy do zarządzania zależnościami, pozwalające na izolację różnych części systemu i łatwe zarządzanie ich wersjami.
Po przejściu przez ten artykuł, masz już pewnie dużo lepsze wyobrażenie o tym, jak zacząć pracę ze Scalą i sbt na systemie Ubuntu 18.04 LTS. Instalacja to jednak dopiero początek. Scala to potężny język z bogatym ekosystemem i mnóstwem możliwości, więc warto spędzić więcej czasu na naukę i praktykę. Od prostych skryptów, przez aplikacje webowe, analizę danych, aż po zaawansowane systemy korporacyjne – Scala oferuje narzędzia i biblioteki, które pomogą Ci w realizacji różnorodnych projektów.