
Meet the new Light Table - bergie
http://www.chris-granger.com/2012/11/05/meet-the-new-light-table/
======
Sidnicious
It looks awesome but the new user experience was a little rough for me. Here’s
what I did:

1\. Click in the command bar. The autocomplete menu popped up.

2\. Click "new". The menu disappeared and the command bar loses focus.

3\. Click in the command bar again and type "new", hit enter (it’s pretty
common to be able to create new, unnamed files in editors). This message shows
up in the upper right hand corner of the window:

    
    
        Uncaught Error: Doesn't support name: (file:///Users/sidney/.lighttable/js/bootstrap.js:10616)
    

4\. Click in the command bar again and type new, then hit space. Ah, OK, I’m
supposed to pick a filename. Type one ("foo.clj") and hit return. A tab opens
up with the file.

5\. Type some code. Nothing’s happening on the right. Isn’t that supposed to
be the big thing about Light Table? (Also, the error message from the
beginning is still hanging around. Huh.

6\. I go to the command bar again, find the `connect` command. "Connect to a
project", sounds right. I type "connect" and hit return. "Connecting" shows up
in the bottom right of the window for a few seconds, and then this message
pops up over on the left:

    
    
        Could not find project.clj file at ""
    

7\. Okay. I run "connect" again with my filename. Similar message.

8\. I go back to the welcome page and notice the command+shift+enter command,
ah, OK. I hit it and a dialog shows up.

9\. I don’t have a project so I click "start a local client". The "connecting"
message shows up for a few seconds, followed by "Connected to Light Table
server". Awesome!

10\. …nothing's showing up on the right side of the window, the "connected…"
message disappears. Huh. I type command+shift+enter again, and get the same
"You're not connected" dialog as before.

11\. I relaunch and try again, same result. I’m stuck. I look at the
screencast again and try the instarepl command. Everything works, nice!

~~~
ibdknox
Thanks for this, it's a wonderfully detailed explanation of what you went
through - mind putting it into a bug report for me? We have a ton of user
testing to do and this is the first breath of air this particularly set up has
seen (it didn't even really exist two weeks ago!)

Some of these are things that just completely slipped my mind (e.g. clicking
on the helpers), some are things that are just that the platform is so new it
doesn't have any documentation, and some are just flat out busted assumptions
on our part.

~~~
spullara
If someone goes to that much trouble to explain a bug, I generally expect the
developer to file it. It is really a let down when someone has gone to that
much trouble and is asked to do more work.

~~~
hellweaver666
Absolutely... how difficult is it to copy and paste?

~~~
hisyam
The problem is the developer might want to get feedback from the user (eg:
some bugs can't be reproduced). If the developer just copy & paste into the
bugtracker then he/she will have a hard time communicating with the user.

~~~
spullara
Then you should reply with the bug ID and a URL to the bug that you filed and
then the reporter can add themselves if they feel like they want to keep track
of it.

------
aoe
Looks like a good concept, but I really cannot see how this would work for
functions with side effects? What if I write `File.rm("something")` and press
enter?

And how would this work with, say, Ruby on Rails development?

Can anyone throw some light?

~~~
ibdknox
As with all tools you have to consider if it's the right place to use it.
Things like the instarepl aren't very valuable in highly side-effecting code,
but being able to evaluate some block on command still is. You still have to
test if that code that removes a file is doing what you think it is as you
write it. That being said, you have full control over what does and doesn't
end up eval'd - just don't press cmd-enter :)

~~~
tlrobinson
_just don't press cmd-enter_

That seems like a dangerous approach. People could get in the habit of hitting
cmd-enter, and accidentally run some destructive code.

Perhaps you could sandbox the execution environment so destructive operations
are logged but not actually performed.

~~~
ellyagg
There are environments that have been behaving just this way for decades
(emacs elisp buffers, Satimage Smile for AppleScript text windows) and no one
complains or claims it's not well worth the risks. How is typing in any
destructive code anywhere or command lines at the shell and just hitting enter
different? If you don't know approximately what your functions are doing, you
should never call them under any circumstances.

In practice, this has just not been a legitimate concern. Yes, you have to
look both ways before you cross a busy street; people are pretty good at
looking both ways.

~~~
joesb
> If you don't know approximately what your functions are doing, you should
> never call them under any circumstances.

Then why would I use an editor that its main selling point is how easy it is
to do that?

~~~
calibraxis
Well, if you really want to be on the safe side of that particular power vs.
safety tradeoff, the repl code could run from (say) clojail.
(<https://github.com/flatland/clojail>)

------
joakin
I'm really curious about the architecture and stack of lighttable. Please
Chris if you could answer some questions it would be great.

How does it work internally?

What are the 'under the hood' differences between 0.2 and 0.1 and why?

Could you share some of those things learnt through all this time building
this interactive platform?

How are you doing to get a cross platform desktop app with web tech? (I guess
you still use cljs for it)

I'm really curious, and I wonder myself why nobody asks this kind of questions

~~~
mcdonji
I am also really curious about these points and would like to hear what Chris
has to say about them.

~~~
ibdknox
These are all things I plan to talk about in my next blog post :)

------
why-el
I love what Chris is doing, but I have yet to understand what Light Table does
differently from say Emacs's own lisp evaluation mechanism.

~~~
gtrak
My opinion is it's time for a UI-driven developer framework with the hackable
spirit of Emacs. I hope LT goes in this direction.

------
kami8845
Any idea when we can expect first traces of python support?

~~~
SandB0x
You might want to check out ipython notebook: [http://ipython.org/ipython-
doc/dev/interactive/htmlnotebook....](http://ipython.org/ipython-
doc/dev/interactive/htmlnotebook.html) and <http://ipython.org/videos.html>

It's a pretty awesome interactive Python environment.

~~~
kami8845
I have IPython. I want Light Table as well :)

------
sergiotapia
Competition is good and benefits the consumer (us developers) greatly! While I
cannot see how this would work and be useful for languages like
Ruby/Python/PHP, maybe the Light Table creator does - and I'm excited to see
what's coming.

I can't wait to try the finished product!

------
RKearney
Chrome alerted me that this file is not commonly downloaded and may be
dangerous. Might want to look into why Chrome is flagging your Windows
download as potentially hazardous.

~~~
sirclueless
It's probably just because the file consists of an unsigned executable inside
a zip file, which has to be one of the most common ways that viruses are
distributed.

------
NathanKP
I like the idea of Light Table but what is a deal breaker for me is that it
feels like there is an ever so slight lag between pressing a key on my
keyboard and the character appearing in the Light Table editing area.

I am very picky about the way typing feels in an editor, and if it feels
slightly laggy or slow then that editor is not an option for me, even if it
does have all sorts of other awesome features.

Does anyone else feel this or is it just a problem with the app on my MacBook?

~~~
ibdknox
I don't notice anything unless I have my machine doing some crazy stuff. That
being said we haven't done any real performance tuning yet. Out of curiosity
what macbook do you have? I run one of the 2011 airs.

~~~
NathanKP
I have an old 2009 white plastic MacBook, running Mountain Lion. This is
definitely an underpowered setup given its age, but I generally feel that it
is fast enough for the programs I use, including Sublime Text 2.

I've had the typing lag feeling with Coda 2 before, but that is to be expected
because Coda is such a bloated piece of software with so many features, trying
to run on my old MacBook. But I guess I expected Light Table to be a lighter
piece of software like Sublime Text 2, so I was surprised to find that when
typing in it I felt the same lag as I do when typing in Coda.

~~~
comex
Well, it's HTML/JS. Doesn't mean you can't make it fast, but it's a slightly
uphill battle, especially with large files.

------
yuchi
Perfect, now edit that T in the lettering to match the reversed L in the logo
;)

EDIT: name -> lettering

~~~
modernerd
Like this? <http://d.pr/i/SJhg>

I thought the same as you until I mocked it up. Perhaps they tried it too and
thought it looked a little too much like a seven: LIGHT 7ABLE

~~~
yuchi
I see what you mean. I'm not sure if the current lettering is better or not
than yours.

Surely it's easier to read, but the reversed L is a lot more iconic.

------
squidsoup
First of all, I love this project and await vim keybindings with bated breath.
Light Table + Clojure make me feel like I'm programming in the future.

One issue in this new build, the stacktrace/error widget feels a bit awkward
e.g. <http://i.imgur.com/RVYHU.png> Is this likely to become 'dockable' at
some point?

~~~
ibdknox
Yeah, I'm not happy with how that works yet. I ended up compromising on what
it does now, because I couldn't seem to get CSS to cooperate with me on how I
really wanted it to work. There will definitely be improvements to that bit.

------
Meai
I think you need to be more direct with what Light Table does. I tried
creating a C file and executing it, it prompts me to start a "local client"
(whatever that is). Obviously I could be doing more to inform myself but
skimming the first few paragraphs of this article didn't give me a better
idea, neither did the software. The scrollbar is also very hard to click on.
The minimize and maximize buttons look to have the same color on my screen.
I'm assuming I have a cheap setup, but that's how it is in the real world (I
hope I'm not adding snark here, but it really is). A tooltip on what they do
would be nice as well. If you get this working with a language like C# or
Golang, you'll probably get a customer with me because I like the general idea
of working with functions instead of files. Maybe you can add powerful addon
functionality if you don't plan to do this yourself.

~~~
Rayne
I'm pretty sure the plan is to have support for all of the languages be addon-
type things.

------
filipncs
How do I open files in a project after connecting to it?

Nothing seems to happen after I get the pop-up that the connection succeeded,
and if I open the files manually I still get an error when I try to evaluate
them (missing connection).

This is on Windows 8, I'll try from a mac later.

Btw, drag-and-dropping a file into the window breaks the program.

~~~
filipncs
On 10.8.2 it works. Is there any shortcut for opening files by namespace
names? Or of exploring the namespaces in a connected project?

------
gary4gar
I get the following error:

    
    
      $ ./LightTable: error while loading shared libraries: libsmime3.so: cannot open shared object file: No such file or directory
    

Instruction in how build/install LightTable on Linux? What the the
dependencies or configuration directives?

~~~
kinleyd
Same problem here.

Edit: Arch x86_64

~~~
olefoo
From what I'm getting:

    
    
        ./LightTable: error while loading shared libraries: libudev.so.0: wrong ELF class: ELFCLASS64
    

It appears that the linux version is 32bit only. :-/

~~~
ibdknox
Here's a 64bit one:
[http://temp2.kodowa.com.s3.amazonaws.com/playground/bins/Lig...](http://temp2.kodowa.com.s3.amazonaws.com/playground/bins/LightTableLinux64.tar.gz)

~~~
kinleyd
Awesome Chris - thank you!

------
samspot
I've been using the instarepl to learn clojure and I'm liking it a lot so far
for that purpose. However I still can't grasp how to use the project features.
I'd like to humbly suggest you do some hallway usability testing and work on
the learnability of the UI.

------
Cowen
That's convenient. I was just looking up Light Table last night when seeking a
decent IDE for my Chromebook.

I see that it's moved to a native app now, which makes it Chromebook-
incompatible. Is there still a way to access the browser prototype that it
started as?

------
ckluis
This project makes me happy. Can't wait for it to be extended to other
languages.

------
MatthewPhillips
Looks good, one suggestion: the 3 circles in the top left corner need icons.
It is non-obvious to me what they do, even after testing them out.

~~~
ibdknox
We'll likely do some more work to make it a bit more platform flavored - those
are specifically a mac convention. From left to right:

Close - Minimize - Maxmize

The one on the far right is fullscreen.

~~~
Andrex
Could you leave an option for using the native system windowing toolkit? I
prefer programs to feel as native as possible.

Keep up the awesome work though! I'm using Sublime while the project shapes up
but I'm still glad I helped fund on Kickstarter.

------
nagnatron
How can I buy the shirt?

------
eckzow
vim keybinding support?

~~~
cpdean
+1. To quote the article: " I realized the other day that the only time I
actually open vim now is when I manage to hose my instance of Light Table. "

True vim users can't work without their muscle-memory, so there's gotta be a
vim-mode for light table, right?

~~~
jhchabran
A such mode had been advertised. You can read on [http://www.chris-
granger.com/2012/04/15/light-tables-numbers...](http://www.chris-
granger.com/2012/04/15/light-tables-numbers/) that Chris is a vim user and
they'll use CodeMirror to provides such keybindings.

My main concern is that being vim'ish isn't just about the keybindings, it's
way more than that. For example, commands, like :map <leader>r :!bundle exec
rake spec %<cr> or in Vjj to select two lines then :'<,'>Tabularize/=>/ to
align the hashrockets on two selected lines.

Same goes for splitting panes, with C-w s and so on.

I'd kill for a "modern vim" and I'm really eager to see Light Table released.
As Chris is a vim user, I have good hopes for LT's usability in a vim way. If
it requires some changes in my vim habits and I can still control everything
without too much chordings, I'll happily deal with it :)

------
rodrigoavie
Thank you Chris!

------
jared314
Is a plugin API available yet? After using SublimeText 2, I want the fuzzy
search, the ST2 "Goto Anything" search box, in every IDE I use.

------
agentultra
I liked the post "All ideas are old ideas." Looking forward to seeing how
you've been inspired and what the result will be in Light Table.

Happy hacking.

------
elrzn
Wonderful, I'm using it to learn Clojure and work on 4clojure problems.

What I really miss for this purpose is having some kind of live doc feature.

------
geuis
Please consider increasing the brightness of your text. It's dark grey on
light grey background is very straining to read.

~~~
Rayne
There are other themes, but they didn't get packaged in this release. The next
release will have a bunch of new themes (and I think I've convinced Chris to
add my own tomorrow-night theme from <https://www.refheap.coms> codemirror
editor to it, woot) that you can set in the command bar with 'set theme
sometheme'. Solarized dark is included, but the codemirror version of that is
just as bad as the default theme.

------
nathell
On Windows 7, I'm getting:

 _CreateProcessW: The system cannot find the file specified._

after C-k instarepl -> Start a local client.

~~~
ibdknox
Did you by chance have the old one before? There may be some weird conflict
with the directories. Try removing HOME/.lighttable and restarting.

~~~
nathell
Nope, I tried removing HOME/.lighttable with LT turned off, it got regenerated
back upon restart and I'm getting the same error.

I'm behind a proxy; not sure if it makes a difference.

~~~
ibdknox
Ah, the proxy is probably it. Does your proxy bypass 127.0.0.1?

~~~
nathell
Quickly scanning the configuration, looks like it does. I've tried temporarily
disabling the proxy in Control Panel, but no luck; I'm not sure this is the
correct way to override proxy settings for Light Table, though. Where does it
pick its proxy settings from?

------
AYBABTME
My I dare asking where we can get those awesome tshirts?

------
z3phyr
Its standalone, now I call it a real IDE... I am happy.

------
dmvaldman
Crashes on open for my Mac OS 10.7.2 Anyone else?

~~~
ibdknox
Out of curiosity why aren't you at least on the latest 10.7? Which is 10.7.5

~~~
dmvaldman
Laziness? But if that will get Light Table to work, then I can overcome it.

------
z3phyr
Is it writern in clojure or clojurescript?

------
icholy
awesome!

------
martinced
Could Light Table, from the start, think about a "server mode"? Eclipse can be
run in server mode (even headless if you want) and you can then connect to
Eclipse using, say, vim + eclim or emacs + emacs-eclim.

This would be great because I don't doubt there are going to be features from
Light Table that I'm going to love and that I'm going to want.

But I also don't doubt that there's no way that the "text editor" part of
Light Table will come anywhere close to what vim and/or Emacs do provide.

