Live data from Hacker News

LightTable detailed critique: Concept vs Reality

eblog.chrononsystems.com

41–50 of 136 posts

Re: LightTable detailed critique: Concept vs Reality

#41
Everyone is jumping in to disagree with the OP.

I have to be honest: I thought the OP's points were very well made, and as much as I loved the LightTable demo, I think I immediately dismissed it, in my mind, as "looks cool, but can't be made".

I think there is a big disconnect between this author, a "working programmer" who actually writes code, and at least some of the commenters in this thread. Let me give my take on a few of the differences:

For one thing, the op mentioned that, while functions should be small, they usually aren't. And while functions, ideally, should be self-contained, most of the code people write is a mixture of calls to external sources, libraries, etc. I.e., things that can't be seen ahead of time. In practice, the OP is 100% correct. Most of the code I see, ends up being exactly this kind of code. I question whether anyone who claims otherwise has any experience with real systems. I just can't imagine anyone disagreeing that most code looks like this in the real world.

Another point of disconnect is the "I don't use an IDE" theme that's common here. I think you'll find that HNers, as a whole, are a lot more prone to be anti-IDE. Much of the "real world" programmers would be shocked that so many HNers give up the comfort of all that the IDE provides. And, at least to my mind, there is an attitude here that using an IDE makes you a worse programmer.

The truth is, the author is correct to point out that a lot of the cool stuff in the demo already exists. If for no other reason than to point out that, if you think a lot of the cool stuff shown in the demo is worth looking into, you might want to check out Eclipse or other IDEs.

Finally, let me make one final point, specifically to zacharyvoase and the others who think this post is "against the spirit of Hacker News", etc. I totally understand you, and I agree, the LightTable creator deserves a lot of credit for what he's trying to do, whether successful or not. But I think that a critique of the project, especially showing which parts of it have already been created, is amazingly beneficial. No, the OP did not offer many suggestions. But I imagine that, if the LightTable group did not know about some of the things that Eclipse does already, this post will help them out. And this post will certainly get them thinking about whether some of what they demoed is possible.

In fact, if it were me running the LightTable project, I might decide to start with an MVP of building LightTable as an Eclipse plugin, to check out some of their concepts.

Edit:

P.S. I shouldn't have to give "credentials" for expressing a view on HN, but I will anyway. I've been programming professionally for 8 years, and I now run a freelance/consulting software company so have seen many codebases.

More importantly, I'm an IDE and editor nut. Most of the start of my career was on Visual Studio, then SlickEdit, and since then I've tried out many IDEs and editors. I now mostly use Vim, while sometimes dropping into SublimeText.

I think Eclipse is an amazing tool, and couldn't imagine programming Java without it. I think most people here would be absolutely amazed at the help Eclipse gives in writing Java code, which I'm sure gives many programmers a huge boost in their time to code.

Re: LightTable detailed critique: Concept vs Reality

#42
post #31
post #19

Eclipse as a good ide ? mpprfrffrt

"It is difficult to get a man to understand something, when his salary depends upon his not understanding it." That's the blog of a company that makes a tool that integrates with Eclipse.

Ah, another ad hominem! Let me reply with an ad hominem:

Would you translate your statement into:

"It is difficult to get Prashant Deva to understand something, when the salary of Prashant Deva depends upon his not understanding it"?

No? Then don't make your senseless statement. Please argue his statement instead.

Or, maybe you're not a computer scientist, because you're not able to comprehend and participate in a normal discussion?

Re: LightTable detailed critique: Concept vs Reality

#44

Of course the original video was not perfect. It is a concept, not a fully fleshed out product. It 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 p…

Yes, but most, if not all, of the concept has been done before. Given that, I think the question why things would work better this time is one that the backers of this project should think about before starting development.

My input would be that I think the cute displays in the video will not work on real-scale projects. One reason is that I do not see how the most interesting part, the live display of a call graph, will work as nicely as displayed in the video with:

  - functions that manipulate disk or network state
  - large functions
  - deeply nested functions, in particular recursive ones
