Skip to content
This repository has been archived by the owner on Feb 28, 2020. It is now read-only.

Desired Features / Roadmap #5

Open
BorisKourt opened this issue Oct 12, 2016 · 9 comments
Open

Desired Features / Roadmap #5

BorisKourt opened this issue Oct 12, 2016 · 9 comments

Comments

@BorisKourt
Copy link

Hi Zach,

It could be helpful to start a roadmap or a list of project goals. Features/extensions/interactions that you are envisioning for the project, aside from requests or issues submitted by others.

I would like to contribute, but think that it would be easier to do that with some high level goals or ambitions as reference.

And thanks for bringing another great project to life!

@oakes
Copy link
Owner

oakes commented Oct 13, 2016

Hello Boris. Right now I'm working on adding a clojurescript REPL. It's turning out to be pretty complex because there are a lot of moving parts involved in setting one up. I'd also like clojurescript code completion and instaREPL, both of which are probably reliant on me first getting the standard REPL working. Other than that, I'm looking for ideas :-)

@oakes
Copy link
Owner

oakes commented Oct 13, 2016

BTW I have my current clojurescript work on the cljs branch. The cljs REPL works but it has no knowledge of the project. Not sure if I can accomplish that but we'll see.

@optevo
Copy link

optevo commented Oct 16, 2016

Hi Zach,

A cljs REPL would be great. I would also assume that if that works, support for *.cljc / reader macros would be easier.

As a suggestion for the roadmap, rather than trying to add every feature that everyone (including yourself) might want, perhaps focus on making Nightlight easily extensible. For example, add hooks to that can enable live changes to UI and behaviour and have a plugin management system. This worked nicely for tools like emacs and jEdit. Nightcode could then become an environment to hack itself (live!) as well as your own code... It would also let the community build the features they want more easily, as well as taking the burden off you.

Regards,
Richard

@coconutpalm
Copy link

I've been working on something like this for awhile now and would love to join forces.

For example, add hooks to that can enable live changes to UI and behaviour and have a plugin management system. This worked nicely for tools like emacs and jEdit. Nightcode could then become an environment to hack itself (live!) as well as your own code...

This is the angle I've been considering first.

I was an active Eclipse Platform committer for 7 years so I'm very biased toward this part. :-)

I chose Hoplon specifically because I think the spreadsheet/cell metaphor is very easy to understand, particularly for less technical users and because I have hopes (ambitions?) that this could grow into something nontechnical users would want.

Server-side scalability really needs classloader isolation for each sub-dependency or you wind up with conflicting dependencies pretty fast. I haven't solved that problem for Clojure yet. Eclipse uses OSGi for this but it seems not to be well-supported by the Clojure ecosystem. Boot with its pods comes closest.

WIP code is on Github at https://github.com/coconutpalm/datainmotion-server

@coconutpalm
Copy link

For example, add hooks to that can enable live changes to UI and behaviour and have a plugin management system.

Here are a few things I've run into along these lines:

  • UI scalability - The UI needs to be able to do things we didn't imagine.
  • JS dynamism - I've been teaching myself js while doing this so maybe someone knows of an existing solution for this. What I mean by this is that the front-end layer needs to be dynamically extensible by JS living on any CDN. But JS is so dynamic, this implies the need for something like Clojure's System to start/stop/restart JS modules. requirejs seems close but right now I don't see a way to do this at runtime with requirejs (links/hints welcome).
  • Polyglot. I want the extensibility layer to feel native to JS developers. There are a lot of JS developers. ;-) My focus is on Clojure/script, but I don't want to cut off developers from other communities (Yes, I'm looking at you, ScalaJS too).

Thoughts welcome.

@DogLooksGood
Copy link

Is it possible to just combine the cljs code of nightlight and the code of project into a single build. Then completion can be resolved. Another advantage is that UI preview in edtior become possible.

@oakes
Copy link
Owner

oakes commented Oct 29, 2016

I just released version 1.1.0 which adds some initial support for ClojureScript. It includes a UI preview in the editor, @DogLooksGood =) Check out the website -- I added a new section there that explains how it works.

@oakes
Copy link
Owner

oakes commented Oct 31, 2016

I made #nightlight on the Clojurians slack in case anyone wants to chat in real time.

@jefffriesen
Copy link

Any chance that keybindings can be added? This would help people coming from other languages and editors feel more productive. For me, that's Atom. Nightlight is a lot more robust than Proto-repl and it would be awesome to feel productive in it. Even some simple things like
cmd-x ;; cut line
cmd-l ;; select line
cmd-j ;; join
cmd-[ ;; indent
cmd-] ;; dedent

I would be happy to add Atom key bindings if there was a place to add them. People who use other editors could add their own. Then maybe there's a way to have your own local keybindings file.

Is this something you're interested in?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants