Why do Light Table need to emulate something? People have been executing code in REPL since forever, Light Table instant feedback seems like an extension to the REPL concept, with an ability to substitute all variables visually in-place. I can't see why it should be any different.
LightTable detailed critique: Concept vs Reality
11–20 of 136 posts
Re: LightTable detailed critique: Concept vs Reality
#12For Java, you want to get the most out of your static typing. So, you need an IDE filled with analysis tools.
For dynamically typed languages, Eclipse doesn't cut it. It gets sluggish and crashes too often and that's not acceptable when your language is designed for rapid feedback.
I want something that gives me feedback as if I were using Firebug, but feels like I'm typing into Notepad++, and it seems like LightTable could fill that need.
My thinking is that Light Table will live or die by how responsive it feels.
Re: LightTable detailed critique: Concept vs Reality
#13I agree with most of the points - documentation is well covered by IDE's, yep, I guess (don't use IDE's myself) ... finding functions is also pretty solved (personally I just use grep). But I disagree with the part about small functions and the example being contrived because real world functions aren't small and you can't just get your output directly like that. First of all, functions should be small. Anything you…
As he says in the article, functions should be small but real world code isn't always written the way you'd want it to be. I think instant feedback would be great for understanding a piece of code that I didn't write but the chances are that if I don't understand it it is probably badly factored with large function sizes and mixed responsibilities all over the place. Ultimately there will be code for which this featu…
Re: LightTable detailed critique: Concept vs Reality
#14This critique seems to be analogous to a low level language programmer dismissing the benefits of a high level language because both are Turing complete. Yes both IDEs may be able to do similar things, but it's the immediacy with which you can do them which sets them apart. http://www.paulgraham.com/avg.html
IMHO IDEs are overrated. If any process can be automated, it will eventually end up in code, not in a GUI.
[disclaimer: i dont use any IDE)
Re: LightTable detailed critique: Concept vs Reality
#15I agree with most of the points - documentation is well covered by IDE's, yep, I guess (don't use IDE's myself) ... finding functions is also pretty solved (personally I just use grep). But I disagree with the part about small functions and the example being contrived because real world functions aren't small and you can't just get your output directly like that. First of all, functions should be small. Anything you…
I think the author did not really get the motivation behind the LightTable concept. For those interested, it was this talk that inspired the guy(s): http://vimeo.com/36579366 It's about the instant feedback during development as opposed to the classic change/compile/reload cycle. Especially for concepts it's important to understand the intention rather than picking on it point-by-point (which in itself, while true fo…
Re: LightTable detailed critique: Concept vs Reality
#16It piqued peoples interest for good reason, because of a combination of many ideas working together in a clean interface. To criticise it for details ('this takes up half the screen', 'some of these things have been done before', 'this particular feature might not work for the kinds of work I do') is to entirely miss the point of a 'concept'. It needs constructive input (eg. 'this is a good idea, but would work better if done like that'). The kind of criticism provided here doesn't help anyone much at all.
Re: LightTable detailed critique: Concept vs Reality
#17"Since I am a Java guy and the IDE concepts are defined as being language agnostic and that support for additional languages can be added later, I will compare the examples using Java code and Eclipse as the IDE." And you end up proving nothing more than Java isn't a dynamic language where everything is available to you all the time without recompiling - and therefore won't really fit into to LightTable very well. Th…
I'd like to learn how a dynamic language here is different from "static" language like Scala. Care to explain?
See: SLIME http://www.youtube.com/watch?v=_B_4vhsmRRI
Re: LightTable detailed critique: Concept vs Reality
#18Clojure, Lisp, and similar languages are homoiconic. That means they're beautifully suited to an interactive environment such as that provided by LightTable. Conceptually, unlike typical IDEs, LightTable is not a series of scripts that will attempt to help you deal with common development tasks such as looking up documentation and refactoring. Instead, you're interacting directly with the language.
I think it's quite telling that in Java, documentation is done through Javadoc comments, which are ignored by the compiler and sought out by a completely separate tool in order to build docs. In Clojure, documentation is part of the homoiconic code itself:
(defn my-fn
"This is the documentation, can be inspected on the fly"
[] …)
Instead of being a series of very reliable hacks on top of a language that doesn't support docs, docs are part of the environment.Additionally, when programming in Clojure, you can do it interactively by modifying the environment on the fly. This was popularized by smalltalk, and is an extremely gratifying way to program: you can inspect and edit your program code while it's running, and have a fully-featured REPL into your program. This way of doing things blows GDB completely out of the water.
Note also that when coding functionally, files are often made up of many small single-purpose functions, which is actually much more maintainable than the example "real-world use case" function you provided.
Essentially, your entire argument is based around the assumption that Java is the right set of design patterns. I would argue that the Java language is deeply flawed, and leads to a 30:1 ratio of boilerplate code, markup, and structure to useful code. It's what makes Javadoc and IDE refactoring tools possible, but it's also what makes Java a nightmare to maintain and (for me) an extremely unpleasant language to work in.
I have never used LightTable, but for me, what it represents is a different way of thinking about programming. It's about interacting with your code directly and interactively. And actually, when writing Clojure, I often program in quite a similar fashion with existing tools (VimClojure / Clojure.tmbundle / Cake).