archives

Technometria: Google Web Toolkit

Phil Windley Technometria podcast is dedicated to the Google Web Toolkit. The guest on the show is Bruce Johnson a Tech Lead of GWT.

The show is very good, and more technical than usual. Many themes that are near and dear to LtU are discussed. Here are some pointers:

Bruce talks at length about the advantages of compiling from Java to JS, many of which arise from Java's static typing. He mainly talks about optimizations, but also about how static typing helps with tools in general (IDEs etc.). This was a subject of long and stormy debates here in the past.

The advantages, from a software engineering standpoint, of building in Java vs. JS are discussed. This is directly related to the ongoing discusison here on the new programming-in-the-large features added to JS2. I wonder if someone will write a compiler from Java/GWT to JS2 at some point, which will enable projects to move to JS2 and jump ship on Java all together.

Bruce mentions that since JS isn't class-based, and thus doesn't directly support the OO style many people are used to, there are many ways of translating common OO idioms into JS. This is, of course, the same type of dilemma the Scheme community has about many high level features. Cast as a question on OOP support the questions becomes is it better to provide language constructs that allow various libraries to add OO support in different ways, or to provide language support for a specific style. The same can be asked about a variety of features and programming styles, of course.

Finally, Bruce mentions that as far as he knows no one thought about something like GWT before they did. Well, I for one, and I don't think I was the only one, talked many times (probably on LtU) about Javascript as a VM/assembly language of the browser, clearly thinking about JS as a target language. I admint I wasn't thinking aobut compiling Java... But then, I am not into writing Java, so why would I think about Java as the source language...

PL research & grad schools?

I'm a senior undergraduate looking into graduate schools with an eye towards PL. I am strongly considering taking a year off after graduation but figured I should start looking now. Given LtU's audience I thought here would be a good place to ask if anyone has any particular recommendations for places to apply to. Also any tips on getting in to such a program would be welcome ;)

The biggest point against me I think is that I'm coming from a liberal arts college (so we take just Algorithms, not Algorithms 101, 102, and 103). Most of my learning so far has been self driven. My college has a PL course but it's mainly oriented towards making sure students are exposed to FP before they graduate rather than formal semantics or type theory. Instead I'm taking PL as an independent study geared towards the more advanced -- I've read most of my prof's old copy of The Denotational Description of Programming Languages (Gordon) and will soon move on to lambda calculus and eventually type theory. I expect that as my formal knowledge develops I might find specific PL researchers I would be interested in working with, but alas I'm not at that level yet.

I find everything from formal semantics down to the compiler to be interesting, except for parsing, but perhaps it has simply not been presented in an exciting way yet. :)

[ANN]: Open Quark Framework for Java, version 1.7.0 released

The Open Quark team is pleased to announce version 1.7.0 of the Open Quark Framework for Java.

Open Quark is a BSD-licensed lazy functional runtime for Java, with a native language called CAL.
The motivation for Open Quark is to allow embedding of lazy functional logic within Java applications, including full functional metaprogramming (under Java control) if required. The framework also allows standalone CAL applications to be created.

1.7.0 is a feature release, with important enhancements, including:

  • A tool to create standalone library JARs, with multiple entry points (complementing the existing ability to create standalone applications with a single 'main' function as the entry point).
  • New/enhanced libraries, including a full XML parser and encoder and a Parallel module for concurrency control, amongst others
  • Ability to declare record instance functions straightforwardly in CAL
  • Improved refactoring and other support in the Eclipse Plug-in
  • A Record Creation special Gem in the Gem Cutter
  • Improved memory use

Please see the release notes for a full description.

Downloads are available on the main Open Quark site.

Feedback and other contributions to the project are very welcome. Please visit our discussion forum.