> "There is very little communication from the Lt-core committers about what is going on."
In all honesty that's because not much has been going on. We're not secretly plotting off somewhere. :) Everyone's just busy.I think 0.8 is basically ready to go, I fixed the last thing I knew about and have been using the browser tab eval and all to work on Eve without any recent issues.
> what is the capacity of the current core commiters team ? Do we need more active commiters ?
It seems pretty low. In my particular case I'm basically working all but a couple of my waking hours, weekends and all - so relying on me won't work, though I'm here to help answer questions and point people in the right direction as much as I can. If something really nasty comes up I can probably find a little time to help out with that as well. More committers might help, but unfortunately I'm not sure where we'd fine them. :(In terms of the larger discussion about how to proceed forward, I think it's time for an honest look at where things are. Even with a principled approach, I think I managed to build a system that only I can really get around in. BOT filled its goals of an architecture that is infinitely extensible and runtime modifiable, but that degree of power came at a cost - despite its simplicity the resulting program is very hard to follow. I've recently come to understand that this is because mixins are fundamentally an anti-pattern and BOT is basically dynamic mixins.Mixins hide control flow and add layers of indirection that make it hard to even see what the possible paths through the program are. Instead of a clear and obvious flow of data you have to hunt around to try and piece together the graph of possible events. My hope was that pushing as much of that into data as I could think to at the time would make it observable, but realistically a graph with more than about 20 edges is very hard to make much sense of and an IDE certainly has more than 20 edges. So while you can build a pretty incredible amount of functionality in less than a hundred lines in LT, doing so requires you to pretty much understand the whole system. This is a failing on my part. I optimized for keeping the codebase small enough that one person could work on it and along the way I ended up making decisions that ultimately made it more difficult for others to contribute.The industry has also changed pretty drastically since I started LT. During its creation CPS gained traction, React was created, the Clojure ecosystem basically rewrote itself... When I first started I was more or less the first person to use node-webkit, CodeMirror didn't even have a separable text model (we actually contracted Marijn to add it), and there was quite literally no tooling for ClojureScript. A whole lot has changed, and I would certainly do things differently if I were starting from scratch today. For one, I probably wouldn't have chosen to do it in CLJS. It's just too much of a moving target and architecture ends up being far more important than the specific language used. Using Clojure(Script) also reduced the pool of possible contributors. Starting over, I'd build the UI in an immediate mode fashion, though I probably wouldn't choose to use React directly. I'd scrap BOT for something that is a little less powerful, but far easier to reason about.Despite all of this though, I was surprised to see that LT usage is actually still growing and a little over 17,000 people have used it in the past month. Even in its current state people find it useful and an interesting entry into the space and I sincerely do hope it can continue on.> "There is very little communication from the Lt-core committers about what is going on."In all honesty that's because not much has been going on. We're not secretly plotting off somewhere. :) Everyone's just busy.I think 0.8 is basically ready to go, I fixed the last thing I knew about and have been using the browser tab eval and all to work on Eve without any recent issues.
> what is the capacity of the current core commiters team ? Do we need more active commiters ?
It seems pretty low. In my particular case I'm basically working all but a couple of my waking hours, weekends and all - so relying on me won't work, though I'm here to help answer questions and point people in the right direction as much as I can. If something really nasty comes up I can probably find a little time to help out with that as well. More committers might help, but unfortunately I'm not sure where we'd fine them. :(In terms of the larger discussion about how to proceed forward, I think it's time for an honest look at where things are. Even with a principled approach, I think I managed to build a system that only I can really get around in. BOT filled its goals of an architecture that is infinitely extensible and runtime modifiable, but that degree of power came at a cost - despite its simplicity the resulting program is very hard to follow. I've recently come to understand that this is because mixins are fundamentally an anti-pattern and BOT is basically dynamic mixins.Mixins hide control flow and add layers of indirection that make it hard to even see what the possible paths through the program are. Instead of a clear and obvious flow of data you have to hunt around to try and piece together the graph of possible events. My hope was that pushing as much of that into data as I could think to at the time would make it observable, but realistically a graph with more than about 20 edges is very hard to make much sense of and an IDE certainly has more than 20 edges. So while you can build a pretty incredible amount of functionality in less than a hundred lines in LT, doing so requires you to pretty much understand the whole system. This is a failing on my part. I optimized for keeping the codebase small enough that one person could work on it and along the way I ended up making decisions that ultimately made it more difficult for others to contribute.The industry has also changed pretty drastically since I started LT. During its creation CPS gained traction, React was created, the Clojure ecosystem basically rewrote itself... When I first started I was more or less the first person to use node-webkit, CodeMirror didn't even have a separable text model (we actually contracted Marijn to add it), and there was quite literally no tooling for ClojureScript. A whole lot has changed, and I would certainly do things differently if I were starting from scratch today. For one, I probably wouldn't have chosen to do it CLJS. It's just too much of a moving target and architecture ends up being far more important than the specific language used. Using Clojure(Script) also reduced the pool of possible contributors. Starting over, I'd build the UI in an immediate mode fashion, though I probably wouldn't choose to use React directly and I'd scrap BOT for something that is a little less powerful, but far easier to reason about (if people are interesting pursuing such a thing, happy to share my thoughts).Despite all of this though, I was surprised to see that LT usage is actually still growing and a little over 17,000 people have used it in the past month. Clearly even in its current state people find it useful and an interesting entry into the space. I'm seeing more and more of LT find its way into other things as well: the chrome dev tools now has something like watches, there's the swift playground, intellij now shows debugger values inline, and so on, which is all wonderful to see.I wish I had more time to work on it, but that's unlikely to change any time soon. We'll always welcome more committers, more stewards, more anything, and we'll help in any way we can. But what that ultimately means for LT is up to the community.Cheers,Chris.
--
You received this message because you are subscribed to the Google Groups "Light Table Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to light-table-discussion+unsubscri...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
same time, I'm always pondering how sustainable open source development can be. There must be a reason that the uber-smart folks at Cognitect decided, at least so far, to keep Datomic closed source.
--
You received this message because you are subscribed to a topic in the Google Groups "Light Table Discussion" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/light-table-discussion/2csnnNA1pfo/unsubscribe.
To unsubscribe from this group and all its topics, send an email to light-table-discu...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To unsubscribe from this group and all its topics, send an email to light-table-discussion+unsub...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To unsubscribe from this group and all its topics, send an email to light-table-discu...@googlegroups.com.
I've also been wondering what's going on with LightTable, and greatly appreciate Chris's response. I also like the idea of a stripped-down version just for Clojure, or maybe also including ClojureScript. There are already great IDEs for Python, etc. I've appreciated that LT is open source, so I can at least grub around in there to see how it was done, and learn from that. At the same time, I'm always pondering how sustainable open source development can be. There must be a reason that the uber-smart folks at Cognitect decided, at least so far, to keep Datomic closed source.
--
You received this message because you are subscribed to the Google Groups "Light Table Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to light-table-discu...@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "Light Table Discussion" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/light-table-discussion/2csnnNA1pfo/unsubscribe.
To unsubscribe from this group and all its topics, send an email to light-table-discu...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to light-table-discussion+unsub...@googlegroups.com.
Tx Chris for the honest and thorough response !
I'm hoping that Gabriel, Mike and Josh also chip in with their thoughts too.
I thought I'd share some initial thoughts after digesting your response:
1. Contributing
I'm prepared to help out in anyway I can within the limits of my available time. I have already been granted commit rights to the LT repositories which is great. However I don't feel that I'm sufficiently qualified (in Clojure/Clojurescript/Node/JS and the LT source) to make changes directly on master. I should however be able to start making more and more pull requests for bug fixes, enhancements and additional features.
That obviously implies that there needs to be someone else available with capacity for handling/reviewing/testing the pull requests.
Other areas I should be able to contribute directly, like improving documentation, reviewing issues on github, verifying/publishing plugins etc.
2. Stewardship
I guess this is now the most critical area to address for Light Table. It needs one or more people with the drive and sufficient capacity to plot out a course for the future of Light Table, both in the short and longer term. I think Gabriel, Josh and Mike did a heroic effort, when they stepped up in October of last year.
So the question is are anyone of the aforementioned interested/able to carry on with such a role and/or are there others willing to step up and try to take on such a task?
I would gladly try to support one or more stewards with whatever time I can spare and maybe eventually become part of stewarding Light Table myself if/when I'm qualified for the task
3. BOT/Architecture etc
I've found the BOT architecture to be incredibly flexible and extensible, but as you say It can become very hard to reason about. (The autocompleter springs to mind as one plugin I've found really hard to get properly to grips with). The flow of events is one thing that is certainly anything but trivial, but the use of atoms (shared global state) that can be modified by anyone from anywhere makes it even more difficult to reason about. Who knows how many plugins and functions meddle with the state of editor objects ? If state is modified all over the place, then obviously the system gets even harder to reason about. My tiny experience with clojure web apps has taught me that minimizing global state certainly makes it easier to reason about the system (and enable cool things like the reloaded workflow: https://github.com/stuartsierra/reloaded).
Maybe a transition away from the BOT to something simpler, but less powerful would be the right thing to do. It would be a pretty substantial undertaking though and maybe not the first thing to address in terms of a roadmap forward. To make it easier for people to create plugins (and contribute to LT core) I think documentation, how-to's, examples etc would get us a long way. People have already managed to make some really cool plugins, so I think it a lot can be achieved by lowering the bar for getting started and finding information.
I've been dabbling with React and ClojureScript and have firsthand experience with the benefits of an immediate mode approach to UI's. Moving towards something along those lines for LT makes total sense to me. Maybe react as is doesn't provide the best abstraction for an editor (btw didn't atom move away from react ?), but some of the principles it promotes certainly could.
4. ClojureScript
My entry to the Clojure world was through Light Table. So I guess I'm biased here, but to me, writing plugins using ClojureScript had a great appeal in itself (as opposed to Coffescript in Atom or JavaScript in Brackets). It has certainly been a moving target and lots of churn, but I think it's maturing everyday and we are using it with great success in my current project.
I'd vote for not focusing on moving away from ClojureScript, but rather try to find ways to upgrade the ClojureScript support to take advantage of the great developments here. Obviously we'd need to figure out a path forward to enable upgrades in the future as well.
In terms of handling asynchronicity I have a hunch that core.async might prove very helpful and powerful.
Choosing JavaScript rather than ClojureScript would certainly have dramatically have increased the pool of potential contributors. Maybe it would be possible to support writing plugins in both ClojureScript and JavaScript ? Not sure how though. It could be that it's to late for that now.
5. Plugin beginners note
My first plugin for Light Table was a language plugin (the groovy plugin). It was a daunting task indeed, but if there is a will there is a way. Very little documentation, but hey the source was there and mostly quite clear and understandable. There were also several other plugins to look at and questions I had was answered on the discussion forum. I can't say that it was ClojureScript that held me back, it was rather the lack of documentation and missing high-level picture of what parts a language plugin needed to consist of. A how-to guide here would have been a great boost.
To summarize my thoughts at the moment:
I hope others chip in on this discussion and that one or more stewards are prepared to try and carry on with bringing Light Table forward. Let it be known that I'm atleast here to try and help of it that happens.
In the meantime I'll be
- eagerly awaiting the Atom Shell version,
- plug along with trying to make the Clojure Support in Light Table even better with my upcoming clj-light-refactor plugin
To unsubscribe from this group and stop receiving emails from it, send an email to light-table-discu...@googlegroups.com.
Ugh, somehow I managed to get gmail to paste that in there twice. Here it is correctly:> "There is very little communication from the Lt-core committers about what is going on."In all honesty that's because not much has been going on. We're not secretly plotting off somewhere. :) Everyone's just busy.I think 0.8 is basically ready to go, I fixed the last thing I knew about and have been using the browser tab eval and all to work on Eve without any recent issues.
I do share Magnus' concern that there hasn't been a release of LT in a while. I do think releasing infrequently hurts the project. With some integration tests we could eventually have a quicker release cycle.
To unsubscribe from this group and stop receiving emails from it, send an email to light-table-discussion+unsub...@googlegroups.com.
Happy to also weigh in as one of the committers. Unfortunately, I also won't have much personal time to devote to LT in the short term. Real life beckons and I'm having to seriously cut back on my OS work (tempting though it is) over the coming months. That said, it would be great to see a community effort to reboot things – I think making an LT-style plugin for Atom is a particularly attractive option, although I'm not sure how extensible Atom's editor is compared to CodeMirror.I think I'm actually a bit less pessimistic about LT's architecture than Chris is. Maybe I'm biased, because for me flexibility was always LT's big selling point – it made a wonderful test bed for building IDE features and extensions. I definitely agree that it doesn't mesh that well with ClojureScript's model – bearing in mind that this is a language which was basically invented as a middle finger to stateful object oriented programming – and that some of the concepts could do with cleaning up. But those are basically aesthetic concerns, so it's not a huge criticism.Any powerful system is going to need best practices and guidelines for getting the most out of it, as well as a bit of trial and error to figure out those approaches. That and some careful design to make the system feel simple. If LT/BOT is in the middle of that process it's not fatally bad, and it would be a shame to take the shortcut of cutting down its power when there's so much potential to be had.
On 16 April 2015 at 01:49, Chris Granger <ibd...@gmail.com> wrote:
I invited you Gabriel :) So now there's at least two of us who can do a mac release.
On Wed, Apr 15, 2015 at 5:20 PM Sean Corfield <se...@corfield.org> wrote:
On Apr 15, 2015, at 4:50 PM, Gabriel Horner <gabriel...@gmail.com> wrote:I do share Magnus' concern that there hasn't been a release of LT in a while. I do think releasing infrequently hurts the project. With some integration tests we could eventually have a quicker release cycle.--I think having an official 0.8 release based on the atom-shell branch would really help, since then plugin authors could get their plugins working again on the new code base (Recall is the one that I most want to see working properly again — hint, hint!).Then trying to find ways to easy the process for more contributors going forward would be a welcome move, whatever form that takes.I’ve tried to enhance the global file search (to search only specific file types, by extension) but never quite got it working because I couldn’t quite navigate my way through the code base. Any documentation that helps folks navigate the code / architecture would be a big step forward.At this point I’m running the atom-shell branch as my day-to-day editor for all my development, built from source and run via this command:./builds/lighttable-0.8.0-mac/lightI’d certainly contribute PRs if it was a little easier to figure out how to add enhancements :)Sean Corfield -- (904) 302-SEANAn Architect's View -- http://corfield.org/
"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)
You received this message because you are subscribed to the Google Groups "Light Table Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to light-table-discussion+unsub...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Light Table Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to light-table-discussion+unsub...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Light Table Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to light-table-discu...@googlegroups.com.
Is there anything the community can help out with specifically to get the atom-shell version releasable ?
To unsubscribe from this group and stop receiving emails from it, send an email to light-table-discussion+unsub...@googlegroups.com.
Hi !
I might be the impatient type, but i'm really starting to worry about the future of Light Table.
There is very little communication from the Lt-core committers about what is going on.
The activity on github is certainly decreasing, this discussion forum is growing ever more silent and irc is almost dead. The number of new plugins and plugin updates are also in steady decline.
I know it's open source and people are busy with real jobs etc, but I still believe the community should sooner rather than later be informed a little more on what is going on and what the future looks like for Light Table.
Is there anything the community can help out with specifically to get the atom-shell version releasable ?
I'm seeing more and more of LT find its way into other things as well: the chrome dev tools now has something like watches, there's the swift playground, intellij now shows debugger values inline, and so on, which is all wonderful to see.
--
You received this message because you are subscribed to a topic in the Google Groups "Light Table Discussion" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/light-table-discussion/2csnnNA1pfo/unsubscribe.
To unsubscribe from this group and all its topics, send an email to light-table-discu...@googlegroups.com.
But LT is a tool for programmers, so its audience are all potential contributors!
To unsubscribe from this group and all its topics, send an email to light-table-discussion+unsub...@googlegroups.com.