pytanie o Scale

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:)

0

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

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,

1 użytkowników online, w tym zalogowanych: 0, gości: 1