Recently thanks to a colleague I’ve been playing around with iPython. iPython is an interactive version of Python that many people are beginning to use to teach Python, to create and run simulations and visualizations, and to just generally have a richer environment within which to work while coding. This investigation led me to Xiki, which is both similar in some ways and different in others. But I would like to suggest that both of these, and likely more such tools, are creating an entirely new paradigm for computing.
This is because rather than being segregated at any one moment in the operating system or a specific programming language, the doors have been completely blown off. Within one environment, what I am generically calling Integrated Systems Environments (ISE, pronounced “eyes”), you have access to everything. Not only that, but your activity is automatically recorded as a “notebook” that can be edited and shared.
Assistant Prof. Philip Guo at the University of Rochester has a fairly good description of the benefits of the iPython Notebook, as well as some suggested improvements in the environment. But it’s likely not easily apparent how different these new kinds of environments are until you experience it yourself.
The benefits of teaching a programming language in such an integrated environment are readily apparent. No popping out of your command line interpreter to explore the filesystem. Having the ability to write a block of code, test it out, make corrections and try it again until you get it right — all while the code is automatically stored in a notebook that you can easily refer to again. I can’t imagine code being taught any other way in the future.
But these new kinds of environments aren’t just for programming teachers and their students. Where they really got their start was with data visualization — where you want to pull in some data and run some routines against the data and plot the result. The “notebook” environment is particularly well suited to this kind of interaction as years of MATLAB users discovered.
ISE uses need not stop there, however. I’ve found it to be an increasingly compelling environment within which to try out chunks of code that may find their way into a more traditional monolithic program. Or not. In some cases I can stay completely within the warm arms of my ISE, and not even think about exiting to the shell prompt. In fact, I’m beginning to think the shell prompt is so last century.
So get out there and try it out. Then come back here and let me know what you think. Do you think this will be as big as I think it will be?