I can envision each of them, but all in a somewhat ugly way. The first would require programmers to write set-up and tear-down code; the second and third would eat screen real estate and/or would involve scrolling and/or collapsing.

If you have to write that setup and teardown code, I do not see how this interactive way of testing code is that much better than writing unit tests.

Translating that into constructive feedback: I would aim for building a good tool for education first; then, work on the scaling problem. But, be prepared: you should be happy if you get the education part only; you may not find a way to scale this up to real-world projects. And you should also realize beforehand that, if this does not scale, the educational program may be seen as a toy, only useful in the first half-year or so, only because 'real programmers' do not use it. It may take time to overcome that, just like it took (or even: is taking) time to overcome the notion that real programmers do not use IDEs.

[Going on a tangent: I would love to have a system that allowed me to split unit tests into API examples and all the other tests (timing tests, integration tests specific to certain bugs, etc.) That way, the documentation system could grab the first kind of tests and show them in the documentation.

I also would like to see a system that forbid me to write code that is not covered by a unit test yet. For example, in C, it would force programmers to write the header file first, the unit tests exercising part of the code second, and the actual code last. It should allow me to write the whole header file, then implement and test that header in parts, though. I also might hate it the moment I see it, but I need to see it to discover that.]

Re: LightTable detailed critique: Concept vs Reality

#45
post #39
post #38

Earlier quoted context omitted.

His argument is on how most concepts in light table are not novel. Branding light table as novel or groundbreaking is therefor incorrect and his post is called for. You seem to attack his argument on his background as a Java developer and not on parts of his argument. As far as I know, this is called an ad hominem attack and in my opinion does not belong on Hacker News. If you can find good counter arguments on his a…

first: I replied to zacharyvoase's comment and therefore my comment was related to his, don't take it in isolation. There are plenty of other comments here that explain why pdeva1 is coming from the wrong angle therefore I'm not going to repeat them. Chris never mentioned novel or groundbreaking , others have so go and ask them but please before you do that look up the difference between invention and innovation and…

As far as I can see, you're arguing:

"Since he's a Java developer, he delivers critique on LightTable".

thereby pointing out that any other kind of developer would probably not have made such critique, thereby relating the validity of his critique with him being a Java developer/Eclipse user, thereby being an ad hominem attack.

On your last argument I would like to add that on Hacker News it is clearly branded as the next big thing since sliced bread.

Of course languages such a Clojure, Scala and Haskell need more sophisticated IDE's than vim + plugins. Especially for larger projects. And as such I think the features in the POC are a good idea. Still, they are nothing new and I'd expect them in any modern IDE. I could add some idea's of my own (stealing from an IDE I use daily):

- annotate the source with a git history - highlighting based on AST instead of regex's - outlines

Anyways, we agree that Light Table is not novel, nor groundbreaking and it's not an invention. Exactly the point Prashant Deva was trying to make. Nothing to see here, move along.

Re: LightTable detailed critique: Concept vs Reality

#46
post #42
post #31

Earlier quoted context omitted.

"It is difficult to get a man to understand something, when his salary depends upon his not understanding it." That's the blog of a company that makes a tool that integrates with Eclipse.

Ah, another ad hominem! Let me reply with an ad hominem: Would you translate your statement into: "It is difficult to get Prashant Deva to understand something, when the salary of Prashant Deva depends upon his not understanding it"? No? Then don't make your senseless statement. Please argue his statement instead. Or, maybe you're not a computer scientist, because you're not able to comprehend and participate in a no…

Well, Eclipse is slow, crashes, has a lot of features but doesn't really do anything nicely (javadoc integration is damn awful tu use). More features doesn't mean better.

What i like about LighTables is that it seems to have few features, but do them well. It has a nice clean UI (even if it's just mockup, i don't think it needs anything else) and the UX seems nice too from what i understood.

Maybe what you didn't understood is that it's NOT an IDE for computer scientists : it's more aimed to visual programmer, webdev, or gamedev, creativecoders. People that want to do both design and coding.

