
Lightmod – A beginner-friendly, all-in-one tool for full stack Clojure - malloryerik
https://sekao.net/lightmod/
======
modernerd
Five years after Bret Victor's Inventing on Principle[1], it's crazy that
there are not more coding environments that give new users a great out of the
box experience with live reloading like this.

I started learning Clojure recently and had a bad experience configuring a
development environment on the Mac. Leiningen threw “illegal reflective
access” and “Unable to open cgroup memory limit” warnings that appeared to be
related to an incompatible version of the JRE. I ended up fixing it (JRE
downgrade, then upgrade after it was patched in Leiningen), but it was still a
less than smooth introduction to a functional language compared with Elm,
Elixir, or even Haskell.

The advice from many Clojurians to use Emacs is fine if you happen to use it
anyway, but also seems particularly hostile to beginners.

Lightmod compiled all the demo examples without error for me.

I really want to explore Clojure and ClojureScript to build game servers and
web games, and this project looks like a great way to get people using the
language faster.

[1]: [https://vimeo.com/36579366](https://vimeo.com/36579366)

~~~
billrobertson42
I ran into that bug too. It's the first bug that I've encountered with
Leiningen after using it for more than five years. Sorry that that was your
first experience with the toolset, but it's far from the normal experience.

Also, if you're happy using an editor other than Emacs, then go for it. I use
it but only because I've been using it for quite some time, and other than the
fact that I like the way emacs indents Clojure source there's nothing special
about it in the way that I use it. Visual Code has nice support for the
language so that's a good option if it's more up your alley.

One area where I see Lightmod being really helpful is setting up the initial
project. Learning what's going on w/cljsbuild, figwheel and then how to
combine that with Clojure in the same project file isn't the simplest thing in
the world to say the least.

~~~
modernerd
Thanks for the tips and reassurance – it's good to hear that using Visual Code
is acceptable; it's what I'm more comfortable in, and I'll persevere with it!

~~~
moomin
It would be really useful if VSC supported the Emacs indentation style: it’s
what most people use in real Clojure code.

Paredit would be brilliant too ([http://bit.ly/paredit](http://bit.ly/paredit)
if you’re not familiar)

~~~
modernerd
It looks like there's an extension for paredit, but not sure how it compares
to Emacs:

[https://marketplace.visualstudio.com/items?itemName=clptn.co...](https://marketplace.visualstudio.com/items?itemName=clptn.code-
paredit)

For formatting, I've been using this, which supports cljfmt:

[https://marketplace.visualstudio.com/items?itemName=avli.clo...](https://marketplace.visualstudio.com/items?itemName=avli.clojure)

And the rainbow brackets extension has made code more legible while I've been
learning:

[https://marketplace.visualstudio.com/items?itemName=2gua.rai...](https://marketplace.visualstudio.com/items?itemName=2gua.rainbow-
brackets)

------
ekzy
There's a good cognicast[1] (podcast) with the author of this editor, he talks
about the motivation of making such editors.

[1]
[http://blog.cognitect.com/cognicast/130](http://blog.cognitect.com/cognicast/130)

------
arijun
Difficulty with setup certainly is a huge pain point with me using Clojure,
the amount of time I've spent wrestling with different libraries were just not
_working_ is way too high, and is probably the number one reason I don't use
Clojure today. Clojure desperately needs something like Anaconda to simplify
setup, this looks like it might help.

~~~
j_m_b
Really? Which libraries? Did you try using leinengen? One of the strengths of
Clojure imo is how well everything JUST works as opposed to python, ruby, etc.

~~~
arijun
I tried using leinengen and boot, each had it's own issues. I remember
spending many frustrating hours trying to get the live reloading to work.

I feel like a lot of the Clojure ecosystem is quite hacky, and if you can hack
around in clojure you can work around many of the problems, but if you're a
clojure novice each tiny hiccup is minutes to hours spent trying to figure
just what is the problem.

------
nulldata
Not to be confused with LightTable[1], an editor with Clojure live coding
support.

[1] [http://lighttable.com/](http://lighttable.com/)

~~~
wodenokoto
Is this still actively maintained? I haven't kept up with the project but my
impression was the original creator moved on and left the project in the cold

~~~
modernerd
[http://witheve.com/deepdives/lighttable.html](http://witheve.com/deepdives/lighttable.html)

The maintainer decided that a more fundamental change to programming was
required to improve the experience as radically as they hoped.

They're writing a new language and literate programming environment called
Eve:

[http://witheve.com/](http://witheve.com/)

It's early days, but the language has some very interesting ideas so far.

~~~
klibertp
Eve is - was, when I last checked - a poor reiteration of Smalltalk with a bit
of CWEB bolted on top. You can get much more mature implementation if you just
download Pharo, with the added benefit of Pharo being native, not browser-
based.

Chris is one of very few people in tech that I genuinely dislike, because he
managed to get me to believe in him and in LighTable, only to dump LT and make
me feel stupid. LT was an ambitious project, promising to finally deliver
something better than Emacs for working with dynamic languages and there was a
chance of it being completed in this decade. Eve is a moving target and after
two years it's not any closer to being a practical tool.

Personally, I need a modern, powerful editor, preferably polyglot, with tight
integration with languages runtimes and Emacs-level scriptability - and that's
what LT promised. It could have been a real, immediate improvement in how I
work with code. Switching to Eve development is adding a gorilla and a whole
jungle in fire to the banana we (LT backers) originally needed. Not to
mention, Chris failed to complete a simpler project, I see no reason to
believe he'll do a good job on Eve.

/rant

------
achikin
Highly appreciate Zach's Nightlight editor - it's one of the best Clojure
editors around in terms of design, simplicity and ease on usage.
[https://sekao.net/nightlight/](https://sekao.net/nightlight/)

------
Edmond
For those looking for an out-of-the-box web app platform for Clojure you can
checkout Solvent:

[http://www.codesolvent.com/static-assets/gif-studio/lang-
tes...](http://www.codesolvent.com/static-assets/gif-studio/lang-
test/shot.webm)

