Friday, February 27, 2009

Newspeak Prototype Escapes into the Wild

The Newspeak prototype is now available at http://newspeaklanguage.org/downloads/ . We had planned to release it in early January, but decided to complete a few more things - like better source control support, a fully functional Hopscotch based debugger and a new GUI for unit testing (shown below).

Newspeak is a long way from being finished - we are less than half way to realizing the vision of a robust, high performance, secure, network aware, high productivity platform. We can only get there if people care enough to use it and contribute to it. I hope you'll check it out.

19 comments:

I'm considering checking it out/contributing. Any pointers on things to read (books or online) in order to learn the prerequisites for contribution? BTW My main interest is in the IDE design and usability, not necessarily the VM side of things. Thanks!

I don't know your technical background but I'll try. The most critical thing is to understand the philosophy of the system (which we have yet to live up to in many cases). Things like minimalism, compositionality, orthogonality.

a. There is a fair amount of material about Newspeak on newspeaklanguage.org. In particular, regarding the IDE, there's Vassili's workshop paper.This blog also has a good deal of material that's relevant.

b. Knowing Smalltalk or Self helps (though some things are very different). There are quite a few books on that.

c. My personal web page (bracha.org) has stuff under papers. The 2004 OOPSLA paper on mirrors is pretty important wrt the iDE.

d. Read some of the better code in the system. The Newspeak2 version of CombinatorialParsing, the new compiler (Newspeak2Compilation), the Newspeak debugger and parts of Hopscotch and Brazil done in Newspeak2 (like the windows mapping).

Honestly, I had a secret hope that this release would unveil your top-secret port to the Da Vinci JVM. Unless you have such a thing up your sleave, then what exactly is the roadmap to web serviced Newspeak applications?

The Newspeak project has taken a refreshingly pragmatic approach to Smalltalk, but it runs both ways. Just as morphic won't fly in the enterprise, "not deployable on the web" won't fly either.

My pitch: Drop everything, and do the absolute minimum needed to make NewSpeak images run on Dan Ingalls's JSqueak. JSqueak struggles but it is trying to do the graphics in Smalltalk. The pragmatic Newspeak approach would use Brazil abstracted Java graphics. If you did nothing else but implement your non-squeak bytecodes in JSqueak, and get a (gui-less) image running, that would make a world of difference to someone like me who looks at Newspeak now and says "that looks interesting, but how could I ever deploy Newspeak apps?"

The thought of web deployment has actually occurred to me :-). Seriously, cloud computing was the original motivation for the language.

To me, the path to the web leads through Javascript, not Java. Translate Newspeak to JS, and bind Hopscotch to the DOM (and eventually, Brazil to SVG). Why is Java so important to you (I can speculate, but please do tell).

Why hasn't that happened you ask? The web story was of no real interest to our funders (when we had funding). I hope to make it happen in the foreseeable future.

As for DaVinci. I'm watching that. This will be more interesting if/when it is part of a shipping product (Java 7, presumably) and widely deployed.

I had not thought of JSqueak. In any case, lifie is finite, and can't see it as a priority.

As for Java graphics - the 3G stuff is interesting. Ordinary GUI stuff - you don't want to touch it.

Finally: if you want to see more rapid progress, please join the forums and/or (even better) volunteer to help with some of this stuff

>>Why is Java so important to you (I can speculate, but please do tell).<<

you can indeed speculate, but please -allow me to speculate for you:

perhaps java is so important to me because:

a. basic tribalism. I define myself by my opposition to microsoft

b. in too deep. i'm sitting on 100 kloc of marginally useful java code, and i can't face moving on without it

c. history. i simply left my brain in the 90's

d. smalltalk fundamentalist guerilla. i can't face your turning the barcelona pavilion into a funhouse hall of mirrors where nothing is what it seems, and every time you turn around -someone has whipped out a travertine panel and replaced it with a google-ad for a new social software site

e. because newspeak on a dynamic language friendly jvm, is a no brainer -and i have no brains

f. because gilad bracha==java==gilad bracha, 4evr

g. because the end of the free lunch is the start of the speed crunch -and i heard a lang.net presentation saying that open source projects couldn't muster the resources to make a fast vm

g. because i consider javascript to be a toy language, and ajax "not proper software"

Invokedynamic and allied JVM changes may make for a very fast dynamic language engine, which certainly has its attractions. Yet, even with these changes, the hoops one has to go through to make Newspeak really work on a JVM are still formidable.

I expect to look into this once we've bootstrapped. At that point, it should be easier to port the system to a variety of targets: JS/V8, JVM, Strongtalk, .Net, iPhone ...

I will simply assign one the many full time compiler engineers at our disposal to each of the above ports :-)I still think web browsers are where the focus should be, but we'll see.

re "and i heard a lang.net presentation saying that open source projects couldn't muster the resources to make a fast vm"

Keith Duckworth, who along with Frank Costin founded Cosworth, the motor racing engine company, was fond of saying "An engineer is some one who for a dollar can do what any idiot can do for one hundred dollars."

Vista comes to mind when one thinks of a really well-managed, generously-staffed commercial project.

I think Peter was referring to my presentation at lang.net 2006. I stand by it - someone needs to be paying the bills if you want a fast VM. Be that Sun, IBM (soon to be the same?), Google, Microsoft or even Cincom or Qwaq. They can open source it if they choose - but it won't materialize out of volunteer work. There is no counter-example.

just last night, i was listening to another recorded presentation involving VM's -where the difference between a "fast car" and a "quick car" was used to illustrate the decreasing marginal return on optimisation effort -i believe Gilad was talking about the quick end of the curve

For the record, I'm not especially interested in either Java or quick VM's. I proposed JSqueak here because of its simplicity and the relatively firm ground of java gui's (relative to browsers that is).

Going with the engineering theme, the browser platform strikes me as being much higher geared. Great results as long as there is sufficient torque to turn the crank. A lower geared newspeak on jsqueak, would suit my model aeroplane engine brain.