research

Java as an interruption

March 8, 2004 14:17:59.733

I've come across an interesting call for papers from a post Java set of workshops. The very name of this event is interesting: 2nd Workshop on Object-Oriented Language Engineering for the Post-Java Era: Back to Dynamicity. It seems that the R&D community in software is starting to realize that Java - and C# - are the last signposts in a dead end area of software, not the heralds of a new way of doing things:

The advent of Java has always been perceived as a major breakthrough in the realm of object-oriented languages. And to some extent it was: it turned academic features like interfaces, garbage-collection and meta-programming into technologies generally accepted by industry. Nevertheless Java also acted as a brake especially to academic language design research. Whereas pre-Java Ecoop's and Oopsla's traditionally featured several tracks with a plethora of research results in language design, more recent versions of these conferences show far less of these. And those results that do make it to the proceedings very often are formulated as extensions of Java. Therefore they necessarily follow the Java-doctrine: statically typed single-inheritance class-based languages with interfaces and exception handling.

That's certainly been the case at OOPSLA the last few years - all Java, all the time - and pretty much none of it new. Instead, it's been a progression of things that had already been learned, but redone in Java. In that respect, the academic world has been echoing the goings on in IT shops during the late '90s bubble - things were redone in Java, and not for any really good reasons. The herd jumped that way, and everyone got behind the herd. Now, it would seem that two things have started to occur:

  • IT shops have reconsidered large rewrites as a strategy (the budgets for such things have become very hard to justify)
  • The academic world is waking up and realizing that there might be some value in looking elsewhere.

This is all very good news for those of us who have thought that Java represented a sideways step. Yes, the mainstreaming of VM technology and of garbage collection have been altogether good things - I no longer have people questioning their value. However, it's also meant the continuation of a very static approach to systems development. Look at web applications - nothing really new has been invented in that space except in the dynamic arena - Seaside and other continuation based web frameworks have come out of the dynamic language camp (Smalltalk, Scheme, Lisp) - not out of the Java or C# side of the house. All we get from there is masses of XML based "advances" (Struts) that represent a status quo solution to an existing problem. All the new thought is coming from the dynamic niche - which is exactly the sort of problem that people behind this workshop see:

Recent academic developments seem to indicate that a new generation of application domains is emerging for whose development the languages adhering to this doctrine will probably no longer be sufficient. These application domains have recently been grouped together under the name Ambient Intelligence (AmI). The visionary idea of AmI is that in the future, everybody will be surrounded by a dynamically defined processor cloud of which the applications are expected to cooperate smoothly. AmI was put forward as a major strategic research theme by the EU's IST Advisory Group for the 6th Framework of the EU. Meanwhile, the first european symposium on AmI has recently been organised and institutions like the MIT and Phillips have published their visions on the matter. Currently, AmI seems to group previously "unrelated" fields such as context dependency, domotics, ubiqutous computing, mobility, intelligent buildings and wearable hardware. Early experiments in these fields already seem to indicate that their full development will need a new generation of programming languages that have dedicated provisions to deal with highly dynamic hardware and software constellations. As such, AmI will open up a new "market" for a new generation of programming languages which are designed to write software that is expected to operate in extremely dynamic hardware and software configurations. In the past, lots of languages answering this profile have been investigated. Examples are Lisp, CLOS, Scheme, Self, Smalltalk and loads of less well-known academic languages. Give the new constellation outlined above, we believe there is a new future for languages like this. The goal of this workshop is to bring together researchers in object-oriented language design who adhere language features and languages that do not follow the current Java doctrine but adhere more "dynamic features".

Take a look at what's being said there - these folks believe that we need progress, and it's not going to come from the static side of the house. There's progress to be made, but doing so requires a more dynamic style of development than is possible in languages like Java. I have to say, it's nice to hear some validation of the sorts of things that we dynamic language advocates have been saying for years now. With any luck, OOPSLA will start being an interesting show again, instead of "Things we already knew how to do, but have applied to Java".

If you are interested in this from a research standpoint, then follow this link and get involved with the workshops.

Comments

interpreted languages in Java

[] March 9, 2004 14:17:16.679

I don't buy the "static languages are inherently limited" meme. That's like saying that C is inherently limited, when plenty of interpreted languages have been written in C. If you want a dynamic language, why not run jython? There are also Smalltalk interpreters in Java, if that's what you want.

Re: Java as an interruption

[James Robertson] March 9, 2004 15:05:01.848

Comment on Java as an interruption by James Robertson

It's not that static languages are inherently limited in an overall technical sense - it's that the effort required to accomplish something in a static language is so much higher than it is in a dynamic language. And sure, I can run Jython, or Smalltalk, or Lisp (etc) on a JVM - if I'm willing to accept sub-par performance due to the assumptions made by the VM.

Java as an Interruption

[Jim Fenner] March 10, 2004 5:14:57.564

If you want to do productive BUSINESS PROGRAMMING - and I hope that doesn't cause gasps of surprise and disgust in this forum - then it'll be a cold day in hell before any of the modern inventions/frameworks comes within a bull's roar of matching PICK, invented circa 1968 by the late and much-missed genius, Dick Pick. Unified storage in a flat address space, a built-in database, dictionary-based shell and file system, a powerful and expressive programming language. Conceptual integrity and elegance coming out of its ears. One business analyst and one programmer could spec and build a (character-based) application in a week, and that was starting on a box which just had the OS clean installed. If you wanted to buy and install development packages/frameworks, they naturally sped the process up, and prettied up the final result. There were lots of things missing from PICK, and it has been left behind (like BEOS, which I think of as its inheritor) but for businesses wanting to get the job done, PICK was great.

Re: Java as an interruption

[James Robertson] March 10, 2004 8:26:07.257

Comment on Java as an interruption by James Robertson

Jim, you make my point :)

Re: PICK

[Olivier Lefevre] March 10, 2004 16:48:05.639

Sounds very much like K (www.kx.com)

Re: PICK

[Mike Klein] March 10, 2004 22:04:26.838

I used Pick for a long time. They engender as loyal a following as Smalltalk, and I think the reason for that is similar. Both system have the programmer working from inside the system, rather than from outside. A particularly radical solution for a database, especially in 1968 (before Smalltalk). Oddly enough, they have a web-app framework called Coyote with uses continuations very similar to seaside. It uses Pick Basic, and you "input" the web form, and then "print" the html, a read/eval loop that is the heart of all of those programmers text menu based systems. Very easy to program, and the locus of control through a single program corresponds to the users session. The app programmer never thinks about requests and responses.

Untitled

[Carl Gundel] March 11, 2004 0:46:36.397

Some programming languages make it hard, and some make it easy. I've built some pretty nifty things in Java. Boy that was really hard! But once I got the required functionality in there, I was too drained (not to mention out of time) to bother taking it to the next level. Smalltalk's lightweight syntax, extensibility and live object image do a lot to reduce the time and energy required to build ambitious software systems.

Be ambitious, Use Smalltalk!

Jython and the Java Platform

[Randy Hudson] March 14, 2004 13:38:27.720

Aside from making people think VMs and GC are OK, an outstanding benefit of Java is the runtime library. One of the best things about using Jython (or, I presume, many other JVM-based dynamic languages) is that this whole great mass of useful code is instantly available.

 Share Tweet This
-->