BTW : i just trashed Eclipse, not anyone. I still use it because it's still the best ide for javacoding (even if i haven't done any in a while), which, to me, isn't really flattering for the state of coding IDEs.

Re: LightTable detailed critique: Concept vs Reality

#47
post #38
post #32

Earlier quoted context omitted.

not really, just that all of us come with a point of view and I think his is made clear by the work he is doing on that project. Never used it, looks interesting and useful for Java . That's where I think the problem is: if you have used only one tool you tend to see everything from that perspective.

His argument is on how most concepts in light table are not novel. Branding light table as novel or groundbreaking is therefor incorrect and his post is called for. You seem to attack his argument on his background as a Java developer and not on parts of his argument. As far as I know, this is called an ad hominem attack and in my opinion does not belong on Hacker News. If you can find good counter arguments on his a…

Ad hominem aren't always a logical fallacies, and, in this case, might not bet at all. Ad Personam are.

You should read Eristic Dialectics: The Art Of Being Right by Arthur Schopenhauer.

Saying he is biased because he is a java-only programmer isn't clearly a wrong statement, and it doesn't mean he's totally wrong either.

Just saying, but that's not the point of the article.

Re: LightTable detailed critique: Concept vs Reality

#48
post #29

Earlier quoted context omitted.

Java's annotations could be seen as 'part of the environment' (whatever that may mean). I often use annotations which indicate how a method should be used, and those annotations are used by static analysis to validate correctness. When using Java, I often change my program while it is running. recompiling classes on the fly. It works in most cases, and when it doesn't work, I believe other languages would fail as wel…

I use Java in my day job and I find annotations a real blight on the language. While I totally get the idea that they remove the need to write a lot of boilerplate code, I still find a lot of them too "voodoo" for my liking.

Agreed, they aren't the prettiest thing in Java and they only allow one 'layer' of annotating (you can't use expressions in annotations for example), they do prove it is possible to document your code in Java in a way that it becomes part of the 'environment' (again, 'environment' is ill-defined, so all arguments in this line are a bit frail).

Re: LightTable detailed critique: Concept vs Reality

#49

Earlier quoted context omitted.

yes! So this. I agree; Let's see some constructive criticism and ideas for how to improve the LightTable idea, instead of just trying to shoot it down as 'not novel'.

There is a valid point lurking in there. The instant evaluation model doesn't play nicely with side-effects. Exactly where side-effects occur can be difficult to determine, there's no simple way to work around this. This is less of a problem in Clojure, thanks to its immutable data structures, but they're not a panacea. I'm also not sure how well this would work in JS and Python, the other languages that Light Table…

you could mitigate side-effects by running all of lighttable in a VM, assuming no files and creating all the ones you need. Network requests could be intercepted. The key to make this workable would be sensible defaults, allowing you to just open it up and start a new project instantly, and allowing custimization for complicated projects.

Re: LightTable detailed critique: Concept vs Reality

#50
Apart from a sparser screen, the heart is "instant feedback". There are challenges in scaling this up from the demo, but I want to see what can be done - it's Research and Development, not simple implementation. Chris Granger has a solid background for this (on the Visual Studio team). And working code. :-) IMHO there are obviously solutions to these problems, but I'm not sure how graceful/usable they'll be. Maybe great; maybe just a significant improvement; maybe just good for some niche cases - we'll see!

Firstly, we can sandbox - including the file-system; even make a copy, so it runs without "really" changing anything (in the limit, there's virtualization). Second, some of these problems are common to testing, where mocking is a standard solution to the same problem of wanting to run just some code. [Perhaps a significant result will be a way of auto-mocking?] And even if you don't Test, you still run code to see if it's working - this is the same; just faster. How do you control what code you run? Light Table can incorporate the same techniques. OTOH, I run code with ctrl-tab, up-arrow + return. It's pretty fast. Easing the setup of that would be good though.

The full version is not going be as magical as the demo; but it seems unlikely that current IDE tech has reached perfection, and cannot be improved upon...

Post reply on HN