This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
- # announcements (1)
- # babashka (40)
- # beginners (228)
- # cider (9)
- # clara (6)
- # clojure (68)
- # clojure-uk (13)
- # clojuredesign-podcast (5)
- # clojurescript (9)
- # core-typed (1)
- # cursive (1)
- # duct (2)
- # emacs (9)
- # fulcro (18)
- # graalvm (11)
- # hyperfiddle (1)
- # malli (2)
- # off-topic (33)
- # re-frame (9)
- # reagent (3)
- # reitit (15)
- # shadow-cljs (6)
- # tools-deps (1)
Hi all! I'm currently researching creating a large extensible local web app with CLJ+CLJS+Fulcro on front and back. I'm most hung up on creating an extension model that would allow plugin creators the most flexibility without drowning myself in abstractions. Are there any good resources on creating extensible architectures available?
This is very interesting to me as well. Also working with Fulcro and looking into building an extensible app
A few months back I recall a community member announcing this: https://github.com/emil0r/ez-plugin
with something like https://github.com/fulcrologic/fulcro-rad responsible for the CRUDL bits?
I'm considering building an oss clojure editor. I tried to edit light table, but after a few hours of research discovered that I would never understand enough about it to make changes.
Night code is interesting, as is liquid, but I want more of a playground so I can try out my ideas - code bubbles, auto generated workspace layouts that include the function, tests, a repl, and a notes window. The other bit I want to play around with is a custom impl of vim that works a bit differently so that it combines well with paredit
That’s really interesting. Someday I’d love to build a Salesforce-like product — basically super-extensible business software. That would be easier to do with a nice Clojure editor to use within it
Sounds cool. Currently I'm researching the feasibility of the project. Once I have a solid outline and a minimal baseline of code I'll publish it and make a call for help out here 😉
There are so many channels in this Slack workspace. How is this supposed to work? Although I am grateful I can get answers here fast, shouldn't the questions and answers be out in the open? Before I joined this workspace, I had no idea such a vibrant community existed.
If you have specific questions, asking at https://ask.clojure.org is a great place to search for previous questions or ask new ones in a way that can be permanently found. The ask site is the official q&a forum for Clojure and is monitored by the core team.
We have so many topics and Noone knows everything, so if you want the highest chance of someone that knows about the topic reading the appropriate question it's best to have them sorted and filtered which is what channels are for.
Feel free to ask about stuff since the community is pretty welcoming. And if there's a channel that's more on topic or something people will generally point you in the right direction.
Yes, I know. It is a very friendly community. I still wish things were more out in the open. By "open" I mean indexable by search engines.
@hindol.adhya the searchable slack-archive at Clojurians-Zulip might help with discoverability: https://clojurians.zulipchat.com/#narrow/stream/180378-slack-archive
This sure helps. Thank you. I still wish more questions and answers were on Stackoverflow and similar sites. Or do we expect everyone interested in Clojure to be on Slack?
There are questions and answers all over the place. Slack, Gitter, Zulip, SO. Slack is probably the most active, <ttps://ask.clojure.org/> is pretty active as well.
Ask Clojure is the official q&a site for Clojure, run and monitored by the core team
Is there a chance that Clojure is going to have static typing/type inference something like Typed Racket https://docs.racket-lang.org/ts-guide/types.html#%28part._.Union_.Types%29 in particular, at Rich’s talk Maybe Not, Rich argues that Sum Types in Haskell/OCaml/Scala are not really sum types because even thought types represent a set, they require tagging which makes everything confusing. I agree. Typed Racket doesn’t have this issue. e.g.
so here we have a ∪ of yes and no keywords. Isn’t it awesome? why not have lisp on jvm, with type inference? I just think fighting against static typing is ridiculous. idk
> (let ([a-number 37]) (if (even? a-number) 'yes 'no)) - : Symbol [more precisely: (U 'no 'yes)] 'no
@denisgrebennicov There are some external tools / linters available which do some form of type checking. Typed Clojure / core.typed is probably the most advanced, I don't know what the current state of that is, but the author worked together with the Typed Racket folks I believe.
@borkdude I know you are working on something like this, if I am not mistaken 🙂 yet this is not type inference, right
Another tools is https://github.com/arohner/spectrum, also not known to me how usable it is.
Then there's more basic stuff like joker and clj-kondo (of which I'm the main author). They can infer things like:
$ clj-kondo --lint - <<< '(let [a "x"] (inc a))' <stdin>:1:19: error: Expected: number, received: string.
If you want to know more about the "type system" in clj-kondo you can check: https://github.com/borkdude/clj-kondo/blob/master/doc/types.md
Another last thing that came to my mind: ClojureScript has some form of type inference, but mostly for performance optimizations. I'm not sure if it will also warn about potential errors. @mfikes might be able to tell more about this.
Here's a nice blog about static analysis and Clojure: https://lambdaforge.io/2019/11/08/clj-kondo-datalog-support.html