Zach Oakes writes about Clojure and ClojureScript tools he built, including the Nightcode and Nightlight editors.
HN commenters praise Nightlight for its design and simplicity and recommend Nightcode for Windows users because it bundles Leiningen and the Clojure compiler.
Lovely work!
We ask for the commit we want and connect to a node with BitTorrent, but once connected we conduct this Smart Protocol negotiation in an overlay connection on top of the BitTorrent wire protocol, in what’s called a BitTorrent Extension. Then the remote node makes us a packfile and tells us the hash of that packfile, and then we start downloading that packfile from it and any other nodes who are seeding it using Standard BitTorrent.
The disadvantage here is that any given file in the repo could be stored in an ever increasing number of packfiles. Each existing version of the repo will generate a new packfile to get it to the newest version, and it's up to the authenticated masters to generate and seed each of those packfiles, while peers either do or do not cache these replicated datas. In short, this means of syndicating updates ignores the Merkle-DAG-ness (DAG-osity?) of Git.
The un-updateability of torrents is something that seems to seriously limit it's use. There are a lot of interesting attempts to hack around this- LiveStreaming and Nightweb are two that spring to mind. https://www.tribler.org/StreamingExperiment/ https://sekao.net/nightweb/protocol.html
I think Clojure is definitely worth learning, even if you wouldn't get to use it on your day job! For a quick insight I'd recommend https://learnxinyminutes.com/docs/clojure/ and https://github.com/functional-koans/clojure-koans/tree/master/src/koans, which will quickly get you through the basics.
As you might already know, Clojure being a being a LISP means it has a really minimal "syntax", which is a two-edged sword. Also programming with immutable data makes it necessary to have a new perspective on how to express and implement algorithms, but luckily Clojure has good "escape hatches" to the mutable world (atoms, STM etc.).
Oh and btw I find Nightcode (https://sekao.net/nightcode) a very good IDE for Clojure, I favor the legacy 1.3.x branch but I'm sure 2.x should have benefits over it as well. Emacs had some annoying hurdles to overcome.
Here are instructions for running clojure directly: JVM, Clojure.jar and nothing else:
https://clojure.org/guides/getting_started#_other_ways_to_run_clojure
You can also use boot, or if you’re using clojurescript, there are other non-leiningen options too. But really, leiningen is easy — you only need to know where in the project file to put dependencies (if you’ve ever used any other build tool, you can do this) and then run `lein repl` or `lein run` or `lein test` and to package a jar: `lein uberjar`. You don’t need to know anything else to get started.
Cursive is free for non-commercial use. If you just want a simple editor to get started, check out Nightcode or Nightlight.
https://sekao.net/nightcode/
https://sekao.net/nightlight/
I wrote an IDE using JavaFX: https://sekao.net/nightcode/ My experiences have been mostly great. As the author mentioned, the JDK comes with a nifty tool called javapackager that will generate a dmg, exe, deb, and other formats with the JRE built in. If you really do want to embed web content, it includes a WebView widget which is a fully-functional browser capable of loading local or remote content, and it even lets you communicate between the JVM and JS side using a little bridge object. So you get the benefits of both the JVM and JS ecosystem. This was particularly nice for me because I could write the some of the IDE in Clojure, and some of it in ClojureScript, and they can call each other's functions arbitrarily. Amazing stuff.
What's the use-case for an editor embedded in a webpage? It doesn't seem to be able to live-edit the webpage code - so I guess I don't really get it..
It'd be nice is someone made a general text editor that was also embeddedable and could also live edit itself (or the program it's running in). The closest I've seen is Nightlight
https://sekao.net/nightlight/
But it's not really "general purpose" like Emacs w/ Elisp and it's pretty Clojure specific
I would recommend the Nightcode editor (https://sekao.net/nightcode/) for those running Windows as it comes with a integrated Leiningen and Clojure compiler. Installing Leiningen on Windows is a huge PITA as the install scripts are pretty flimsy and won't install properly on 64bit Windows, especially in a multi user environment.