[HN Gopher] ClojureDocs - Community-powered documentation and ex...
       ___________________________________________________________________
        
       ClojureDocs - Community-powered documentation and examples for
       Clojure
        
       Author : capableweb
       Score  : 116 points
       Date   : 2022-06-01 17:57 UTC (5 hours ago)
        
 (HTM) web link (clojuredocs.org)
 (TXT) w3m dump (clojuredocs.org)
        
       | carlgreene wrote:
       | I love this site. As a total Clojure-noob, seeing the different
       | code snippets and approaches for solving problems in Clojure has
       | been a huge help!
        
         | alexott wrote:
         | You can also look onto this book (still in progress):
         | https://www.manning.com/books/clojure-the-essential-referenc...
         | - it tries to explain the standard library with examples, etc.
        
       | dgb23 wrote:
       | This is a great resource, especially because of its killer
       | feature: user provided examples.
       | 
       | Some of the more powerful or special purpose utilities in Clojure
       | are much easier to grasp by looking at some examples.
       | 
       | The only thing that is potentially better is a very well
       | maintained wiki, like the MDN docs. But that's a much bigger
       | effort and only few wikis reach that level of quality.
       | 
       | Another cool thing about Clojure is that its core library and
       | other parts of the language are quite small and understandable. I
       | had quite a bit of fun reading and skimming the source, trying to
       | understand things etc.
        
         | dan-robertson wrote:
         | I remember very fondly that the php documentation would often
         | have nice practical examples in the comments below the
         | documentation for each function.
        
       | tosh wrote:
       | One of the best things about PHP years ago was its documentation
       | with user contributed comments. ClojureDocs is that for Clojure.
       | The comments are gold.
        
       | FraaJad wrote:
       | There is also JanetDocs for Janet, which is inspired by Clojure.
       | 
       | [1]: https://janetdocs.com [2]: https://janet-lang.org
        
         | swlkr wrote:
         | Hey thanks for the shoutout!
         | 
         | JanetDocs turned out ok in the end, it's been running on janet
         | for years at this point, no hiccups to speak of really. (Please
         | be nice to the server)
        
       | lobstrosity420 wrote:
       | I'm about a third of the way into Clojure for the Brave and True.
       | Highly recommend for starting out from zero. You can read it for
       | free at https://www.braveclojure.com/clojure-for-the-brave-and-
       | true/
        
         | olah_1 wrote:
         | I'm not a fan of books like that because it doesn't teach you
         | real-world usage. You can't be thrown into a standard clojure
         | project repo after reading that book.
        
           | lobstrosity420 wrote:
           | I mean you have to start somewhere though
        
           | capableweb wrote:
           | I used this book (+ others obviously) and I think it was the
           | best one around so far, for me at least. It does contain
           | exercises for you to solve specific problems, which is
           | helpful, but otherwise 4clojure comes closest I guess.
           | 
           | By the way, what languages have books that makes you go from
           | knowing zero to being able to jump into a standard X-language
           | project repository after reading through the book? Usually it
           | goes from "knowing nothing" -> "knowing a bit, solving small
           | problems" -> "solving bigger problems, maybe contribute to
           | small projects" -> "being able to contribute substantially"
           | -> "being able to own a project and lead it", and I know of
           | no (single) books that takes you across multiple steps.
           | Usually books focuses on one of the steps.
        
       | chrisweekly wrote:
       | Clojure(Script) holds so much appeal for me, checks ~all the
       | boxes... I just wish it were more popular. Curious why it's not.
        
         | Deadron wrote:
         | The tooling is far from simplistic to setup and the available
         | options can be overwhelming. Its all the pain of the JS stack
         | but with less easily available help and tooling that produces
         | less helpful error messages.
        
           | didibus wrote:
           | I think the tooling nowadays is pretty simple to setup, but
           | the information out there doesn't speak to that new simple
           | way, so everyone starting is following something that pushes
           | them to outdated tooling.
           | 
           | Install Java:                   brew tap homebrew/cask-
           | versions         brew install --cask temurin17
           | 
           | Install Clojure:                   brew install
           | clojure/tools/clojure
           | 
           | Type `clj` at the command line and play with Clojure!
           | 
           | Now install VSCode and get the Calva plugin for Clojure from
           | the marketplace.
           | 
           | That's it. You'll have autocompletion, jump to definition,
           | code formatting and highlighting, linting, support for editor
           | integrated REPL, debugger, etc.
           | 
           | Then you can run:                   clojure -Ttools install
           | io.github.seancorfield/deps-new '{:git/tag "v0.4.9"}' :as new
           | 
           | And now you can create new projects from various templates
           | using:                   clojure -Tnew app :name
           | myusername/mynewapp
           | 
           | This creates a new basic application project for example.
           | Open it in VSCode and you can connect a REPL to it and start
           | working.
        
           | CraigJPerry wrote:
           | I don't think it's that                   $ npx nbb -e
           | (println "Hello, world")         Need to install the
           | following packages:           nbb         Ok to proceed? (y)
           | Hello, world
           | 
           | Or more comprehensively:
           | https://clojurescript.org/guides/quick-start
        
             | [deleted]
        
             | Deadron wrote:
             | Your example is missing anything actually related to
             | rendering a webpage.
        
               | capableweb wrote:
               | Unclear what "rendering a webpage" entails exactly.
               | 
               | If you want to do frontend development, you can give
               | shadow-cljs a try, the quickstart is pretty quick:
               | https://github.com/thheller/shadow-cljs#quick-start
               | 
               | If you want to just render server-side HTML, something
               | like compojure (HTTP routing) and hiccup (Clojure data ->
               | HTML) is pretty easy and quick to get started with (https
               | ://gist.github.com/zehnpaard/2071c3f55ed319aa8528d54d90..
               | .).
               | 
               | If you want to generate HTML files to serve with
               | nginx/whatever, you can just use hiccup and `(spit)` the
               | resulting HTML to files on disk.
        
         | BaculumMeumEst wrote:
         | It seems really nice to work with but investing in a niche
         | ecosystem that adds another layer of complexity on top of a
         | tall stack is a hard sell for me personally
        
           | didibus wrote:
           | That's a good reason. You are working above Java, JavaScript
           | and others, and that's often something that you need to be
           | aware of and the details of those layers leak in a little.
           | 
           | It's still worth it for me personally, but I recon the
           | additional challenge.
           | 
           | If you try babashka and nbb it won't feel as much of an extra
           | layer, but they're both interpreted, so expect only Ruby like
           | performance out of them. That said, it's a good way to get
           | started if you don't want an extra layer under Clojure.
        
             | BaculumMeumEst wrote:
             | I actually did learn Clojure on the JVM. I read two and a
             | half Clojure books, built a number of side projects, and I
             | worked as a Java developer for a few years so the JVM
             | wasn't an issue. But even with all that, building a web app
             | is far easier for me using Python/Flask, even with minimal
             | experience with the language or framework.
             | 
             | And if I want to build a web service, I reach for go
             | because it's faster and the memory footprint is much
             | smaller. I guess maybe if I was working on a super complex
             | project that justified using Clojure to build elaborate
             | abstractions, I would use it, but most of what I work on is
             | pretty straightforward.
             | 
             | ClojureScript I've avoided because I keep anything
             | frontend-related that I work on as dead simple as humanly
             | possible to avoid churn.
             | 
             | And babashka seems neat too but I'm already comfortable
             | with bash, and shellcheck works well.
             | 
             | It sucks but I just can't seem to find a good use case for
             | Clojure, even though I love the tooling and the language.
        
         | dgb23 wrote:
         | I'm torn about ClojureScript.
         | 
         | It is a layer of protection against JS madness, and just a
         | plainly better designed language. State management is much less
         | verbose and easier to reason about.
         | 
         | But it is hard to justify outside of SPA and for "in between"
         | use cases that for example Next solves very well.
        
         | slotrans wrote:
         | The Lisp Curse
         | http://www.winestockwebdesign.com/Essays/Lisp_Curse.html
        
       | Borkdude wrote:
       | Also check out:
       | 
       | https://github.com/oxalorg/4ever-clojure - clojure exercises in
       | the browser
       | 
       | https://borkdude.github.io/re-find.web/?args=2%20%5B%3Aa%20%... -
       | find clojure functions by example
        
       | loevborg wrote:
       | ClojureDocs is great. See also https://cljdoc.org/
        
       | user3939382 wrote:
       | If only Rich Hickey could time machine himself back to when they
       | were about to decide for the first time to integrate JavaScript
       | with the browser and replace it with ClojureScript...
        
         | lobstrosity420 wrote:
         | I don't have a good source for this but supposedly Brendan Eich
         | wanted to embed Scheme into Netscape, what a world that would
         | have been.
        
           | dgb23 wrote:
           | JavaScript was inspired by Scheme and Self. It's a wolf in
           | sheep's clothing in that way. But yes, a Scheme would have
           | solved so many issues and churn that we have to deal with.
           | However people are scared by Lisps so there's that.
        
             | aneil wrote:
             | Specifically, some manager at Mozilla was scared of it.
        
       ___________________________________________________________________
       (page generated 2022-06-01 23:00 UTC)