Hacker News new | past | comments | ask | show | jobs | submit login

    - 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.
Smalltalkers have been doing this in commercial projects since the 80's. If only we could have communicated about this as well as Mr. Granger.

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
Things like this were happening in Smalltalk environments since the 80's. The first and the last points above were satisfied by lightning fast "senders" and "implementers" searches.

Of course this comment was inevitable. If Smalltalkers really believe their environment is the right way to code, their attitude should not be one of "we did this first, meh" but instead be "here's what we did right, here's what we did wrong. heed the lessons of history and good luck, you are on a mission from God."

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.

If Smalltalkers really believe their environment is the right way to code, their attitude should not be one of "we did this first, meh"

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.)

Ah, understood. Tone threw me off and it's all too common to see the attitude I outlined above when old ideas are given fresh paint. Apologies for misrepresenting your view.

> Apologies for misrepresenting your view.

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!".

After a decade of waiting, I think I'm entitled to express a bit of frustration.

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.

I didn't quite "live through" those, being too young (mid-30's now) but did buy a lispm and hack on Smalltalk. I do support things like making Smalltalk Git-compatible, declarative, etc. I haven't jumped on the Clojure bandwagon because I lack interest in the JVM, but ClojureScript is great.

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.

It seems that Dan Ingalls, the father of Smalltalk, has picked up the baton again, this time using Javascript. Check out Lively Kernel (http://lively-kernel.org/). I saw a live demo at JSConf, it was pretty jaw-dropping stuff, completely in line with the Smalltalk legacy.

Interesting stuff, I'm quite new to programming, could you please recommend some reading materials to get acquainted with these ideas?

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.

check out udacity, coursera and khanacadamy.

why not name names? seems like it could be informative.

Not in this thread. This is Light Table's moment to shine, don't want to clog it up with such a derail.

Then do it somewhere else and point here, please? Another comment mentioned version control, which is a very important thing to get right, and I don't know how I'd diff two Self workspaces, for example...

What other sticking points are there?

Squeak smalltalk (among others I'm sure) has had version control for quite a while in the form of http://wiresong.ca/monticello/

Not old enough to have lived through what you said, but old enough to have noticed the ripples of "what could have been". Plan9. Lisp Machines. etc. So I'm also looking forward to your much-needed show-and-tell post!

Yes, but our code was entirely in these utterly unusable changeset files that couldn't work nicely with the version control that everyone else in the entire world was using; his version still uses files under the hood. There's a team that's trying to back Monticello with Git, I believe by saving each method into its own file in part of a Git source tree; that looks promising as a compromise.


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.

We also had Virtual Machines with snapshots and rollbacks doing the things VMWare is now pushing so very hard.

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.

There is a Gemstone group at VMware. Send your resume.

Field (http://openendedgroup.com/field) is a modern programming environment that embraces most (if not all) of these principles.

As always, the multi-media programming environments are miles ahead and nobody knows about them. Field is amazing. Max/MSP, Pd, et al. are a different paradigm altogether, but have had live editing, documentation a click away, etc. and have been in heavy use for 20+ years.

I've been using Max/MSP lately and while I find the language itself lacking (one example of something I wish I could do is nested lists), the editor is amazing. The live programming is ahead of any normal REPL I've used and the debugger is pretty cool too.

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)

Where can I find a list of these amazing multi-media programming environments that I've never heard of before, but which look so awesome?

Max/MSP, Pure Data, vvvv, QuartzComposer, SuperCollider, ChucK, Processing, openFrameworks, Cinder, and Field are the big names.

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 was unable to find anything close to a definitive list, but http://en.wikipedia.org/wiki/Visual_programming_language is a start.

I immediately thought of Visual Age for Smalltalk when I saw this, but having been done is no reason to not try again.

VisualAge for Java was my thought. Unfortunately, as with many of IBM's good ideas - before its time, poorly marketed/placed, etc.

Visual Age for Java Micro Edition (re-written in Java) became Eclipse framework.

I did not know this. History even in software is interesting (http://en.wikipedia.org/wiki/IBM_VisualAge , http://en.wikipedia.org/wiki/Eclipse_(computing))

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.

True, Smalltalkers were there first. The thing I like.. the further enhancement here.. is the UI. No more tiles and windows.

In the Table view it might be nice to color the cards based on their namespace like Whisker browser:


what smalltalk didn't quite do is the instantaneous view of the results of your code changes. Seeing the result of your changes in Light Table is like updating a cell in a spreadsheet. Smalltalk (I'm guessing), would involve switching to the executing window or hitting a play/continue button. A subtle difference, but it takes the immediacy to the next level.

No, it was, is or at least can be, instantaneous where that makes sense.

Autotest, which is now built-in to Pharo, will automatically run unit tests relevant to the method you're editing when you save the method, so you can get pretty close. http://magaloma.blogspot.com/2010/06/autotest-for-pharo.html

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact