Scala - warto?

Jestem młody, mam wakacje, chciałbym poznać coś nowego. Umiem Ruby i JS. Nigdy nie pisałem nic w Javie, będzie to dużą przeszkodą, jeśli chcę poznać Scalę? Warto, czy może jednak dać sobie spokój?

Aha, i musiałbym zainstalować do Scali jakieś śmieszne IDE, czy może sam vim wystarczy?

Edit: geez, zapomniałem, że mamy Hydepark, ale chyba nic się nie stanie, jeśli temat zostanie tutaj, oczywiście jak najbardziej można go przenieść.

Nie ma to większego znaczenia.

Vim wystarczy. Do emacsa jest bardzo fajny plugin: https://github.com/aemoncannon/ensime, ale do vima też pewnie coś znajdziesz, a nawet jak nie znajdziesz, to nie jest to java, gdzie musisz się naklepać 5 razy więcej kodu :wink:

Co do ciekawych języków na JVM, to na pewno warto też przyjrzeć się clojure jeżeli interesuje Cię programowanie funkcyjne.

O, dzięki za przypomnienie o Clojure i chyba właśnie od tego języka zacznę dzięki tej prezentacji.

Zdecydowanie Clojure zamiast Scali :slight_smile:

Tomash, tak z ciekawości, jaka jest Twoim zdaniem przyszłość Clojure? Gdzie może znaleźć zastosowanie ?

Jeszcze nie wiem, ale jako lisp łechce mnie w tych miejscach które lubię :smiley:

Mam pomysł co zrobić w Clojure, ale ćśśśś.

Tomash, tak z ciekawości, jaka jest Twoim zdaniem przyszłość Clojure? Gdzie może znaleźć zastosowanie ?[/quote]
Zapewne taka sama jak Lispa, czyli akademickie rozważania oraz poszerzanie horyzontów programistycznych przez zapalonych programistów.

Oj, Radarek, troll harder, bo nie umiesz.

http://www.itasoftware.com/ – jedyny liczący się dostawca softu do układania rozkładów lotów na lotniskach. Zgadnij w czym napisany?

Możesz jako ćwiczenie domowe zastanowić się dlaczego akurat lisp i poczytać o jego optymalności w implementowaniu metaheurystyk :stuck_out_tongue:

Trollowanie? A gdzieżbym śmiał wchodzić na Twój teren Tomashu.

Nie stwierdziłem przecież, że do niczego ten język się nie nadaje. Faktem jest natomiast, że jest popularny głównie w kręgach akademickich jak i wśród ludzi, którzy lubią się uczyć nowych rzeczy i w ten sposób poszerzać swoje horyzonty (co owocuje także lepszym programowaniem w “zwykłych” językach).

Natomiast przykład jakiegoś tam softu, który jest napisany akurat w Lispie zupełnie o niczym nie świadczy. Taki już ten świat, że znajdą się tacy zapaleńcy co to napiszą dowolny soft X w dowolnej technologii Y.

Napisz algorytm genetyczny w javie (a, niechby i nawet w ruby) i w lispie, a potem porównaj elegancję kodu obu rozwiązań :wink:

To naprawdę nie jest przypadek (czy kwestia religijna) że ITA swój soft napisało w lispie, do tego problemu który postanowili rozwiązać i metodą którą postanowili rozwiązać lisp naprawdę jest wyborem którego żaden znany mi programista nie podważa.

Nie zmienia to faktu że w większości sytuacji lisp nie jest z pragmatycznego punktu widzenia najlepszym wyborem. Podobnie Erlang. Ale to nie znaczy że należy te języki mylić z Haskellem, dla którego faktycznie nie znaleziono jeszcze sensownego zastosowania pozaakademickiego :stuck_out_tongue:

@rav rzuć okiem na
http://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X
Może znajdziesz tam odpowiedź na swoje pytanie :wink:

Nie zachwycałbym się tą książką. Przeczytanie rozdziału o danym języku daje minimalny pogląd na jego temat (jakieś cool ficzery, które odróżniają go od innych języków). Równie dobrze można przeczytać coś na wiki o tym języku i przejrzeć 3 tutoriale.

Przeczytałem prawie całą i jedyną sensowną rzeczą, której się dowiedziałem to to, że muszę teraz przeczytać 7 kolejnych książek :wink:

Nie myślałeś chyba, że w jednej książce, na 300 stronach można opisać w pełni 7 różnych języków:D To nie jest książka do nauki któregokolwiek z nich, tylko coś w rodzaju porównania możliwości, zastosowania itp.

Nie, nie myślałem, że będę programował jak pros w 7 językach :wink: Chodzi mi o to, że nie warto czytać książki, z której nie dowiemy się nic poza tym co jest na stronie języka + tutorialu “how to do (…) in ruby/scala/clojure/…”.

Lepiej już przeczytać 300 stron “Programming in Scala” :slight_smile:

@rav clojure (czy lisp w ogóle) tak jak powiedzieli Tomash i Radarek to specyficzny język do nietypowych zastosowań (chociaż i tak dobrze się go nauczyć, chociażby ze względu na wspomniane poszerzanie horyzontów). Scala chyba jest bardziej praktyczna, szerzej stosowana i trochę łatwiejsza do opanowania dla kogoś kto zna normalne (:D) języki jak właśnie Ruby czy JS (chociaż tu nie jestem pewien, bo lispy generalnie są łatwe do opanowania, vide nauka Scheme w ~15 minut na kursie MIT 6.001)

Czytam to już któryś raz i nawet jestem gotów się zgodzić, ale nie widziałem jeszcze dobrego, popularnego softu napisanego w Scali. To już nawet Haskell miał swojego Darcsa.
To, że Foursquare został przepisany do Lift/Scala, się nie liczy :wink:

[quote=Tomash]Czytam to już któryś raz i nawet jestem gotów się zgodzić, ale nie widziałem jeszcze dobrego, popularnego softu napisanego w Scali. To już nawet Haskell miał swojego Darcsa.
To, że Foursquare został przepisany do Lift/Scala, się nie liczy ;)[/quote]
A backoffice twittera nie jest w scali?:wink: (moge sie mylic)

W strobie mamy proxy “z bajerami” napisane w clojure, zapowiada się też, że będzie tego więcej. Ja na razie się dopiero zaczynam uczyć, ale wygląda na to, że się sprawdza.

Tak, Twitter coś tam ostatnio przepisywał na Scale. Nie wiem tylko co… API może? Jeżeli tak, to można powiedzieć, że Twitter jest w Scali, skoro frontend (w Rails) jest tylko klientem API :wink:

Scala in the Enterprise - LinkedIn, Twitter, Sony, Siemens, Xerox… dla mnie wystarczy jeżeli chodzi o “szersze stosowanie” :smiley:

LinkedIn to w ogóle zaczynał jako spaghetti-java, znaczy od razu na JVM, więc tam dorzucenie Scali czy Groovy to zerowy wysiłek.
Twitter odszedł w całości od Rails, cały backend jest na JVM (nie wiem czy Scala czy coś innego).
Sony to podobno też Ruby używa, ale nie wiadomo gdzie.

Jeżeli interesuje was twitter “od kuchni” to polecam http://www.youtube.com/watch?v=ohHdZXnsNi8.