Miał ktoś doświadczenie w programowaniu w Clojure albo innym Lispie? Zainteresował mnie w nim REPL i całkowiecie inne podejście niż reszta języków ze składnią opartą na { }. A połączenie JVM z JS poprzez ClojureScript wydaje się ultimate rozwiązaniem pod WebDev. #programowanie #clojure
@ascalon: a co chcesz wiedzieć? REPLe masz też w innych językach (Ruby, Python, Elixir, Erlang, nawet w C++). JS ogólnie miał być lisp-like, ale nie do końca im wyszło.
@ascalon ja pisałem projekt w Clojure i bardzo przyjemny język. co chcesz wiedzieć?
@Hauleth jednak mimo wszystko poza REPLem zaś znaczące różnice między językami. Clojure jako jeden z niewielu języków jest tak mocno "modułowy" - przykład pattern matching. w każdym języku funkcyjnym pattern matching to podstawowa konstrukcja. ale w Clojure trzeba sobie to doinstalować. tak :-)
ogólnie jest to bardzo ciekawe jak Clojure działa, a w tym jak podobny bardzo
w każdym języku funkcyjnym pattern matching to podstawowa konstrukcja
@secret_passenger: polemizowałbym, z reguły występuje, bo jest bardzo przydatną konstrukcją, ale nie jest "wymagane". Z tym doinstalowywaniem to też nie wiem czy to takie fajne, z jednej strony powoduje, że core języka jest dość małe i zgrabne, ale z drugiej strony, tak jak powiedziałem, jest to dość użyteczna konstrukcja. To samo możnaby powiedzieć o całej reszcie core, bo przecież let też
@Hauleth pewnie że ma to swoje wady. mnie to mocno zdziwiło na samym początku, bo też miałem wrażenie że "powinno być w Core". ale w Ruscie np nie ma na std decimala :-)
co do tego mechanizmu - jest on całkiem fajny jak się popatrzy potem razem na Clojure i ClojureScript. możemy mieć ten sam kod - teraz to co w Clojure będzie u nas działać na jednej maszynie na wieki
@secret_passenger: czy rzeczywiście Emacs jest do niego tak dobry i warto go się nauczyć? Jak wygląda używanie bibliotek Javy, gdzie warto zajrzeć po dokumentację. Ogarnąłem już Leina i zacząłem czytać jedyną książkę o Clojure jaką znalazłem.
po co to wiesz... to tak jak z pattern matchingiem - spokojnie można się obejść bez tego. ale czy to ma sens? dla Ciebie Decimal jest zbędny a dla wielu osób nie. Rust nie jest tylko do programowania niskopoziomowego - jest jednym z języków wspierających web assembly a plan jest taki by to służyło nie tylko do portowania gier. sporo firm robiących aplikacje biznesowe chce inwestować w webasm i już to
@ascalon teraz tak sobie myślę że może niepotrzebnie faktycznie napisałem z takim entuzjazmem o Emacsie. ja jednak przesiadłem się w miarę bez bólu - jak ktoś kto wiele lat używał Vima (a podczas pracy z Emacsem używam Vimowych klawiszy).
nie próbowałem jednak niczego innego więc trudno mi coś polecić. może spróbuj Intellij Community? jest za darmo i powinno mieć jaka plugin do Clojure.
wydaje nie się że niepotrzebnie koncentrować się na początku na
@secret_passenger: używam VS Code ale juz mam zainstalowanego spacemacsa i zacząłem zintegrowany tutek. Łapanie za myszkę przez cały dzień męczy nadgarstek. Kiedyś próbowałem Vima i wydawał mi się bardziej intuicyjny, insert mode jest trochę lepszy tak czuje. Trzymanie tego controla i alta co chwila trochę średnie ale zobaczę jak będzie wychodziło w praktyce
@ascalon: zawsze możesz Spacemacs'a przyłączyć na klawisze zgodne z Vimem :-) ja tak pracuje jak czasami dotykam VSCode to też tylko z pluginem symulującym Vima
@ascalon: w przypadku vscode jest plugin o nazwie Calva, podobało mi się, że dowolna funkcja może być przetestowana przez repl z poziomu pluginu i wyświetlana obok kodu. W przypadku Clojurescript polecałbym rozejrzeć nad shadowcljs, który by spełniał zadanie jako narzędzie do budowania. Shadowcljs miał bardzo ok wsparcie dla ekosystemu npm w porównaniu do innych rozwiązań, kiedy ostatnio go używałem.
@ascalon: jak najbardziej polecam clojure/clojurescript do web developerki. po ponad 5 latach pracy na takim stacku nie wyobrażam sobie pracy bez REPLa. emacs jako "IDE" jest ok, chociaż z biegiem czasu obserwuję jak większość kolegów przechodzi albo na Atoma (+proto-repl) lub środowisko IntelliJ (+Cursive).
Męczę się strasznie z Emacsem (spacemacs), instaluje pakiety a on je sam odinstalowuje przy boocie przecież to k---a jakaś parodia xD
Próbuję zrobić konfigurację pod Reacta z eslintem. Totalna masakra, nic nie działa, po dodaniu kilku linnijek do pliku init przestał w ogóle rozpoznawać pliki .js i składnię. Innym działa a mi nie xD
W VSCode klikasz i jest, poprostu działa tutaj k---a jak zwykle wszystko co powiązane z GNU i śmierdzielami pokroju Stallmana
@ascalon: zgadza się. emacsa docenisz dopiero po kilku latach pracy z innymi edytorami. a konfigurować go będziesz całe życie. jak te pakiety instalujesz?
@umrzyk: już doceniam bo przełączyłem się na tryb VIMa i praca jest turbo szybka. Pakiety to: web-mode, flycheck - tego odinstalowuje jako orphan package i nie może go znaleźć jak dam w init (require 'flycheck), add-node-modules-path, emmet-mode.
@ascalon: jak instalujesz pakiety? edytujesz config? jeśli tak to w większości powinieneś działać raczej na layerach.
Emacs odinstalowuje pakiety tylko jak czegoś nie ma w konfiguracji.
w-------a mnie takie wstawki jak "śmierdziel Stallman" i cała reszta głupot. nie chcesz - nie korzystaj. po co pisać takie głupoty? nikt Cię nie zmusza do Emacsa. używaj czego Ci wygodnie
Po prawie 14 latach życia w Krakowie wyjeżdżam sobie właśnie do Szczecina (gdzie m.in. będę mógł już otwarcie wyjść na dwór, w tym nad morze haha). Rzućcie ze dwa plusiki na dobry początek (。◕‿‿◕。)
#programowanie #clojure
@Hauleth jednak mimo wszystko poza REPLem zaś znaczące różnice między językami. Clojure jako jeden z niewielu języków jest tak mocno "modułowy" - przykład pattern matching. w każdym języku funkcyjnym pattern matching to podstawowa konstrukcja. ale w Clojure trzeba sobie to doinstalować. tak :-)
ogólnie jest to bardzo ciekawe jak Clojure działa, a w tym jak podobny bardzo
@secret_passenger: polemizowałbym, z reguły występuje, bo jest bardzo przydatną konstrukcją, ale nie jest "wymagane". Z tym doinstalowywaniem to też nie wiem czy to takie fajne, z jednej strony powoduje, że core języka jest dość małe i zgrabne, ale z drugiej strony, tak jak powiedziałem, jest to dość użyteczna konstrukcja. To samo możnaby powiedzieć o całej reszcie core, bo przecież
letteżco do tego mechanizmu - jest on całkiem fajny jak się popatrzy potem razem na Clojure i ClojureScript. możemy mieć ten sam kod - teraz to co w Clojure będzie u nas działać na jednej maszynie na wieki
tak, Emacs do Clojure jest bardzo dobry. i dużo lżejszy niż inne alternatywy.
na resztę odpiszę później (jestem w podróży).
jaką książkę czytasz?
@secret_passenger: a po co? Jak często się używa decimali? Zwłaszcza w niskopoziomowym. A większy std to większy problem z portowaniem.
po co to wiesz... to tak jak z pattern matchingiem - spokojnie można się obejść bez tego. ale czy to ma sens? dla Ciebie Decimal jest zbędny a dla wielu osób nie.
Rust nie jest tylko do programowania niskopoziomowego - jest jednym z języków wspierających web assembly a plan jest taki by to służyło nie tylko do portowania gier. sporo firm robiących aplikacje biznesowe chce inwestować w webasm i już to
nie próbowałem jednak niczego innego więc trudno mi coś polecić. może spróbuj Intellij Community? jest za darmo i powinno mieć jaka plugin do Clojure.
wydaje nie się że niepotrzebnie koncentrować się na początku na
ja tak pracuje
jak czasami dotykam VSCode to też tylko z pluginem symulującym Vima
@secret_passenger:
Pattern matching nie jest włączony do core z uwagi na to, że nie rozwiązuje problemu wyrazu (ang. expression
Próbuję zrobić konfigurację pod Reacta z eslintem. Totalna masakra, nic nie działa, po dodaniu kilku linnijek do pliku init przestał w ogóle rozpoznawać pliki .js i składnię. Innym działa a mi nie xD
W VSCode klikasz i jest, poprostu działa tutaj k---a jak zwykle wszystko co powiązane z GNU i śmierdzielami pokroju Stallmana
Pakiety to: web-mode, flycheck - tego odinstalowuje jako orphan package i nie może go znaleźć jak dam w init (require 'flycheck), add-node-modules-path, emmet-mode.
Emacs odinstalowuje pakiety tylko jak czegoś nie ma w konfiguracji.
w-------a mnie takie wstawki jak "śmierdziel Stallman" i cała reszta głupot. nie chcesz - nie korzystaj. po co pisać takie głupoty? nikt Cię nie zmusza do Emacsa. używaj czego Ci wygodnie