LINQ is the best option for a future Java query API
Strategic Programming
Strategic Programming by Model Interpretation and Partial Evaluation
William R. Cook, Benjamin Delaware, Thomas Finsterbusch, Ali Ibrahim, Ben Wiedermann
One question that we didn't address directly in the paper is "Why call it Strategic Programming?" The work is closely related to Model-Driven Software Development and also Domain-Specific Language engineering (DSL). Why not use one of those? To me, its a matter of focus. We are all "feeling the same elephant". But I want to focus on a different part of the elephant.
In programming language work there are three important components:
* Syntax
* Programs
* Semantics
When you map these onto the model/DSL viewpoint, you see the following correspondence:
* Syntax: Domain-Specific Languages
* Programs: Models
* Semantics: Interpretations (interpreters, transformers, compilers)
Some people focus on the models, others on the DSLs, and others on transformation. But rather than name the approach after one of its parts, I wanted to use a name that focuses on the overall approach. Keep in mind that there can be more than one interpretation.
I am suggesting that underlying all this is the idea of a strategy, which guides the design of the language and the interpretation of particular models to achieve some goal. It's the strategy that binds the three components together. The other reason is that some people think models are just pictures and don't have semantics, and other think that DSLs are just syntax. So I'm trying to sell a more fundamental vision of this emerging paradigm to the academic programming languages community. I think that models/DSLs/interpretation/strategies are going to be the next big programming paradigm, and so we need to get ready for it.
Scheme Debugging
Eclipse has a plugin architecture and lots of dynamic languages are gettting IDEs based on it. SchemeWay is a plugin for Scheme, but it does not support debugging. Recently I disovered the Dynamic Languages Toolkit (DLTK). Its supports the Xdebug DBGp protocol.
So I decided to make an Eclipse-based debugger for Scheme. Its called Schemeide and the alpha version is available for download now.
Any Scheme interpreter could work: all it has to do is implement the runtime side of DBGp. I implemented it, and it requires Gambit 4.2.9. Right now I include a patched version of 4.2.8 with builds for MacOS X, Win32, and Linux. The IDE also includes a indenter/reformatter for Scheme/Lisp. Other features are TBD.
How to embed news in a web page
Middle Earth Programming Language seminar
Java Object Persistence: State of the Union
ODBMS.ORG, a vendor-independent non-profit group of high-profile
software experts lead by Prof. Roberto Zicari, today announced a
new, second sequel to its popular panel discussion Java Object
Persistence: State of the Union, adding responses from the
ODBMS.ORG experts Jose Blakeley (Microsoft), Rick Cattell (Sun
Microsystems), William Cook (University of Texas at Austin),
Robert Greene (Versant), and Alan Santos (Progress).
Optimizing Distributed Objects
They are an amazing company, and they even gave me a little research grant to do more work. Thanks!
More recently, my paper on Web Services versus Distributed Objects:
A Case Study of Performance and Interface Design involved some manual transformations that were hard to do. Eli Tilevich picked up the idea and implemented it as an extension of RMI. We started working together and the design evolved into a full paradigm for optimizing remote object systems. We wrote it up as a nice paper, called Explicit Batching for Distributed Objects. The idea is that client proxies don't perform remote communication; instead they just create a batch of operations. All the method results are futures, because the calls haven't been made yet. But it looks pretty much like an ordinary object-oriented program. When the client calls flush, the operations are performed and the futures filled in with results. We evolved the design by two more iterations, to handle batched operations on remote collections, exceptions, and chained batches, or a series of batches that share common state. Each client can optimize their own server access, without any custom server objects (as required by the Data Transfer Object pattern). Amazing!
The result is so obviously better than RMI, in terms of managing latency and optimizing communication, that it is hard to imagine why nobody has tried this before. I keep thinking somebody probably did (and there is some related work that is similar, but not complete). As far as we can tell its new.
It might actually make RMI be able to compete with Web Services :-)
Dynamic Languages Symposium
The second Dynamic Languages Symposium at OOPSLA 2006 was a great success. There were 193 registered participants. To put this into context, it's a little more than 15% of the overall OOPSLA audience, and is significantly larger than most other events that are part of OOPSLA.
DLS 2006 had three invited talks:
- Ian Piumarta: Openness and simplicity in dynamic systems implementation
- Audrey Tang: Perl 6
- Avi Bryant: Data Refactoring for Amateurs
You can download the presentations and try to guess if Audrey really delivered 433 slides in an hour!
Six research papers were presented:
- PyPy's Approach to Virtual Machine Construction
Armin Rigo and Samuele Pedroni - Runtime Synthesis of High-Performance Code from Scripting Languages
Christopher Mueller and Andrew Lumsdaine - Interlanguage Migration: From Scripts to Programs
Sam Tobin-Hochstadt and Matthias Felleisen - Hop, a Language for Programming the Web 2.0
Manuel Serrano, Erick Gallesio, and Florian Loitsch - Ambient References: Addressing Objects in Mobile Networks
Tom Van Cutsem, Jessie Dedecker, Stijn Mostinckx, Elisa Gonzalez Boix, Theo D'Hondt, and Wolfgang De Meuter - Hardware Transactional Memory Support for Lightweight Dynamic Language Evolution
Nicholas Riley and Craig Zilles
The full papers are published in the OOPSLA companion and available in the ACM digital library.
DLS facilitated lively discussion between the talks, during the question and answer sessions.
Of the feedback we received (which unfortunately was not a large sample), 75% rated the day "excellent" and 25% rated it "ok". Nobody gave it a negative rating. This makes DLS one of the most highly rated events at OOPSLA this year. Thanks to everyone for participating.
Preparations are under way for DLS 2007, to be held in Montreal, Quebec, Canada, October 22, 2007. The co-chairs are Pascal Costanza and Robert Hirschfeld. We look forward to seeing you again at OOPSLA/DLS next year.
Objects and Databases Panel PodCast
OOPSLA
Guy Steele gave a great talk on Fortress, a high-productivity language for the Fortran crowd. It was also a great sequel to his 1998 talk on Growing a Language. And I had fun introducing him.
I also had fun dressing up as Luke Skywalker (complete with OOPSLA badge... hey, i should scan that in) and going to OMSI. I taked with Sam Kamin about my ideas for model-driven programming, but I'm not sure I made a lot of sense. Peri Tarr dressed as Darth Vader. We developed a little skit, but didn't use it. And we decided not to do battle... although now I think we should have. One line from the skit: Luke hears Obi wan saying "Luke, Use the Fortess"!
Web Services versus Distributed Objects
OOPSLA in Portland
You can learn all about OOPSLA at www.oopsla.org, and/or download the Advance Program PDF at http://www.oopsla.org/2006//program/oopsla_06_advance_program.pdf .
OOPSLA is the premier gathering of professionals from industry and academia, all sharing their experiences with today’s object technologies and its offshoots. OOPSLA appeals to practitioners, researchers, students, educators, and managers, all of whom discover a wealth of information and the chance to meet others with similar interests and varied experiences and knowledge.
You can mold your own OOPSLA experience, attending your choices of technical papers, practitioner reports, expert panels, demonstrations, essays, lightning talks, formal and informal educator symposia, workshops, and diverse tutorials and certificate courses from world-class experts. The popular Onward! track presents out-of-the-box thinking at the frontiers of computing. Posters discuss late-breaking results, culminating in the ACM Student Research Competition. Try your hand at solving the DesignFest® design challenge. And of course there are plenty of social opportunities for mingling and professional networking.
Go to the web (www.oopsla.org) today to reserve your place at OOPSLA ’06. See you in Portland!
Second Life
ECOOP
Conspiracies: OODB, CORBA, etc...
Rise and Fall of CORBA
I am hosting a panel on Objects and Databases at OOPSLA in Portland this year, on Oct 24th. Here is the working abstract:
Java and C# have brought Object Oriented Programming to the masses, yet programmers continue to struggle with persistent storage of objects. Juggling object persistence with requirements for simplicity, flexibility, maintainability, transparency, scalability and five-nines uptime can rattle even the most hardened architect. Solutions are still evolving rapidly and increasing in complexity, with no end in sight. At the same time developers continue to experiment with alternatives, both old and new.
This panel will discuss the state of the union between objects and databases, as seen from the trenches, with focus on current trends in object-oriented databases and object-relational mapping.
Panelists include:
* Robert Greene, Versant
* Patrick Linskey, BEA
* Erik Meijer, Microsoft
* Ken Rugg, Progress Software
* Craig Russell, Sun Microsystems
* Bob Walker, GemStone Systems
* Christof Wittig, DB4objects
It should be a lively and interesting discussion. I hope some of you will consider attending. I may add a customer representative or two.
Data mining the Explore UT schedule...
You can also view the official schedule.
ECOOP program committee

I just got back from the ECOOP program committe meeting in Paris. The meeting went well, but the highlight of the trip was that I accidentally found a Poilane bakery and even asked if I could visit le fournil in the basement. They have a huge woodfired oven, but the room itself was tiny. My French is still good enough after 20 years to get around and have reasonable conversations. I went to dinner with David Bacon.