- Smallest unit of code is the function.
- Able to get instant feedback on code changes.
- Multiple editors with just one function in it. Show code
in an "area of concern" not just in a file.
- The coding environment can show also results, app
windows, graphics, other tools.
- Can save the configuration of the above.
EDIT - Also:
- 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 instaneous results
- We can shine some light on related bits of code
I think with the proper care and nurturing, we could be at the beginning of a renaissance where many of the great ideas of the 60s and 70s that have been isolated to a small group of people (who are aging rapidly) are being rediscovered and reimagined by this generation. This is happening in no small part due to Rich Hickey and the Clojure community's unbelievable foresight in developing Clojure and ClojureScript in just the right way that it balances these pure, beautiful ideas with pragmatism in a way that makes them irresistible.
Those who lived through the heyday of Xerox PARC, the AI lab, the lisp machines and Smalltalk should see this as an opportunity to help make sure things don't go off the rails this time. Otherwise, we may end up back here again in 25 years with the C++ and MySQL of the future installed in our cybernetic implants.
I can already point to projects that are invisibly pushing us towards another deep, sticky, next-generation tarpit, and people are diving in because it's not yet recognizable as such. (I won't name names!) Lets try to make it so this time around we truly realize the dreams of computation by encouraging people who are building elegant, beautiful things for the modern era, no matter how much the ideas therein have been tried before.
That was totally not the spirit in which I meant my post. It's more like, "I told you so!" (My mind works differently, I guess. I present facts that challenge people's model of the world, hoping the curious absorb the information and run with it. Many people seem to take these as some kind of attack.)
Oh please. He even misrepresented his own view.
"I wasn't attacking anyone, I was only letting everybody know they've been told"
The constructive bit of information was "hey cool this uses a lot of the concepts SmallTalk used in the 80s, great to see it getting some traction" instead of "I told you so!".
Your position is quite contradictory. Do you really think I'd extoll these capabilities for years while mainstream programmers pooh-poohed me, then suddenly change my position to "meh?" "I told you so," seems to be the most sensible response to me.
FYI: One thing Light Table could pick up / learn is the ability to scale as function set grows, to gain a kind of fractal navigability.
EDIT: I should clarify that I like Clojure quite a bit. It just doesn't speak to the kind of programming I do "in anger" right now. So I learn about it and watch ClojureScript more intently because it speaks to the environment I've chosen for my products/projects.
As a newbie, I'd like to educate myself so I can contribute to the "right" projects for this time and learn to avoid the tarpits.
Part 4 primarily of:
What other sticking points are there?
Hopefully this project will take off :)
Smalltalk vendors will probably add a layer of Envy/Store/Monticello on top of it but that would be a giant step forward.
I have missed those tools for the past 13 years, since I left the language. The idea that I might get those tools back, in a language that also supports all the emacs-or-gtfo coders, is like promising me a perpetual motion machine. I will believe it when I see it, and until then it will taunt me in my dreams.
If it had a few extra features it would make it pretty close to my ideal programming environment: a way of (temporarily) disabling selected code; a unit testing mechanism and a way of extracting selected code to a unit test; a visual code diff tool; git integration (especially branches)
But there are many more smaller projects such as Lubyk, Overtone, LuaAV, Faust, Plask, Impromptu and Fluxus.
I also want to plug NoFlo, which is a 'flow-based programming' library for node.js, which integrates with a visual editor.
I wonder why the built in code repo did not become a feature - unless this another part of the project history I am unaware of.