Hacker News new | past | comments | ask | show | jobs | submit login
LightTable 0.5.5 released (groups.google.com)
107 points by DanielRibeiro on Oct 11, 2013 | hide | past | favorite | 51 comments

Anyone out there spending any substantial part of their workflow in LT? Which languages? Would be curious to hear an experience report.

I check in every once in a while to see how it's coming along. The 0.5 series seems nice and I was impressed by the instarepl, but have yet to spend any real time with the editor.

I use it exclusively for all my clojure work and have been for a while. It works well, and especially shines with its REPL integration, and when paired with Leiningen. Chris really has done a great job at keeping things minimal and elegant.

However, I use it because I'm a vim user and clojure has never had stellar support in vim (whereas Light Table--or rather CodeMirror's editor--has vim bindings). If you're an emacs user, Light Table might not offer anything over existing emacs tools.

Curious, have you tried vim-fireplace? I'm enjoying it a lot, though I haven't tried lighttable.

Quite happy with vim/fireplace here, though I'm still pretty interested in lighttable.

I've had the same experience with Clojure in vim, and that's great to hear. Thanks!

I'm impressed by how LightTable works with iPython to provide a good environment for data analysis, but I'm keeping my fingers crossed and wishing that the stars will align to see LT be the go-to environment for Julia. They are both early projects, and seem to be a fantastic complement to one another. Julia also is able to talk to the iPython notebook backend, so I don't think this would be so difficult. I only wish I had the time and expertise to do it myself.


I actually spoke briefly with Stefan at the very beginning of LT about how Julia could fit really nicely. It's something I'd like to see myself when the plugin stuff is released :)

Do you prefer Light Table over IPython Notebook for data analysis?

I'm not sure yet, but I think so. I need to spend some more time with LightTable, but I think it has the potential to cover all the ground the notebook does but with a nicer interaction style (more keyboard-driven).

The IPython notebook protocol is a pretty good general protocol for remote REPLs. We're planning on making sure that the same essential API works for both the Julia command-line REPL and IJulia (there's some common functionality at the moment, but it could be factored better). I wonder how possible it would be for LightTable to interact smoothly with any IPython kernel.

Does LT evaluate expressions as you type in python or you still have to submit each line to the interpreter?

0.5.6 is out now:



* FIX: handle massive numbers of messages from nrepl without blocking * ADDED: Clojure prints can now stream, allowing you to (print) and see the result without flushing.

(print ..) now does what you'd expect :)


Based on Chris Granger's presentation at StrangeLoop I get the impression that he's moving on to something else now? The presentation was a little scattered so maybe I misinterpreted, but he sounded like he was starting over with some other thing that he didn't really give any details on.

Nope. What I presented there is a natural place for LT to end up eventually. :)

Didn't you end it with a new product name? I left the auditorium a little disappointed, I got a vague impression that LT wasn't living up to your expectations or something.

The project has a different name, but it's not divergent from LT, it's an extension of it. JS, Python, and even Clojure are far from the ideal for what we could be doing if we took the ideas behind LT to a logical extreme. What I showed is a very early example of what that might look like.

My end goal is to "fix" programming, that talk was me explaining that it will take far more than what I originally showed in those first videos of Light Table - we'll have to think about the problem differently. That doesn't detract from the value of LT in any way, and I still believe it's out to fill a very important gap in the programming world. But filling a gap is just the first step, not the end of the line. And since we have the opportunity to push some boundaries and try to find something "better", I fully intend to do so. :)

To be more explicit - LT is our focus and you'll see more and more of the thinking I expressed in my Strange Loop talk start to show in it over time.

I interpreted it (aurora), as the next gen instarepl. A tool that helps you introspect running code and intermediate results, but more ambitious than just textual substitution of variable values. It would fit right in as a component of light table.

I really liked how some of the inspiration came from how non programmers code. Think excel macros (gasp).

LightTable and the source material that inspired me mean a lot to me, but I don't use it because I'm a really conservative adopter of technology.

HN: Do you use it and should I use it for my HTML/CSS/JS? As I understand it, Python but not Ruby is supported, but I could just keep using xCode or Coda for Ruby. What do you think?

Genuine question: Is there a big advantage using an editor designed for HTML/CSS/JS? I do all my web work using straight Vim, but maybe I'm being a luddite... What am I missing out on?

There was a vid floating around where you could edit the js and the browser could see the changes without a browser refresh. They were interacting with the code in realtime via the browser api. Great stuff.

I wish LT had more workflow vids as it tries hard to know hard to be a next gen editor it can be a little difficult to find the cool features.

Here's a video of just that[1]! Except in Emacs instead of LightTable. Emacs is like a somewhat crufty version of LightTable that's also a few decades older :D. "Some assembly required."

[1]: http://emacsrocks.com/e11.html

From what I can see, all of the sibling links just eval javascript. I believe LT goes one step further and uses the jit to replace code, so that even closures (eg event handlers attached to the dom) are updated to use the new code.

That's correct! We're not just doing window.eval(yourCode)

There's an emacs mode for that: https://github.com/skeeto/impatient-mode

Shameless plug: that's also possible in VIM with [1].

[1]: https://github.com/Bogdanp/browser-connect.vim

Cool! Are you using remote debugging for that? I wrote one recently that watches the file system for changes and keeps it in sync with chrome. It's really useful because you can change your js without reloading or losing existing objects. I have an angular project that takes a long time to go through the refresh cycle so it's a life saver on there. Also, because it just runs on the file system events it's text editor unaware.


One more to add to the list: http://livereload.com/

In my experience vim is pretty good for JS/DOM development. Most IDEs out there targeting those stacks can't actually do much since JS is too difficult to do good code completion on. Aptana and WebStorm try their best to be good IDEs for this. I prefer LT over those. But really, I can't say you're missing out on much by using vim (and in fact are maybe on a better path). Compare this to Java where I'd think you're really cheating yourself by not using an IDE.

Netbeans gives me live feedback of JsLint, the code completion engine is quite good, type inference, refactoring, popups with information from JsDoc, outline navigation with inference from most AMD patterns.

CSS editing allows me to see the styles graphically.

HTML editing allows for easy navigation between CSS, JavaScript and HTML elements on the page.

The current beta version allows for 2 way editing between IDE and browser (chrome).

Can I do all of this in vim?

Why would you use a text editor if you need IDE features?

Because OP was suggesting a 70's development style, hence my remarks.


But in my experience, developing JS and HTML in Netbeans feels like 70s style development. After using Eclipse (or Netbeans) for Java development, I find JavaScript development never is that great in IDEs. Maybe they've optimized certain use cases of JS auto-completion and type inference, but for me it always feels like the IDE is just an editor, and a lousy one at that, compared to vim.

Netbeans invested a lot into dynamic languages support when the JRuby team worked for Sun.

That work has been used for JavaScript as well.

IntelliJ does an amazingly good job of Javascript + html + CSS code completion, inspection, and reformatting. I primarily program in Java and I expected basically no IDE support for Javascript, but I was pleasantly surprised when it started warning me that imported files don't exist, my jquery selectors don't match any element IDs, my CSS is invalid, etc etc etc.

What doing web-dev is just edit in vim using Syntastic[1], and a couple other[2][3] useful plugins.

1: https://github.com/scrooloose/syntastic.git

2: https://github.com/pangloss/vim-javascript.git

3: https://github.com/digitaltoad/vim-jade

Forget the editor, what I'd like is a browser that reloaded the DOM every time it saw that a source file change.

You can do this with livereload: http://livereload.com/

Grunt has a live reload plugin that is fairly easy to set up

I'm not sure that's really how it works though, right? It does an actual refresh of the page which is no good if you have lots of state. See my comment about (my) chromesymc above.


Webstorm by Jetbrains has some really nice features if you are doing a lot of JS development. It is an IDE, but if you are ok with that it is quite good IMO

Live preview would be one big thing.

So people decided to argue a sub-point of my question but not a single person would answer it directly? This is a community, do what you want, but I'm actually seeking your advice on what technology to use! Isn't that HN's dream??? Fulfill your destiny HN I need to decide on an IDE!

Maybe noone knows the answer. I certainly don't.

This guy does some nice clojure screencasts in light table and I think they show it if off pretty well, for people who are curious: http://www.youtube.com/watch?v=qxE5wDbt964#t=3m00s

(I don't have my headphones on me so I don't know what I cut out, but he starts using light table at ~3 minutes in).

Edit: his intro to datomic is really good for anyone looking to get started with that

This is a very good demo of the basic functionality. The in-the-moment appearance of some variables could be very helpful.

Side note: his explanations of regex made me shiver.

Were his explanations bad? I don't remember anything wrong with them.

How does LightTable work for Go? Anyone have any thoughts on it?

As far as I'm aware there is no Go support.

It primarily supports Clojure and Javascript, with Python support somewhere behind that. There is also some support for HTML and CSS.

Unfortunately, that's right.

I really like this but don't use it because, although it has a vim mode, it's not really vim - as far as I can tell, you can't use your .vimrc or plugins. If vim could be somehow plugged in to this, that would be awesome.

I’d like to call out the Visual Studio extension VsVim (http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-...) as doing a Vim emulation mode right. It actually does run your .vimrc, ignoring commands it doesn’t understand. So when I installed it, my custom mappings were already set up.

But I think supporting Vim plugins is too much to ask for in any other environment. Often, the reason you’re using another environment is because it has great plugins of its own that you want to use. It would be a lot of work for little gain to make an editor support Vim-style plugins if it already has its own better way of writing plugins.

I love the LightTable "waY". But unfortunately as an Eclipse user, it will probably take me a long time before I want to adopt it. Even though Eclipse is a bulky heap, You can make it so easily adept to whatever you want to program. Sub <0.5 LT versions have been disappointing / too buggy for me to seriously consider. I'm really looking for a LightTable way of a truly modular editor.. (That means without having to switch workspaces).

Applications are open for YC Winter 2024

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact