Is This The IDE You've Been Looking For?
Join the DZone community and get the full member experience.Join For Free
Sometimes concepts come along that make you excited to be in this industry. In software, the IDE concept has been fairly static for the last 10, maybe 15 years. Sure there have been advances, but no leaps. Light Table is an IDE concept that takes one of those leaps.
Mylyn brings a task focussed approach to Eclipse and this is still a fresh way to get your development tasks done. Then, about two years ago, Code Bubbles was prompted as the next IDE revolution - a whole new way of interacting with your source code. I'm not sure why this hasn't taken off more but it still hasn't hit mainstream.
A more recent development in the evolution of development tools, was Bret Victor's talk on Inventing on Principle. This video spread through the developer community like wildfire.
Bret Victor - Inventing on Principle from CUSEC on Vimeo.
I was excited to see that Bret's ideas were an inspiration for Light Table:
Bret Victor hinted at the idea that we can do much better than we are now - we can provide instant feedback, we can show you how your changes affect a system. And I discovered he was right.
Chris Granger's IDE looks amazing. Take a look at his intro and tell me you're not amazed:
The concept is to be able to move things around, reduce the clutter and focus on the things that matter. Any IDE you look at now uses files as the smallest unit - Light Table allows functions to be your smallest unit.
But it goes much further than that - live editing games is demonstrated in Chris' prototype. To me, this is a key ingredient to the IDE of the future. See the output on your work surface and be able to see the result of code changes instantly, in the same workspace.
The other outstanding part is the "Code With A Little Illumination" part. See exactly what functions are used from the function you are working on:
I think this is an excellent prototype, and it shows a bright future is possible for development tools
As you see in the video I have a prototype of this working. It's built as a web application using Noir, my various ClojureScript libraries, and CodeMirror. I use a slightly modified version of the Clojure compiler to retain some metadata about forms that is currently lost (like column positions and other position data). Past that, it's just a matter of running over the analysis tree and a healthy sprinkling of magic ;)
Published at DZone with permission of James Sugrue, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.