Czy musisz znać Javę przed wypróbowaniem Scali

15

Jestem zainteresowany nauką Scali. Dużo o tym czytałem, ale wiele osób ceni go, ponieważ ma model aktora, który jest lepszy dla współbieżności, obsługuje xml w znacznie lepszy sposób, rozwiązuje problem funkcji pierwszej klasy.

Moje pytanie brzmi: czy musisz znać Javę, aby zrozumieć / docenić sposób działania Scali? Czy lepiej jest najpierw zrobić dźgnięcie w Javie, a następnie wypróbować Scalę, czy możesz uruchomić Scalę całkowicie bez java?

gizgok
źródło
5
Potrzebujesz rozwidlenia, aby docenić działanie pił? : D
back2dos
lol, głosowałbym za odpowiedzią.
gizgok

Odpowiedzi:

17

Scala jest własnym językiem i sama w sobie nie wymaga znajomości żadnego z istniejących języków. Jeśli chcesz, możesz nauczyć się Scali jako swojego pierwszego języka. Na stronie Learning Scala w ich witrynie znajdują się punkty wejścia do samouczka dla różnych poziomów doświadczenia, od początkujących programistów, badaczy języków programowania po ekspertów programowania funkcjonalnego.

Większość dokumentacji dotyczy niestety ludzi, którzy wiedzą, jak programować, ale faktycznie przeszedłem przez niektóre samouczki Scali. Nie jest tak źle. Oczekuje się jednak, że rozumiesz niektóre podstawowe pojęcia.

Thomas Owens
źródło
4
Thomas ma całkowitą rację. Chciałbym tylko dodać, że częścią atrakcyjności Scali jest to, że można ponownie wykorzystać całą dużą, standardową bibliotekę Java. Może to być, ale nie musi, ważne w twoim przypadku, ale jeśli tak, to wcześniejsze doświadczenia z Javą będą oczywiście bardzo pomocne, ponieważ nie możesz nie wiedzieć wiele o standardowej bibliotece.
Kilian Foth
@Kilian Myślałem o tym. Wciąż uczę się Scali i jeszcze nie zrobiłem z nią nic znaczącego, ale nie jestem pewien, jak ważna jest znajomość Javy, aby móc korzystać z biblioteki Java w Scali. To nie jest tak, że wpadasz w składnię / styl Java, aby wywołać wstępnie skompilowany plik JAR ze Scali.
Thomas Owens
1
W przypadku prawie każdej nowoczesnej platformy nauka standardowej biblioteki zajmuje dużo więcej czasu niż nauka składni języka. Dlatego znajomość bibliotek Java jest korzystna, jeśli próbujesz nauczyć się języka Scala.
Jeremy
16

Java oznacza dwie różne rzeczy:

  1. język Java - obejmuje język wraz ze składnią, regułami, funkcjami i ogólną semantyką
  2. platforma Java - obejmuje środowisko wykonawcze (JVM), całą standardową bibliotekę i wiele popularnych frameworków / bibliotek. Uwaga: istnieją również inne „środowiska wykonawcze” Java, takie jak wykonywanie jako JavaScript po kompilacji krzyżowej za pośrednictwem GWT lub Java na Androidzie, który działa również w innym środowisku wykonawczym

Zarówno język Java, jak i Scala działają na tej samej platformie. AFAIK Scala można sprowadzić do kodu Java dość łatwo, więc jeśli istnieje jakikolwiek realny interes w nauce Java do zrozumienia / dźwigni Scala, to jest, aby zrozumieć, jak to działa i jak można najlepiej wykorzystać kod Java z poziomu aplikacji Scala. Jako język Java raczej nie nauczy Cię niczego, czego C # nie nauczyłby cię do tej pory (zakładam z twojego profilu, że masz trochę doświadczenia w C #).

Analogią .NET tego pytania byłoby:

Czy musisz znać C # / VB.NET przed wypróbowaniem F #?

W obu przypadkach odpowiedź brzmi dość stanowczo „Nie”.

back2dos
źródło