No to piszesz skrypty w czystej Javie czy bean shell? Bo na moje to co robi BS to nie jest czysta Java, ale co ja tam wiem.
Skomentuje jeszcze tylko ostatni fragment, bo tak traci ignoracja i fanboyism (prosze nie obrazaj sie, znam Twoje wypowiedzi z forum i wiem ze trzymasz poziom) ze musze. Wiesz ze sa inne jezyki na JVM niz Java i Scala? Wiesz, ze ktos moze chciec rozszerzac aplikacje wieloma jezykami, i miec standardowe podejscie jak to wiazac, zamiast tworzyc hacki dla kazdego z osobna? Podam przyklad.
Nasza aplikacja jest napisana w Javie jako core, czyli minimalna funkcjonalnosc, servisy, persistence, wyszukiwanie, definicja form itp. Taki mikrokernel. Teraz, kazdy klient ma inne wymagania, ktore inaczej troche wykorzystuja te uslugi. Najczesciej sa to jakies male skrypciki typu obrobka stringa czy jakies szczegolne procesowanie zwroconych wynikow wyszukiwania itp. Chcemy aby takie cos mozna bylo pisac w roznych jezykach - teraz ludzie pisza to w jythone bo tak sobie wybrali, ale jak ktos przyjdzie nowy i bedzie chcial zrobic dopasowanie do klienta w groovy, to zrobi, jak w clojure, to rowniez zrobi, w JavaScript zrobi, w Bean Shell zrobi, w JRuby zrobi, w Scali rowniez ale to juz trzeba bylo specjalnie silnik kodowac bo nie ma implementacji 223 (sa jakies szczatkowe, ale to nie jest production-ready).
Teraz, mamy komponent tzw customizer, ktory definiouje pare (nascie) interfejsow, pozwala ladowac skrypty, itp. Teraz, aplikacja definiuje wiele miejsc-hookow, ktore moga wywolywac te skrypty, wystarczy skonfigurowac wywolanie, np. powiedzmy "java:funkcjaFoo(parametry ...)*", "groovy:funkcja(parametry...)" czy "scala:funkcja(paramy)" (itd, dla kazdego jezyka ktory wspieramy. Wiekszosc z tych co zintegrowalismy (tylko te ktore ludzie chcieli uzywac, plus Scala, bo ja lubie ale nikt jej i tak nie uzywa) mozna wywolac za pomoca paru linijek, tych samych, gdzie wazny jest prefix (groovy, python, ...) tylko Scala wymaga jakichs cudow, wymaga ifa i specjalnego traktowania.
(*Takie wywolanie i jego konfiguracja u nas nie jest stringiem, chcialem tylko dla prostoty zademonstrowac o co mi chodzi.)
Teraz o tym jak to jest uzywane: klient kupuje licencje i support i zleca stworzenie konfiguracji. Siada z jakims kolesiem od nas, tzw. project developer (1 klient == 1 projekt), tworza to i tamto, np. wyglad form, moduly ktore maja byc itp. Nastepnie koles musi (najczesciej, prawie zawsze, z wyjatkiem maluczkim kliencikow) napisac tzw. custom logic. Wybiera sobie w czym chce to napisac. Jako ze to sa ludzie z progranicza IT i innej domeny, nie sa to super mastahy, nie wiedza czesto co to typy itp. Duza czesc z nich zna VB (troche starsze osoby), i bardzo im sie podoba ze mga pisac w pythonie. Inni (ostatnio jakis mlody szczun) jest fan(boyem) Ruby, wiec az dostal wypiekow jak sie okazalo ze moze pisac w tym kod i bedzie dzialal. Dla czesci zadan bardzo fajnie pasuje Clojure, mamy jednego takiego co czaruje. Ktostam pisal sobie w JS (Rhino). Scali nie uzyl jeszcze nikt (nie twierdze ze jest zla, po prostu malo osob ja zna u nas).
REPL to nie skrypty, to jest ad-hoc interactive mode. To nie to samo.
Scala i IDE? Prosze nie rozsmieszaj mnie - to co oferuje Scala IDE to jest namiastka. Sam Martin Odersky do niedawna kodowal w Vi albo Emacs i nie uzywal tego badziewia - poszukaj w necie ktore, sa artykuly. Zdaje sie ze ostatnio sie przesiadl, ale co z tego wyniklo to nie wiem. Wniosek - Martin doesn't eat his own dog food. Pewnie wiesz co to oznacza po polsku, i jakie mozna wyciagnac z tego wnioski. Podpowiem - Vi / Emacs jest dla niego lepszym rozwiazaniem.
Wielowatkowe przetwarzanie kolekcji mamy tez w Javie, wystarczy lib, poszukaj, razem z libem do kontunuacji.
Jython sie integruje z kodem javowym bardzo dobrze bo moge pisac skrypt w pythonie, klasy implementuja jakistam interfejs, lub nawet nie, bo jest duck typing, uruchamiam skrypt za pomoca wsplnego interfejsu z 223 i wyciagam z niego to co mnie interesuje.
To o czym Ty mowisz to pisanie aplikacji od samego poczatku gdzie jest mieszkanka Scali (czy czegokolwiek) i Javy, i jedno i drugie moze uzywac nazwajem swoich jednostek. Moj use case jest inny, mam nadzieje ze widzisz roznice.