Do jakich aplikacji w świecie rzeczywistym używają Clojure?
Używam Groovy do klejenia, Java do dużych systemów, skryptów Python / Perl do parsowania i kleju. Widziałem, jak dzwonię do Clojure z Javy, ale nie widzę, gdzie bym go użył. Wydaje mi się, że łatwiej byłoby używać prawie każdego języka skryptowego do zadań ad hoc.
W żadnym wypadku nie jestem ekspertem od Groovy ani fanboyem, ale uderza mnie, że ma lepsze ramy wsparcia, narzędzia i wiele konstrukcji językowych (zamknięcia, programowanie funkcjonalne). To samo można powiedzieć o Scali.
Czy to możliwe, że jego przyszłość to język osadzony w innych systemach?
(sandwich me BLT)
?Odpowiedzi:
Użyłem Clojure do:
To jest praktyczna / zabawna rzecz.
Ale Clojure ma również dużą teoretyczną głębię. Pomysły, które będą stawały się coraz bardziej istotne, gdy główny nurt naprawdę zrozumie potencjał programowania funkcjonalnego.
Osobista opinia, ale Clojure zapewnia lepsze konstrukcje językowe do prawidłowego organizowania oprogramowania (bez powodowania nadmiernego bólu dla pracującego programisty) wszystkich języków, których używałem do tej pory w nauce i zawodowo - C, C ++, Objective-C, Java, JavaScript, Python, Ruby.
Co nie znaczy, że Clojure jest doskonały. Ale wydaje mi się, że jest zbudowany na lepszym fundamencie niż większość tego, co tam jest.
źródło
Może zacznij od uzasadnienia Richa Hickeya .
A jeśli chodzi o aplikacje ze świata rzeczywistego, co powiesz na ten apel produkcyjny z grupy Google?
źródło
Clojure jest szeroko używane do przetwarzania dużych ilości danych. Bardzo dobrze nadaje się do eksploracji danych / komercyjnej sztucznej inteligencji (np. Runa) i prognoz na dużą skalę (aka WeatherBill). Historia współbieżności Clojure naprawdę pomaga w tych domenach z dużą ilością danych, w których przetwarzanie równoległe jest po prostu jedyną odpowiedzią.
źródło
Cóż, to trudne pytanie. Co chcesz robić? Nie ma rzeczy, do których Clojure tak naprawdę nie nadaje się. Chodzi mi o to, że nie jest to zbyt dobre dla jednorazowych skryptów wiersza poleceń ze względu na czas uruchamiania JVM (chyba że używasz ciasta lub czegoś podobnego), ale można to powiedzieć o każdym języku JVM.
Clojure jest szczególnie odpowiedni do zadań współbieżnych. Został zbudowany od podstaw, aby być niesamowitym językiem do współbieżności, a jego system STM jest fantastyczny. Jeśli musisz zrobić jakieś poważne rzeczy związane z współbieżnością, Clojure może być szczególnie odpowiedni do tego zadania.
Należy jednak pamiętać, że Clojure jest językiem ogólnego przeznaczenia. Nie jest dostosowany tylko do określonych nisz, ale jest przydatny do wielu lub wszystkich rzeczy, do których mogą pasować inne języki JVM.
Clojure został zaprojektowany jako fantastyczny język sam w sobie, niekoniecznie jako język kleju. Możesz budować systemy od podstaw w Clojure bez bezpośredniego dotykania kodu Java. Nie chodzi o to, że nie tworzy przyjemnego języka klejowego, wiem, że wiele osób używało go jako takiego.
Jeśli masz coś na myśli, najlepiej jest rozważyć, jak będzie wyglądało rozwiązanie w jakimkolwiek języku, który jest opcją. Jeśli wygląda / czuje się lepiej w Groovy, wybierz Groovy. Oba są radykalnie różnymi językami i oba mają swoje cele.
źródło
Możesz używać Clojure wszędzie tam, gdzie używałbyś Groovy lub java. Dlaczego chcesz to zrobić? Niektórzy lubią seplenienie. Będą wybierać ubrania zamiast Groovy. Niektórzy ludzie nie lubią seplenienie. Ci wybiorą Groovy.
źródło