pytanie o Scale

pytanie o Scale
BO
  • Rejestracja:ponad 14 lat
  • Ostatnio:około 13 lat
  • Postów:15
0

Witam Drogich Użytkowników.
Mam nadzieje że wy pomożenie mi znaleźć odpowiedź na nurtujące mnie pytanie. Scala staje się coraz to bardziej popularnym językiem. Lecz pomimo poszukiwań w internecie nie mogę znaleźć odpowiedzi na pytanie. Czy Scala jest swego rodzaju frameworkiem na czystą jave czy jest czymś odrębnym. Do czego jest ona kompilowana ?? No i sprawa która najbardziej mnie interesuje... Czy skoro scala używa maszyny javy to możliwe jest używania każdej z dostępnych klas, przez co można w scali pisać aplikacje używające np. Swinga czy JavyFX ??
Z góry Dziękuję za odpowiedzi:)

lukasz1235
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 8 lat
  • Postów:1105
0

Scala to język programowania kompilowany do kodu pośredniego Javy.

Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około 2 godziny
0

Ale odpowiedzi na wszystkie te pytania są na stronie Scali. Odpowiem mimo to:

  • Scala jest językiem programowania z własną biblioteką standardową, po części opartą na bibliotece standardowej Javy SE,
  • kod Scalowy jest kompilowany do bajtkodu, biblioteka standardowa Scali też jest napisana w Scali, a więc też skompilowana do bajtkodu i dołączana jako JAR do projektu,
  • typowy JVM nie odpala surowych plików .java tylko wstępnie skompilowane pliki .class z bajtkodem. JVMa nie obchodzi z czego powstał ten bajtkod, możesz go nawet złożyć ręcznie w edytorze plików binarnych,
  • Scala bardzo dobrze integruje się z językiem Java, z poziomu Scali masz dostęp do wszystkich klas Javowych, ale niestety z poziomu Javy nie ma dostępu do wszystkich klas czy traitów Scalowych. Dla przykładu traity w Scali to są takie niby interfejsy z opcjonalną implementacją (przy czym traity mogą dokładać stan do klasy, a więc to jest praktycznie klasa abstrakcyjna), czego nie ma w języku Java, no chyba, że nie ma implementacji metod i dodatkowego stanu, wtedy trait jest kompilowany do Javowego interfejsu i jest z poziomu języka Java dostępny. Sprawa nie jest trywialna, ale jak pokodujesz to zobaczysz co i jak,
  • Swing, JavaFX 2.0 jak i jakiekolwiek inne rozwiązania oparte na Javowych klasach są bezpośrednio dostępne z poziomu Scali, co więcej, Scala nie dostarcza własnego windowing toolkita i polega na Javowym Swingu, jest nawet dostępny prosty wrapper, czyli pakiet scala.swing,
  • kod Scalowy i Javowy możesz bez problemu mieszać w jednym projekcie, co więcej, możesz mieszać i inne języki, np Clojure czy Groovy, mieć projekt z kodem napisanym w kilku językach jednocześnie,

"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.