Wpis z mikrobloga

via Wykop Mobilny (Android)
  • 0
@inny_89: nie wiem jak sądzą inni, ale scala przypomina mi bardzo Javę (i każdy inny język bazowany na JVM) i nie widzę powodu dla którego miałbym jej używać zamiast Javy czy Kotlina
@inny_89: bo Javę wymyślono po to, żeby średni developerzy robili bez zbędnego zastanawiania się ustandaryzowany kod z niskim ryzykiem, że coś #!$%@?ą.

A Scalę wymyślono, żeby zajebiści deweloperzy mogli sobie strzelić w nogę na 300 ciekawych sposobów żeby napisać coś co w javie zajmuje 10 linijek - w 1 linijce (ale po 2-krotnie dłuższym czasie zastanawiania się jak to napisać i z 10-krotnie dłuższym czasem rozkminiania jak chcesz coś poprawić) :)
@inny_89: Jest to język skomplikowany, pozwalający na dużą swobodę programisty. Powoduje to, że długo się kompiluje, ciężko utrzymać jednolity styl w kodzie, łatwo napisać kod trudny do odczytu, no i były problemy z kompilowaniem pod Androida (teraz ponoć jest lepiej, ale jest już za późno). Ponadto brak kompatybilności binarnej bibliotek kompilowanych pod różnymi wersjami Scali.
A potem nazłaziło się haskelowców i wystraszyli normalnych developerów próbując wciskać wszędzie monady.
@secret_passenger: Podoba mi się tak rzeczowa odpowiedź. Dzięki.
Mam wątpliwość jedynie co do tego czy scala sama w sobie rzeczywiście jest przekombinowana. Jest prostsza niż Java. Trudno mi się wypowiedzieć co do Catz i Scalaz czy tam ZIO.
@vytah: I to by w sumie wiele tłumaczyło. Bo tak jak napisałem powyżej. Język sam w sobie wydaje się łatwiejszy do opanowania (easy to start really hard to master) i jest o niebo piekniejszy niż Java.

Jednak to co napisałeś ma mega sens.
@scriptkitty właśnie zadaje to pytanie bo znam Javę i C# w stopniu 'zaawansowany-junior' :) i ostatnio w robocie pojawił się case, że na Sparku zamiast pythona (nie cierpię tego języka) lepiej byłoby nam wykorzystywać scalę.

Zgłębiłem temat i muszę przyznać, że język sam w sobie w porównaniu do Javy jest prostszy.
Nie wiem właśnie jak z wszystkimi zaawansowanymi zagadnieniami i wykorzystywaniem Cats czy ZIO Scalaz ale sam corowy język wydaje mi się
@scriptkitty niestety clojure nie jest wspierany na Sparku.
Więc w moim przypadku całkowicie odpada. Poza tym w zespole widzę wartość dodaną z tego, że skoro i tak na Sparku w pisanym rozwiązaniu byśmy używali scali to jeśli będziemy musieli dodawać jakieś serwisy około-sparkowe to czemu od razu też nie mieć tego w scali? A jeśli nie w scali to już lepiej w c#, którego większość zespołu dobrze zna.
Także clojure nie wpisuje
@secret_passenger:

1) jest przekomplikowana

Tak można powiedzieć w zasadzie o każdym języku. Przydałyby się jakieś konkrety.

2) scala z Catz i scala z scalaz to prawie dwa różne języki

Po pierwsze: nie trzeba używać ani Cats, ani Scalaz. Istnieje masa zespołów gdzie używa się np. Scala + Akka, albo Scala + Spark, bez żadnych zewnętrznych bibliotek związanych stricte z programowaniem funkcyjnym.
Po drugie: styl pisania aplikacji z użyciem Cats będzie bardzo
@vytah:

Jest to język skomplikowany

Jak wyżej: tak można powiedzieć w zasadzie o każdym języku. Przydałyby się jakieś konkrety.

pozwalający na dużą swobodę programisty.

To wada czy zaleta :P ?

Powoduje to, że długo się kompiluje

Przyczyną tego że Scala się długo kompiluje jest to że pozwala na dużą swobodę programisty? Tak przynajmniej wynika z tego co napisałeś.

ciężko utrzymać jednolity styl w kodzie

Jak w każdym języku który nie jest
@zajety_login kurcze, dobrze ripostujesz. Jako, że scala że wszystkich języków jakie w życiu spróbowałem najbardziej mi odpowiada (przynajmniej na razie) sercem jestem z Tobą.

To co napisałeś jest w nocnej opozycji do pozostałych opinii. Zatem, dlaczego scala nie jest znacznie bardziej popularna?
Z mojego punktu widzenia ten język ma niemal wszystko co potrzebne do gwarantowanego sukcesu. No może poza czasem kompilacji.

Myślisz, że Dotty (SCALA 3) sprawi, że nastąpi trochę odrodzenie scali
@zajety_login:

Jak wyżej: tak można powiedzieć w zasadzie o każdym języku. Przydałyby się jakieś konkrety.

pozwalający na dużą swobodę programisty.
Powiem tak: feature'y Javy, których nie ma w Scali można policzyć na palcach jednej ręki. Odwrotnie jest ich masa.
Niedziałająca już strona TheHammerPrinciple klasyfikowała Scalę w kategoriach sugerujących wyższy poziom skomplikowania niż większość mainstreamowych języków:
https://web.archive.org/web/20170601105110/http://hammerprinciple.com/therighttool/statements/it-s-unusual-for-me-to-discover-unfamiliar-feature
https://web.archive.org/web/20170421061457/http://www.hammerprinciple.com/therighttool/statements/this-language-is-unusually-bad-for-beginners
https://web.archive.org/web/20170514030824/http://www.hammerprinciple.com/therighttool/statements/i-often-feel-like-i-am-not-smart-enough-to-write-t

"pozwalający na dużą swobodę programisty. " – To wada czy zaleta :P ?
@zajety_login:

1) jest przekomplikowana

Tak można powiedzieć w zasadzie o każdym języku. Przydałyby się jakieś konkrety.


nie wydaje mi się, że "przekomplikowany" można odnieść do każdego języka. nawet w świecie języków imperatywnych porównwywanie C++ do Pythona, Ruby czy nawet C#/Java nie ma sensu pod względem trudności. C++ bije poziomem skomplikowania wszystkie te pozostałe języki. i chyba każdy się z tym zgodzi.

podobnie jest w świecie fp: ja widzę przekomplikowane (czyli nadmiernie
> łatwo napisać kod trudny do odczytu,

To jest wina programisty czy języka :P ?


@zajety_login: Oba. Język może sugerować rozwiązania czytelniejsze lub mniej czytelne. Ostatecznie to od programisty zależy jak wyjdzie, ale np. w PHP zdecydowanie łatwiej pisać spaghetti niż w takim Elixirze, co nie oznacza, że się nie da pisać ładnego kodu w PHP ani pisać spaghetti w Elixirze.
no i te ostatnie rozłamy... czy dobrze rozumiem że są teraz DWIE Scale, robione przez DWA różne środowiska ludzi?


@secret_passenger: powiesz coś więcej o tym? O jakich 2 różnych środowiskach piszesz? jednym z nich rozumiem, że jest Odersky (z Lightbendem?) a drugie środowisko?