Motywacja, czyli po co ten blog?
Ostatnio w świecie dużo się mówi o języku Scala, że jest taki fajny i w ogóle, więc postanowiłem się z nim zapoznać. Wiadomo, że nie można krytykować rzeczy, których się nie zna, jeśli nie chce się wyjść na głupka. A jeśli okaże się, że "miliony fanek nie mogą się mylić" to będę o jedno dobre doświadczenie do przodu (czego życzę również moim czytelnikom).Nie znalazłem na chwilę obecną polskojęzycznych pozycji książkowych na temat tego języka, a skoro ja w miarę znam angielski to dlaczego nie pomóc kolegom (i koleżankom oczywiście), którzy trochę gorzej radzą sobie w tej materii?
Co to jest ta Scala i kto tego używa?
Według definicji na oficjalnej stronie języka:"Scala jest językiem ogólnego zastosowania, zaprojektowanym tak by wyrazić powszechne wzorce programistyczne w zwięzły, elegancki i bezpieczny dla typów sposób. Gładko łączy zalety języków obiektowych i funkcyjnych, pozwalając zarówno programistom Java jak i pozostałym być bardziej produktywnym. Rozmiary kodu są zwykle dwu- trzykrotnie zredukowane w porównaniu do aplikacji napisanych w Javie."Spektakularnym użytkownikiem Scali jest serwis Twitter, którego programiści przerzucili się z Ruby'ego, aby uzyskać większą skalowalność kodu i niezawodność kodu.
Scala przezroczyście integruje się z Javą. Kod, który został już napisany w Javie może być ponownie użyty bez konieczności przepisywania go na nowy język. Programy napisane w Scali są uruchamiane na wirtualnej maszynie Javy, a skompilowany byte-kod jest całkowicie kompatybilny z kodem Javy. Funkcje javowe z powodzeniem można wywoływać bezpośrednio z kodu Scali.
Główne cechy języka Scala
- Scala jest zorientowana obiektowo
Wszystkie wartości w tym języku są obiektami, np. dopuszczalne jest takie wywołanie:
Typy oraz zachowanie obiektów opisują klasy (ang. class) i cechy (ang. trait). Klasy mogą być rozszerzane za pośrednictwem pod-klas (ang. subclass) i kompozycji typu mixin (jeszcze nie wiem co to jest).1.toString()
- Scala jest językiem funkcjonalnym
Każda funkcja jest wartością (można ją przypisać zmiennej tak jak C/C++). Można tworzyć funkcje anonimowe, zagnieżdżać je i tworzyć funkcje wyższego rzędu (ang. higher-order functions). - Scala jest bezpieczna typowo
System typów w Scali zmusza programistę do używania abstrakcji w bezpieczny i spójny sposób. - Scala jest rozszerzalna
Dzięki temu, że każda funkcja może być również operatorem oraz dzięki domknięciom (ang. closure), możliwe jest tworzenie bibliotek definiujących nowy, wyspecjalizowany do danego zadania język (ang. Domain Specific Language - DSL).
Źródła wiedzy na temat Scali
scala-lang.org Główna strona języka. Zawiera wiele informacji, samouczków i dokumentacji oraz najświeższe kompilatory języka do pobrania.
typesafe.com Firma propagująca język Scala w celach komercyjnych, jednak na zasadach otwartego oprogramowania (ang. open source). Dystrybuują swój stos składający się m. in. z kompilatora Scali, pakietu Akka (o tym później... duuużo później :)) i frameworku do tworzenia aplikacji internetowych "Play!" (dzięki któremu zainteresowałem się Scalą). Z tej strony można pobrać darmową książkę w postaci pliku PDF "Scala for the Impatient", z której również będę korzystał w trakcie uczenia się tego języka.
Brak komentarzy:
Prześlij komentarz