I don't mind if the future is specific. But its really wrong to say IDE's like Eclipse don't do one specific task well.
Eclipse really makes Java programming very easy. And I can tell you minus Eclipse programming in Java would be a very frustrating experience, given the verbosity, configuration mess and XML's all over the place. Eclipse these days is advanced enough to really blur the difference between and novice and a expert Java programmers. So by any measure I would say eclipse already does what light table aims to do. The only problem with eclipse is its too heavy, chews a lot of memory and becomes very heavy as things go on.
What we expect from light table is really what things like Emacs and Vim already are, plus what they miss. Which is modern GUI candy, easy configuration, availability of packages, stuff like refactoring, bench marking, auto complete and Intellisense easily available out of the box. Along with evolution with modern needs and demands.
So that is why what we really needed was an Emacs + all that I mentioned.
I think it will be nice if at some point requirements are frozen for Light table. Because things like this really slip into Second systems effect easily.
According to me Light Table must be Emacs for the Modern Generation. Anything else, and it won't be impressive. A thin editor, extensible by lisp. All lisp and other Emacs editor goodies but with all the modern demands.
I would say eclipse already does what light table aims to do.
Can you come to a realization in the middle of an Eclipse debugging session, get a great idea for making yourself more productive, take time to script yourself a working and fully debugged extension of Eclipse and continue what you were doing 20 minutes later?
I've done precisely this in Smalltalk on many occasions. You can script something like a custom browser that shows you everything that uses function A and also function B and has a reference to class C (and with complete syntactic accuracy) in around that time.
I suspect that this kind of very small grained toolsmithing is common for really good programmers in dynamic environments. The only problem is that it's been harder than necessary to integrate that with the most commonly used coding tool. (TextMate's ability to export selections to scripts is very nice, but it can go farther than that. Emacs is very powerful for this, but not everyone wants to script in elisp.)
It's not that Light Table is going to do something unprecedented. It's more like what git did with quick access to diffs: a quantitative change can become a qualitative change. Change the cost-benefit of toolsmithing, and you can use it in new ways.
These were examples of extensions to make a point and not at all what we'll be focusing on. What we're making sure of is that the platform for such things exists and enables all of the things that old UI's and such don't allow.
I think the parallel to emacs is a good one and while I certainly won't say at this point that we'll be the "modern emacs", it's our hope we can come close.
What I worry about Light Table is what it won't be from Emacs. At the end of the day, Emacs is still a text editor, and still edits files. This means that I really can use it for anything, doesn't matter if I have a mode for it, or an embedded compiler/REPL. It still just works, and we can't forget this if we want a modern Emacs.
Emacs was born in a world of textfiles, Light Table shows us a post-textfile world, but before we can get to the future, it needs to be able to survive in the world we live in today, which is one where textfiles are king.
> minus Eclipse programming in Java would be a very frustrating experience
I'm not sure about that... Eclipse gets fatter and slower with each release. Of course, I still use it because Google really wants Android developers to do so. In my opinion, the most frustrating thing about using Eclipse for Android work is that it crashes every time I try to export a package, unless I close every open file and restart Eclipse before trying. (the problem is mitigated by disabling automatic builds)
I guess that's because Eclipse runs on Java and Java is wasteful. It would be really nice if we could have a "native" equivalent of Eclipse, with less bloat.
I don't quite understand what the difference is between Light Table's modes and IDEs' plugins. Domain-specific components are exactly what make IDEs 'integrated'; without them they are generalised editors. But there is absolutely no difference, as far as I can tell, between Light Table's new SQL mode and an SQL IDE plugin.
I'm personally much more fond of the Unix 'tool approach', in which there are no task-specific modes or plugins, but tools can still be composed ad hoc, as in Plan 9's Acme.
Sure, anything can be built given enough time :) The difference is that those modes can be built in a couple of hours with arbitrary UI and virtually any interactions you can think of. It's hard for me to imagine being able to build any of the things I showed in say Eclipse in any reasonable amount of time.
The idea is that Light Table will be built from the ground up to support very dynamic environmental contexts in which you can place anything.
Same. At least you have my upvote, for what it's worth!
Light table looks to me (with all the respect due to the work of the authors) like a fad where people get all hyped up about a product. I mean there's nothing revolutionary and while looking at the video I was thinking "boy this is too confusing!". I also believe that when the project is going to have 500+ lines of code per file, the way it's done now, is going to be horrible to deal with it!
There are other stuff that bug me out: when I program I don't want rounded borders and everything. I don't want 40 different colors.
With all of the demos and information posted I still have trouble visualizing this working for real-world applications. A specific example: in the Python/Flask demo, functions were added to the current view as it was called. How would this work in a more complex case with calls to many functions, each which call many more functions (and so on), each belonging to different objects, etc.? The view would quickly become a huge list of functions and code blocks, most of which you probably don't need to see at any given time, and at this point it's no more useful than plain old user-curated tabs.
That's just one example. The same conceptual problems pop up for stuff like on-the-fly code execution (what if your code depends on user input or many SQL queries or files that may or may not exist at that point), benchmark mode (benchmarking a complex app is obviously a lot more complicated than just running two code blocks side by side), etc.
I know this is just a demo and it's all very early in the process, and I'm not saying that this should be a solved problem yet, but I just can't picture in my head a way that this could ever be a solved problem as long as LightTable remains somewhat similar to its current state.
Right now it goes at most one level deep into the call tree to prevent what you're talking about. The thinking I've had so far is that you then have a few options. You could go to one of the specific functions and say I want to see everything, you could go to a specific token and bring up its definition, or you could "focus" it to switch the starting point to that function. I think any of those could work, but I haven't tested them yet :)
To your second point the normal caveats of a replish environment will apply to any code execution stuff :) And the benchmarking mode was a simple example for working against functions once you already know they're the bottleneck. In a real application you probably need help getting there.
I agree and I think a big part of the job ahead is to understand how we can ensure these sorts of experiences mesh and flow together when working on something larger. Fortunately, Light Table itself provides a great project to prove that on.
They could display it as a graph with function names like a call stack. Most IDEs support most of the features shown in a piecemeal fashion but Light table seem to have the features more integrated, reducing the friction between coding and testing.
It is so sad that Vimeo is blocked by many Indian ISPs for silly reasons. The whole Internet feels crippled. There must have been at least a dozen videos I wanted to watch today that were recklessly censored. Thanks for the youtube link. I think we need a Redundant Array of Cloud Videos.
Thank you for taking time to put it on Youtube also! I really liked the website example. Reaching to the right code in the right file gets cumbersome pretty quickly in a project of even medium size!
A 'macro system for tools'. Isn't this what the academic bozos call Language Workbenches?
Extensible tool-building platforms for DSLs are hardly anything new. Reading things like this, i sometimes worry that the HN-circling web crowd is reinventing things that others invented just a few years ago. Like some sort of collective not-invented-here syndrome.
E.g. Check out MetaEdit+ - their website isn't Silicon Valley Sexy, but the tool is amazing. And has been, for the past 10+ years. http://www.metacase.com/mep/
Now, there's plenty new and well-rehashed ideas in Light Table. I'll be buying a license, probably. But the insight in this article isn't very new at all.
> Reading things like this, i sometimes worry that
> the HN-circling web crowd is reinventing things
> that others invented just a few years ago.
The difference in this case is that the HN web crowd are targeting their fellow programmers, and not the "Enterprise" crowd.
I've been following the DSL tooling scene, and it's horrible. Think closed source, expensive and targeted at the Enterprise (or specific engineering disciplines).
The community is full of MDA (model-driven-architecture) types: too often is the focus on increasing complexity (for ego boosting / job security) instead of simplicity and accessibility.
The HN crowd are pretty much the polar opposite: the focus is on simplicity and scale. Sharing knowledge, instead of locking it up for fun and "profit".
The flask example is the really pertinent one to me. Those were all the views that you need when working on a web app and it would be awesome to have them all come up automatically like that. It's possible to make emacs show you all those views by manually opening up frames and finding the right code, and emacs can even render html (but really, use your browser of choice for that). I'm sure it would be possible to write the elisp to have it do it all almost as automagically and smoothly as light-table (but not with rounded corners). The problem is, if I'm a python expert writing python web-apps, breaking out elisp to script up an environment like this is just too daunting. Instead I usually just keep checking back at the emacs wiki to see if anyone else has done it for me... (should I admit that?)
Is Light Table going to solve that problem? Unfortunately this blog post and the videos don't demonstrate how you create these modes. Do you have to become a clojure, clojurescript, html5, css expert?
I spent this morning fiddling with elisp to get emacs to do something I wanted. On the one hand, it's incredibly annoying, considering that I don't know anything about elisp. On the other hand, I figured out what I needed, and now it's a little easier.
On the gripping hand, there's zero chance that I'll be trying to replicate that functionality in emacs. Even with the wiki, and it's random ~/Desktop/elisp_notes.ver2.txt feel, isn't that helpful.
Im guessing but you should be able to use any JVM language on the server and any language that compiles to JS on the client. If you want to do more visual stuff then the framework allready does you problebly want get around html and css.
With some work it would probebly be possible to make the Server IPA more general.
>> The future of tools isn't in a better Eclipse or Visual Studio, it's in easily created domain specific experiences.
How is that goal different from that of the Eclipse platform (http://www.eclipse.org/platform/overview.php) - a common base where people can develop individual add-ons to suit the domain they're working on? Eclipse platform and LT clearly have different interaction models and technologies, but from the leading quote of the article, the same goal.
Writing Java in Eclipse is, as many have said, a great experience (in the continuum of Java-development experience). But you know what else is pretty good? PyDev (http://pydev.org/) - a Python IDE that's written on the Eclipse platform. It uses the same interaction models and designs as Eclipse for Java, but it's also got a whole bunch of bits that are just targeted at Python development. There's also a tool (the name of which I don't recall) that our DBA uses for all his database management that's written on the Eclipse platform.
I'm all for specific - I use PyCharm every day, which does one thing (Python development) really well. But I think calling out Eclipse like the parent article does is wrong. It too can be a platform for "easily created domain specific experiences"; it's just a different one with a different paradigm.
It's not. It's really not. I've heard good things about PyCharm, but the best environment for Python that I have seen so far is Emacs. And Light Table definitely looks like an improvement on that. My only concern with this is the speed. I want this to have the same response time as Emacs or Vim. Then there would be no reason not to use it.
When I was learning to code, and still sometimes, what annoys me about typing is that I don't know what I don't know. With graphical programming, having predefined modules with discoverable inputs and outputs encourages me to try connecting things together on a what-if basis to a much greater degree than a textual environment. This is what I find very attractive about the way Light Table is going; a lot of the time I want to build things but not necessarily to write code.
The first time I heard about Light Table I was rather critical but this begins to look like something that could really replace vim for me. This is rather surprising given my general distaste of IDEs.
As much as I like vim - it remains software from the stone age and it seems absurd that our main work interface (editor and shell) still consists of an emulated 1980s text-mode terminal.
LightTable looks like a major step in the right direction. I think the best indicator for success will be when the vim/emacs-diehards start porting their respective shortcuts and functionality over.
I could very well see this fundamental approach (modular/dynamically expanding interface) become the new paradigm for editors and (hopefully) terminals if the author manages to make the prototype versatile and hacker-friendly enough.
We've really been entrapped inside ancient TTY-emulations and inadequate GUI-widget sets for way too long.
Boy am I happy I pledged for Light Table. And the benchmark mode looks so freaking great. I'm getting excited just thinking about it. I don't think I'll be able to wait until the early beta. ARGHH!
It's a pretty impressive demo. It looks like it could be the mother of all scratchpads. It looks like it might have a bit of a scary learning curve though.
I can certainly think of a lot of ideas of what I might try to implement with such an approach. Really any existing code inspection/analysis approach.
I'm thinking some sort of view onto Powershell providers could be interesting.
Maybe exception lookups in the code as your browse through an error log.
Definitely a regex tester utility: does your string match the regex? Do parts of it match part of the regex? What's an example string that would match? Can we display all of this dynamically in real time?
Eclipse with http://xtext.org is an outstanding platform for domain-specific languages and domain-specific tools. I don't know any tool which comes even close.
I'd rather see Light Table features integrated into Eclipse, as creating something as fully featured as Eclipse is...
...going to end up being Eclipse.
So either a massive wheel is being reinvented, or Light Table will be absent of all standard IDE features and consist of the flashy neato Code Bubbles stuff and not much more.
That said, I say develop the hell out of the Light Table concept for all the "new age" (circa 196X) dynamic coder people since their IDEs tend to suck, and let's hope it becomes a standard and we can implement it all in everything else. :)
I'm specifically excited about Light Table (and the second half of this video where he dives into Python/Flask), because as a front-end guy, I generally spend most of my time in views/templates. I occasionally have to dive into models however, and it seems to me Light Table would help me navigate something I consider a bit of a wild west much more efficiently, resulting in learning much faster.
Basically, I'm excited about Light Table because I think it will help me become a better programmer.
The key line for me here is that the future is in 'easily created domain specific experiences'. I think this is very eloquently stated and can't agree more.
I like what Light table is trying to do, hoewver it is still working in pretty much the same 'domain' space as existing IDE's ('code'), and trying to improve on the 'easily created... experiences' part.
As the post is waxing lyrical, my piece to add to the broad-concept discussion is that I'd really like to see more programs which try to be applicable to a broad variety of non-coding domains, which actually occupy the majority of the work that people do on computers (working with images, working with spreadsheets, working with documents and pages, working with 3d spaces, animation, realtime information, etc.), allowing the easy creation of 'domain specific experiences' in these, which is generally impossible or very difficult in most of todays pre-compiled software for these tasks.
[I hope that all makes sense to someone :) Would also appreciate any discussion as something along these lines is a side-project of mine atm]
We showed examples that relate very cleanly to "normal coding", but what we ultimately want to see is exactly what you're describing. There are so many places where a thin veil over the implementation would be immensely useful, presenting new interfaces for things like working with physics simulations, financial models, etc etc.
I think a lot of that stuff can be done if there are JS implmentation. You want be able to use the importend functions from excel in a browser (or anywhere else) its just made for this kind of stuff. If there are JS you might be able to inlude them into the working process of Light Table. Lets see, its a nice idea.
If you come up with some new code in a "scratchpad" area and want to save it, where will it go? In a new file? Appended to the end of an existing file?
Similarly, if you edit one of the "supporting" functions that appear and want to save those changes, will they be saved in-place (e.g. line 217-241) in whichever file that function is from?
Being specific is not a feature, this is what you do when you have no other way to solve a problem. The ambitious challenge raised by Light Table was to generalize Bret Victor's ideas to general programming, if they are unable to do this, I'll stick to my IDE.
Bret Victor's ideas apply differently to different problem domains. This was very apparent from his talk. It looks like Chris is trying to build a platform that makes applying Bret's ideas very simple and natural. Also, I assume that many of these modes will be generalized and available out of the box, so all you have to do is the pick the one that best suits your needs for any given task.
Recently I was thinking maybe software industry is too much obsessive about tool making. I wouldn't mind spending much more time and effort using a bad IDE re-factoring bad code that works good and cures cancer. I don't really care how awesome the static analysis tool I am using, or how awesome the meta-meta-meta-meta-meta-meta-meta-meta programming language I am using if I work on pointless product. Maybe I am wrong and those tools are the only way for real breakthroughs in bioinformatics.
This 'problem' is old. Even the Hackers in the 60s didn't often do anything 'real'. The made tools to make it easier to make other tools, and so on. The think is that WHEN you want to develop something real you want to have these tools ready to go.
With your aditued there will not be that much progress, since everybody would have just said 'mmhh lets not develop a good compiler for C lets write assembler'. In my opinion as long as people develop better tools (languages, IDEs, compilers, debuggers) there is need for them. If one guy spends a couple of month on a Tool, how long will it take until the time saved is 'recoverd' by the users of that tool? Making tools yileds economic benefit, just like in the real word a maschine that does something better or faster will result in economic benefit.
That is not do say there is never mal-investment. Somebody might spend a long time developing something and nobody will use it, programming related or not. This however is not an argument for no innovation.
I love it, especially the grouping of files: route + models + templates, in 1 view is something I see a use for. Does anyone know of an editor which can do something similar?
Plenty of editors offer split view editing. You'll need to actually open the route, model and template files, but it's easy enough to have them all open at the same time. The real challenge here is how they'll handle larger files (real-world production code rarely is that small and clean, you almost always have complex logic and a number of database calls).
More of a meta comment on the future being specific and how it is all about creating more domain-specific tools vs generalized tools... I think that's really a common property in any complex, highly powerful system. Think about the brain, the economy, DNA, a corporation even... etc. Domain specificity is the past and the present, too!
As a non-developer. I would love this for php & wordpress.
Here me out: the people who aren't in IDE's all day could benefit the most from this. They don't know where the functions are or even how to find them sometimes. I resort to google 9/10 when looking for how some functions.
This has huge applications for helping non-programmers become programmers.
Google didn't win by being the best general-purpose search, where people go to look for anything on the Internet. It won by being the best for searching only um, okay not the best example.
Facebook didn't just raise 14billion at a valuation of 100billion by being the best general-purpose social network, where just anyone would have a profile. It won by being the best network for, uh.. Okay, not the best example.
Well, take a revolutionary new product like the iPad. It doesn't have hundreds or thousands of apps to do uh, hold on. I'm sure that somewhere there's the ONE thing that it does. Uh, it's a screen?
Look, step back. There's only one thing you can do in Photoshop. I mean there's just one thing to use Ubuntu for. Sorry, I meant that when you say the word 'Harvard' everyone knows what the ONE thing that they teach is!
Okay, look, these might not be the BEST examples in the world. Take a pair of jeans. There is ONE time and ONE place to, uh.
Fuck. I'm done. If the future is anything like the present, nobody even knows what the fuck business Amazon is in anymore.
All of your examples are gestalts. They're not single seamless abstractions, they're patchworks that are more than the sum of their parts.
That's precisely what is being proposed here: a platform for creating a development environment that is more than the sum of its parts. Something that gives you composable pieces that can be fit together into something that maps directly onto your problem space.
Is this really so unclear? I can't picture the hypothetical product that you're arguing against.
All those Facebook profiles: all different, all highly customizable. Specific.
All those hundreds of thousands of iPad apps: mostly very specific, some wildly so.
Increasingly these days, every business Amazon gets into, it builds a different interface for. Certainly that's the case with their electronic and downloadable offerings.
Even Google web search is fairly specific when viewed in context of their putative mission to organize the world's information. It sure doesn't look like Groups (and thank god for that).
And Light Table itself: not very specific. A general platform.
The word "platform" is key, I think. The link discusses what we put on our platforms.
Dear Rubyists/rockstar ninjas/brogrammers/whatever you're calling yourselves this week: please stay well away from whatever community develops around Light Table.
kamaal|13 years ago
Eclipse really makes Java programming very easy. And I can tell you minus Eclipse programming in Java would be a very frustrating experience, given the verbosity, configuration mess and XML's all over the place. Eclipse these days is advanced enough to really blur the difference between and novice and a expert Java programmers. So by any measure I would say eclipse already does what light table aims to do. The only problem with eclipse is its too heavy, chews a lot of memory and becomes very heavy as things go on.
What we expect from light table is really what things like Emacs and Vim already are, plus what they miss. Which is modern GUI candy, easy configuration, availability of packages, stuff like refactoring, bench marking, auto complete and Intellisense easily available out of the box. Along with evolution with modern needs and demands.
So that is why what we really needed was an Emacs + all that I mentioned.
I think it will be nice if at some point requirements are frozen for Light table. Because things like this really slip into Second systems effect easily.
According to me Light Table must be Emacs for the Modern Generation. Anything else, and it won't be impressive. A thin editor, extensible by lisp. All lisp and other Emacs editor goodies but with all the modern demands.
We already have enough of other kind of IDE's.
stcredzero|13 years ago
Can you come to a realization in the middle of an Eclipse debugging session, get a great idea for making yourself more productive, take time to script yourself a working and fully debugged extension of Eclipse and continue what you were doing 20 minutes later?
I've done precisely this in Smalltalk on many occasions. You can script something like a custom browser that shows you everything that uses function A and also function B and has a reference to class C (and with complete syntactic accuracy) in around that time.
I suspect that this kind of very small grained toolsmithing is common for really good programmers in dynamic environments. The only problem is that it's been harder than necessary to integrate that with the most commonly used coding tool. (TextMate's ability to export selections to scripts is very nice, but it can go farther than that. Emacs is very powerful for this, but not everyone wants to script in elisp.)
It's not that Light Table is going to do something unprecedented. It's more like what git did with quick access to diffs: a quantitative change can become a qualitative change. Change the cost-benefit of toolsmithing, and you can use it in new ways.
ibdknox|13 years ago
I think the parallel to emacs is a good one and while I certainly won't say at this point that we'll be the "modern emacs", it's our hope we can come close.
Arelius|13 years ago
Emacs was born in a world of textfiles, Light Table shows us a post-textfile world, but before we can get to the future, it needs to be able to survive in the world we live in today, which is one where textfiles are king.
inportb|13 years ago
I'm not sure about that... Eclipse gets fatter and slower with each release. Of course, I still use it because Google really wants Android developers to do so. In my opinion, the most frustrating thing about using Eclipse for Android work is that it crashes every time I try to export a package, unless I close every open file and restart Eclipse before trying. (the problem is mitigated by disabling automatic builds)
I guess that's because Eclipse runs on Java and Java is wasteful. It would be really nice if we could have a "native" equivalent of Eclipse, with less bloat.
chrismcbride|13 years ago
adeelk|13 years ago
“Making Java programming easy” is not one specific task!
lubutu|13 years ago
I'm personally much more fond of the Unix 'tool approach', in which there are no task-specific modes or plugins, but tools can still be composed ad hoc, as in Plan 9's Acme.
ibdknox|13 years ago
The idea is that Light Table will be built from the ground up to support very dynamic environmental contexts in which you can place anything.
victork2|13 years ago
Light table looks to me (with all the respect due to the work of the authors) like a fad where people get all hyped up about a product. I mean there's nothing revolutionary and while looking at the video I was thinking "boy this is too confusing!". I also believe that when the project is going to have 500+ lines of code per file, the way it's done now, is going to be horrible to deal with it!
There are other stuff that bug me out: when I program I don't want rounded borders and everything. I don't want 40 different colors.
But if people are going to be it, great.
mcrittenden|13 years ago
That's just one example. The same conceptual problems pop up for stuff like on-the-fly code execution (what if your code depends on user input or many SQL queries or files that may or may not exist at that point), benchmark mode (benchmarking a complex app is obviously a lot more complicated than just running two code blocks side by side), etc.
I know this is just a demo and it's all very early in the process, and I'm not saying that this should be a solved problem yet, but I just can't picture in my head a way that this could ever be a solved problem as long as LightTable remains somewhat similar to its current state.
ibdknox|13 years ago
To your second point the normal caveats of a replish environment will apply to any code execution stuff :) And the benchmarking mode was a simple example for working against functions once you already know they're the bottleneck. In a real application you probably need help getting there.
I agree and I think a big part of the job ahead is to understand how we can ensure these sorts of experiences mesh and flow together when working on something larger. Fortunately, Light Table itself provides a great project to prove that on.
option_greek|13 years ago
ibdknox|13 years ago
For those who can't use vimeo: http://www.youtube.com/watch?v=osLReQSB9F0
SudarshanP|13 years ago
abhaga|13 years ago
Estragon|13 years ago
skrebbel|13 years ago
Extensible tool-building platforms for DSLs are hardly anything new. Reading things like this, i sometimes worry that the HN-circling web crowd is reinventing things that others invented just a few years ago. Like some sort of collective not-invented-here syndrome.
E.g. Check out MetaEdit+ - their website isn't Silicon Valley Sexy, but the tool is amazing. And has been, for the past 10+ years. http://www.metacase.com/mep/
Now, there's plenty new and well-rehashed ideas in Light Table. I'll be buying a license, probably. But the insight in this article isn't very new at all.
radicalbyte|13 years ago
The difference in this case is that the HN web crowd are targeting their fellow programmers, and not the "Enterprise" crowd.
I've been following the DSL tooling scene, and it's horrible. Think closed source, expensive and targeted at the Enterprise (or specific engineering disciplines).
The community is full of MDA (model-driven-architecture) types: too often is the focus on increasing complexity (for ego boosting / job security) instead of simplicity and accessibility.
The HN crowd are pretty much the polar opposite: the focus is on simplicity and scale. Sharing knowledge, instead of locking it up for fun and "profit".
That's why I like it here :)
krupan|13 years ago
Is Light Table going to solve that problem? Unfortunately this blog post and the videos don't demonstrate how you create these modes. Do you have to become a clojure, clojurescript, html5, css expert?
pavel_lishin|13 years ago
On the gripping hand, there's zero chance that I'll be trying to replicate that functionality in emacs. Even with the wiki, and it's random ~/Desktop/elisp_notes.ver2.txt feel, isn't that helpful.
nickik|13 years ago
With some work it would probebly be possible to make the Server IPA more general.
JimmyL|13 years ago
How is that goal different from that of the Eclipse platform (http://www.eclipse.org/platform/overview.php) - a common base where people can develop individual add-ons to suit the domain they're working on? Eclipse platform and LT clearly have different interaction models and technologies, but from the leading quote of the article, the same goal.
Writing Java in Eclipse is, as many have said, a great experience (in the continuum of Java-development experience). But you know what else is pretty good? PyDev (http://pydev.org/) - a Python IDE that's written on the Eclipse platform. It uses the same interaction models and designs as Eclipse for Java, but it's also got a whole bunch of bits that are just targeted at Python development. There's also a tool (the name of which I don't recall) that our DBA uses for all his database management that's written on the Eclipse platform.
I'm all for specific - I use PyCharm every day, which does one thing (Python development) really well. But I think calling out Eclipse like the parent article does is wrong. It too can be a platform for "easily created domain specific experiences"; it's just a different one with a different paradigm.
spiffworks|13 years ago
It's not. It's really not. I've heard good things about PyCharm, but the best environment for Python that I have seen so far is Emacs. And Light Table definitely looks like an improvement on that. My only concern with this is the speed. I want this to have the same response time as Emacs or Vim. Then there would be no reason not to use it.
anigbrowl|13 years ago
When I was learning to code, and still sometimes, what annoys me about typing is that I don't know what I don't know. With graphical programming, having predefined modules with discoverable inputs and outputs encourages me to try connecting things together on a what-if basis to a much greater degree than a textual environment. This is what I find very attractive about the way Light Table is going; a lot of the time I want to build things but not necessarily to write code.
DasIch|13 years ago
moe|13 years ago
As much as I like vim - it remains software from the stone age and it seems absurd that our main work interface (editor and shell) still consists of an emulated 1980s text-mode terminal.
LightTable looks like a major step in the right direction. I think the best indicator for success will be when the vim/emacs-diehards start porting their respective shortcuts and functionality over.
I could very well see this fundamental approach (modular/dynamically expanding interface) become the new paradigm for editors and (hopefully) terminals if the author manages to make the prototype versatile and hacker-friendly enough.
We've really been entrapped inside ancient TTY-emulations and inadequate GUI-widget sets for way too long.
kamaal|13 years ago
The Irony! If you find this is what is supposed to replace Vim for you, then Emacs already replaces vim.
He is talking of Extensible Macros for <any tool>. And Emacs is Extensible Macros for Taco Editor.
I guess what you want is Emacs.
pwny|13 years ago
GlennS|13 years ago
I can certainly think of a lot of ideas of what I might try to implement with such an approach. Really any existing code inspection/analysis approach.
I'm thinking some sort of view onto Powershell providers could be interesting.
Maybe exception lookups in the code as your browse through an error log.
Definitely a regex tester utility: does your string match the regex? Do parts of it match part of the regex? What's an example string that would match? Can we display all of this dynamically in real time?
negrolious|13 years ago
frendiversity|13 years ago
...going to end up being Eclipse.
So either a massive wheel is being reinvented, or Light Table will be absent of all standard IDE features and consist of the flashy neato Code Bubbles stuff and not much more.
That said, I say develop the hell out of the Light Table concept for all the "new age" (circa 196X) dynamic coder people since their IDEs tend to suck, and let's hope it becomes a standard and we can implement it all in everything else. :)
cwilson|13 years ago
Basically, I'm excited about Light Table because I think it will help me become a better programmer.
twelvechairs|13 years ago
I like what Light table is trying to do, hoewver it is still working in pretty much the same 'domain' space as existing IDE's ('code'), and trying to improve on the 'easily created... experiences' part.
As the post is waxing lyrical, my piece to add to the broad-concept discussion is that I'd really like to see more programs which try to be applicable to a broad variety of non-coding domains, which actually occupy the majority of the work that people do on computers (working with images, working with spreadsheets, working with documents and pages, working with 3d spaces, animation, realtime information, etc.), allowing the easy creation of 'domain specific experiences' in these, which is generally impossible or very difficult in most of todays pre-compiled software for these tasks.
[I hope that all makes sense to someone :) Would also appreciate any discussion as something along these lines is a side-project of mine atm]
ibdknox|13 years ago
nickik|13 years ago
frou_dh|13 years ago
Similarly, if you edit one of the "supporting" functions that appear and want to save those changes, will they be saved in-place (e.g. line 217-241) in whichever file that function is from?
bnegreve|13 years ago
qiemem|13 years ago
espeed|13 years ago
"Bret Victor - Inventing on Principle" (http://www.youtube.com/watch?v=PUv66718DII)
simonb|13 years ago
ulf|13 years ago
Do you have specific plans on how to incorporate version control when not primarily relying on files?
ibdknox|13 years ago
anoplus|13 years ago
what do you think?
nickik|13 years ago
With your aditued there will not be that much progress, since everybody would have just said 'mmhh lets not develop a good compiler for C lets write assembler'. In my opinion as long as people develop better tools (languages, IDEs, compilers, debuggers) there is need for them. If one guy spends a couple of month on a Tool, how long will it take until the time saved is 'recoverd' by the users of that tool? Making tools yileds economic benefit, just like in the real word a maschine that does something better or faster will result in economic benefit.
That is not do say there is never mal-investment. Somebody might spend a long time developing something and nobody will use it, programming related or not. This however is not an argument for no innovation.
gumuz|13 years ago
viscanti|13 years ago
ashliana|13 years ago
ckluis|13 years ago
Here me out: the people who aren't in IDE's all day could benefit the most from this. They don't know where the functions are or even how to find them sometimes. I resort to google 9/10 when looking for how some functions.
This has huge applications for helping non-programmers become programmers.
spiffworks|13 years ago
pavel_lishin|13 years ago
ibdknox|13 years ago
bergie|13 years ago
kitsune_|13 years ago
philip1209|13 years ago
haliax|13 years ago
eragnew|13 years ago
gosub|13 years ago
islon|13 years ago
its_so_on|13 years ago
Google didn't win by being the best general-purpose search, where people go to look for anything on the Internet. It won by being the best for searching only um, okay not the best example.
Facebook didn't just raise 14billion at a valuation of 100billion by being the best general-purpose social network, where just anyone would have a profile. It won by being the best network for, uh.. Okay, not the best example.
Well, take a revolutionary new product like the iPad. It doesn't have hundreds or thousands of apps to do uh, hold on. I'm sure that somewhere there's the ONE thing that it does. Uh, it's a screen?
Look, step back. There's only one thing you can do in Photoshop. I mean there's just one thing to use Ubuntu for. Sorry, I meant that when you say the word 'Harvard' everyone knows what the ONE thing that they teach is!
Okay, look, these might not be the BEST examples in the world. Take a pair of jeans. There is ONE time and ONE place to, uh.
Fuck. I'm done. If the future is anything like the present, nobody even knows what the fuck business Amazon is in anymore.
http://finance.yahoo.com/echarts?s=AMZN+Interactive#symbol=a...;
The future is the very opposite of the word "specific".
prospero|13 years ago
That's precisely what is being proposed here: a platform for creating a development environment that is more than the sum of its parts. Something that gives you composable pieces that can be fit together into something that maps directly onto your problem space.
Is this really so unclear? I can't picture the hypothetical product that you're arguing against.
misuba|13 years ago
All those hundreds of thousands of iPad apps: mostly very specific, some wildly so.
Increasingly these days, every business Amazon gets into, it builds a different interface for. Certainly that's the case with their electronic and downloadable offerings.
Even Google web search is fairly specific when viewed in context of their putative mission to organize the world's information. It sure doesn't look like Groups (and thank god for that).
And Light Table itself: not very specific. A general platform.
The word "platform" is key, I think. The link discusses what we put on our platforms.
nebiros|13 years ago
randall|13 years ago
stayclassytally|13 years ago
unknown|13 years ago
[deleted]
gaius|13 years ago