anmonteiro / lumo

Fast, cross-platform, standalone ClojureScript environment
Eclipse Public License 1.0
1.88k stars 85 forks source link

Clarifying Lumo's role #21

Closed gniquil closed 7 years ago

gniquil commented 7 years ago

Hi @anmonteiro,

After thinking about #16 as well as the file watch ticket, I think it's probably better to clarify the role of Lumo in the README. My current understanding is that lumo is very similar to clojure.jar in that it is the smallest minimal thing that allows one to run scripts. Sometime down the road, we should probably expect a separate build tool to give us additional ergonomics much like npm/yarn do for the node ecosystem or lein/boot for clojure. Is this correct? If so, I think perhaps if we put it in the readme, we would get fewer issues here :).

Moreover, if we do take the approach above, I'd propose build a new one instead of extending boot or lein. The reason is in order to stay in the same fast repl spirit, we essentially can not touch the JVM in any stage of the tool chain. Otherwise it will feel slow again. I'd love to hear your thoughts on this.

anmonteiro commented 7 years ago

You can consider Lumo a minimal thing that runs scripts. By ergonomics, though, I mean adding stuff like cursor hopping (or highlighting), automatic indentation via Parinfer, pretty printing / colored REPL output, etc. In short, things that make editing at the REPL more pleasant.

I don't see a separate build tool being created just for Lumo. I think it can be itself a build tool, though :-) What I meant in #11 was that something like that can be created externally (as a library, not a specific build tool) to allow for the use case. If not possible (because it is too dependent of Lumo's internals, we may re-evaluate the decision about including it in Lumo.

I plan to create a documentation site / user guide for Lumo down the road. There just hasn't been enough time for me to do it. I'll make sure to add a section about Lumo's purpose. Until then, people can refer to this issue.

Hope this helps.

tiye commented 7 years ago

Seeing from JavaScript side, we have npm, Webpack, Node.js which hold up our current front-end toolchains. When I'm using ClojureScript and trying to push it to more people, there are quite some problems in the way. So when I saw lumo, it's like filling one of the gaps by making Node.js in cljs more viable.

Now we have CoffeeScript, TypeScript and even Elm is fitting into the Webpack ecosystem, while ClojureScript is compiling slowly, hard to integrate with Webpack, hard to reuse npm code. I really hope there can be a step forward.

anmonteiro commented 7 years ago

I think integrating with Webpack is a non-goal of ClojureScript. The ClojureScript compiler relies on proven technology, the Google Closure Compiler, that is actively developed and here to stay. That said, the Closure Compiler now has a JavaScript version which is yet to be used in the ClojureScript ecosystem. I think Lumo can pave the way there, I have a number of ideas which I'll hope will see the light of day eventually :-)

anmonteiro commented 7 years ago

Looks like this went in the 1.2.0 release. Closing for now.