If you watched the video in "A Better Way to Program" then you might have been itching to get your hands on tools that work in the way described. Now there is an open source project to create them - Light Table.
UPDATE: Light Table is now a KickStarter project.
You can now invest in the future of Light Table. Simply go to Light Table KickStarter and pledge some money to see the project get off the ground.
Light Table is based on the idea that code needs to be created in an active environment that shows you what it does and how to explore and edit it. If you want to know the philosophy behind the idea, then you can do no better than see the original video in A Better Way to Program.
Light Table is based on a few guiding principles:
You should never have to look for documentation
Files are not the best representation of code, just a convenient serialization.
Editors can be anywhere and show you anything - not just text.
Trying is encouraged - changes produce instantaneous results
We can shine some light on related bits of code
Some of these ideas can be found in other IDEs in the form of code prompting and completion, but the important difference here is that the code is live and you can see what it is doing as you create it.
At the moment there is only a prototype, but the author Chris Grainger, an ex-Microsoft Visual Studio developer, plans to launch an open source project based around it. Plugins for it might remain proprietary in an attempt to launch a business to support further development.
If you want to see the prototype in action you can in the video:
This sort of development of helpful IDEs is obvious enough once you have seen the idea. What is more difficult to understand is why there are "hardliners" out there who still think that the command prompt and Emacs is the solution to everything and nothing more is needed.
Douglas Hartree was an English mathematician and physicist who made an important contribution to computing in the era before electronic computers. Using a simple Meccano set he replicated the function [ ... ]