Hacker News new | past | comments | ask | show | jobs | submit login
Light Table reaches 300k necessary for Python support (kickstarter.com)
102 points by michael_fine on June 1, 2012 | hide | past | favorite | 35 comments



The bp editor has similar features (code bubbles), though dynamic evaluation and code bubble workspaces are still in development. And I'm pretty sure it won't cost me 300k to finish it. http://blitzprog.org/


More feedback - I like the site's appearance just fine (I use low contrast colorschemes when programming so that's fine for me). But it's also pretty overwhelming with the sheer word volume on the first page. I don't yet understand why I would use it. I find that it's hard to interpret much of the promotional copy. Suppose I use (just to choose something) Ruby, what sort of projects or reasons should I switch for?

Editing on an AST is a neat idea. I think it is a neat idea for an editor. Coupling tightly to a particular editor is going to hurt the adoption of your language, just like coupling to a particular language hurts the adoption of your editor.

But it seems like you have some neat ideas and I hope you are not too discouraged by the negative feedback.


Appreciate it, sorry that I don't have the time at the moment to give you a detailed answer. Short answer would be: Performance, Scalability and Reusability but that sounds too abstract. Maybe I'll find the time to write an article about future plans.


This is a neat concept and I liked it. The website is a bit confusing and I thought BP is a text editor like LightTable. The links are clickable and doesn't lead to anywhere added to the confusion. A few use cases will be helpful. Is it customizable and supports other languages?

I would love to see this evolve into something bigger. Keep up the good work!


Thanks, it is really motivating to hear this. I'll definitely keep working on it and there are some planned features which I didn't even mention yet, I just need to find the time to develop them. Support for other languages is currently not the primary goal but it could be implemented later.


That website is awful.


Alright, what do you want me to fix then?


Not the op, but some considerations:

The screenshot isn't readable, feels odd tacked on at the bottom, and if you click it, you don't get an enlarged version. This is a language, not an editor, right? That's what the title says. But where is the hello world? Where is the list of snippets to give you a feel for the language?


Thanks for the suggestions, I'll try to work on it. Both the language and the editor are currently in development (it's just an alpha version) but as a user you need to use the editor due to technical reasons (syntaxless). Of course you could write your own editor and just use bp as a standalone compiler but that would mean you need to develop an editor that can produce the generic XML output. I'm pretty sure nobody wants to do this so I'm working on a default IDE to make it more user-friendly.


It requires a lot of effort to get information. The embedded auto-playing video reminds me of pre-Facebook social networking, requiring further effort turning it off (especially after scrolling down trying to figure out what's what) before a user can then move their cursor around the site to access the content they wants.


Thank you, I modified it a bit so that this shouldn't be an issue now.


Do you really need somebody to tell you that black-on-black text is maybe not such a good idea?

Any why the hell is there a music video?


I still can't believe people are paying this much attention to a glorified text editor.


As programmers, we spend most of our working time in glorified text editors (I'm using mostly Emacs at the moment, which that is certainly an apt description of). I guess it's natural to be excited about new alternatives for our primary tool.


Light table is a neat concept but there is a lot more to an efficient text editor than that one concept...


Psst, dont tell anybody, they are asking for money because they know a concept is not enougth and the need money to implment what you call 'a lot more'.


Good, so you understand that most of the problem is not this one concept. How does the one concept justify reinventing the wheel? There are several very good editors and IDEs. What is wrong with them?


They are just glorified text editors is what is wrong with them (to re-use your initial argument).

This concept/potential implementation has more syntactic intelligence.


Yes, and what's this Internet thing exactly, if not glorified information exchange?

Or the universe, if not glorified matter?


I would love to run Light Table on a Surface http://www.microsoft.com/surface/en/us/default.aspx Feature request! :-)


As if money would magically make hard things happen :)

Seriously, what if Python is specially hard to support for some reason? I feel if it was in the easy-to-medium-hard space, there would be a Slime port to Python, and if there isn't, its because its probably hard...


> Seriously, what if Python is specially hard to support for some reason?

Many of the cool features in LightTable are already supported by fancy python interpreters like iPython and bPython.

LightTable must either implement a Python parser and a partial interpreter/evaluator that is used to analyze call graphs and such or use the relevant parts from the Python core. Not a simple task to implement (and maintain) but most definitely doable.


What call graphs? Everything in python is call-by-name. `globals()['foo']` isn't exactly a very strong reference, and anyone can change it.


In practice, those things are hardly changed. When they are, users understand that the IDE might not be able to help them,


Yep, that kind of thing is pretty strongly discouraged anyway and as a Python programmer I definitely have never expected (say) lint tools to understand them. Life goes on, it's just not that important for getting things done.


>As if money would magically make hard things happen :)

If those hard things require people working full-time on solving them, then yes, money does magically makes them happen.

>Seriously, what if Python is specially hard to support for some reason?

This is engineering and computer science, there are no magical reasons, only specifics. What would make Python difficult to support exactly? It has full introspection, several IDEs like PyCharm, it's straightforward to parse, it has a REPL, etc etc. I don't see how Python is harder to support than say Smalltalk (which had excellent IDE environments 20 years ago).

>I feel if it was in the easy-to-medium-hard space, there would be a Slime port to Python, and if there isn't, its because its probably hard...

Or maybe whether a Slime port exists or not reflects just the lack of any volunteers to undertake the effort and the lack of commercial interest too. Not to mention that Slime, IIRC, is for Lisp like languages. What would Python had to do with it?


Well, I imagine one reason is that there are exactly zero static call sites in Python. Everything is called by name, and monkey-patching is, for better or worse, an accepted and widely used tactic. I have seen projects that use Python's source code introspection facility to rewrite code inside decorators. You can even define new keywords in this way.

Decorators in general are a widely used tactic to execute arbitrarily Python code with potentially unknown runtime state to transform the Python code you just parsed into a totally new function.

There is just very little you can learn from parsing Python code, you need runtime state to understand some functions. It is potentially as difficult as Lisp, and with a much larger set of primitives to cover.

And if you take the approach that you aren't going to just parse, you are going to implicitly execute the Python that is being written, then you need to sandbox the whole of Python. It's not like a REPL where everything is explicit and if a programmer writes subprocess.call(['rm', '-rf', '/']) they want their filesystem to blow up. You can't just go around implicitly executing WIP code.

Now, a reasonable approach might be to punt on the whole issue and say, "If your code doesn't execute in a vacuum, with standard python libraries and no funny business with decorators and monkey-patching, then we won't touch it" but I think the reality is that there is a lot of important Python code that can't be correct in such a vacuum.

It's not a total lost cause, but I do think there are many good reasons why a Python Light Table is very hard.


Monkey patching is NOT widely accepted in Python, just the opposite. For an example look at gevent, which is actually quite useful and elegant but often panned and avoided in the Python community because it works by monkey patching. The same attitude is not equally present in every dynamic language.

Where you are certainly right is that monkeypatching may occur in a project and this is only one of many ways that Python's being very dynamic makes it extra hard to write static analysis tools.

The rm -rf problem is not as bad if you are previewing (say) a page view, which hopefully is not being developed on a production server and hopefully doesn't contain an rm -rf. But I agree that solving this in the general case is probably intractable without some kind of container.


> monkey-patching is, for better or worse, an accepted and widely used tactic.

I'd dispute this.


>Well, I imagine one reason is that there are exactly zero static call sites in Python.

Are there in Smalltalk?

>There is just very little you can learn from parsing Python code, you need runtime state to understand some functions. It is potentially as difficult as Lisp, and with a much larger set of primitives to cover.

Yes, but Clojure, a "Lisp", is supported no? If in that case it's the JVM that provides extra runtime intelligence, they could make it support Jython instead of CPython.


Would be great, when they got android support (for tablet). And with an Bluetooth keyboard you could rock also a lot. I don't know how complicated this is, because of the dalvikJvm engine.

But this IDE is amazing, really nice. Would be great to get also Rubysupport (with plugins you can Rock this also i think).

Does anybody know if they are working with flash, opengl or something like that? The look remembers me on Adobe Air and i hope this is not their engine.


Up next... Ruby!

How much I wonder? I can't decide whether it would be more complex than Python or less...


It seems like the difficulty would be relatively similar.


Why does this project keep reminding me of Bitcoin?


In both cases, the potential for change is large. It's the adoption of the concept that will decide if it will change everything or remain a niche thing.




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

Search: