General

eWeek: 'Exotic' Programming Tools Go Mainstream

The January release of Franz's Allegro Common LISP 8.0 puts developers on notice that "exotic" programming tools, long relegated to research environments, are becoming more viable options for mainstream applications. LISP, PROLOG, genetic programming and neural nets are among the technologies increasingly ready for Web-facing roles.

I'll let you draw your own conclusions about this article...

Robert Harper Named as ACM Fellow

The ACM has named 34 new Fellows for 2005, one of whom is Robert Harper, "for contributions to type systems for programming languages." This recognition is certainly well deserved, and Harper's work has been discussed here many times.

Here is the official ACM press release.

Wadler's Blog: Penn, PADL, POPL, and Plan-X

I spent 5-15 January visiting U Penn and attending PADL, POPL, and Plan-X in Charleston, SC...

Interesting trip report.

I encourage you to lure Philip into a LtU discussion...

Modeling Genome Evolution with a DSEL for Probabilistic Programming sounds interesting, I'll have to look it up.

And talking about possible applications for Links, doesn't building a Google-Web Services APIs-AJAX DSL sound like a cool application for Links? Think about it as the easiest way to program an AJAX applications based on web services APIs, and automatically integrated into the Google universe (think Google maps etc.) If anyone from Google is reading this - this might be a cool "20 percent time" project... I won't go on since I am sure you can all imagine the possibilities (e.g., think about it is a scripting language for writing widgets for a future incarnation of a "Google Pack").

Scala 2

A beta version of the new Scala compiler (aptly named nsc) is now available. It's written in Scala and implements a new version of the language (aptly named Scala 2), which boasts some pretty tempting features:

  • generalized package visibility rules (a small thing, but sorely missed in Java)
  • a new mixin composition model
  • a generalized implicit parameter mechanism to replace views (views always seemed like a slightly unfinished feature, a problem which seems to have been neatly solved)
  • more flexible typing rules for pattern matching, effectively introducing GADTs

There are some other changes as well, but I expect implicit parameters and GADTs to get the most attention. Scala has been mentioned quite frequently lately, and I imagine quite a few people will want to take a(nother) look. In addition to the general information about this release, there's also a detailed description of the language changes.

Paul Vick: Language Design & Paying the UI "Tax"

We’re at the point now with LINQ where we’re really starting to take a serious look beyond the language features, cool as they are, and pondering how these features are going to integrate with the UI. (It’s not like we haven’t thought about it at all, we have, but now we’re really taking a look at things end-to-end.) And so we started by coming up with a “language UI taxes” list that I’m shocked we haven’t put into a more concrete form until now. The various taxes that a language feature is going to have to pay include, but are not limited to...

What follows is quite a long list of things you have to think about designing the IDE.

I am one of those that think it is [o]ne of the wonderful things about working on a compiler... that... [y]ou don’t have any UI, but that doesn't mean, of course, that IDEs aren't here to stay...

We still have a long way to go, I think, in terms of understanding the subtle relationship between language features and IDEs (and vice versa). I wonder when this issue will enter the PL curriculum.

Auld Lang Alice

So any ambitious souls out there that have a plan to tackle a new PL for 2006?

It's been a year now since I picked Alice as my language of 2005. I suppose it was a fairly productive year, given that I managed to translate large portions of the first eight chapters of CTM and even brief portions of SICP and TAPL. Though most of that was done in the first six months of the year, and I've had very little time to subsequently move forward.

Having stalled out (what with working two jobs, taking a graduate course in discrete math, and generally helping the kids with 4th grade, 9th grade and college freshman courses), I'll probably carry on with Alice for the new year. Unfortunately, in the present I'm too preoccupied with C# to accomplish much of anything from a conceptual angle.

Mind Mappers

OS and web search vendors are merging desktop search into their offerings. Vendor solutions vaguely worry me. They seem too focused on the home PC and not on business needs, while needlessly bypassing RDF. There's also vendor lock, bad EULAs, privacy negligence, and lost boundaries between OS, applications, and data - proprietary black boxes tempting us into dependence.

That thinking led me to the open-source Mind Raider program. It's one of the few that makes RDF useful for normal people. It compares to Chandler but focuses less on email and calendars. As far as I know, Chandler doesn't expose RDF or even use it, necessarily. However the Mind Raider Big Picture shows similarity to Chandler's vision.

So why should this stuff matter to LtU. Well, compare formal organization between data that only computers inspect and data that people use daily. Many database systems exist to store data in the former category. Employee and customer address data serves little purpose beyond printing paychecks and shipping labels. A human will not care about values except that they not be empty. Granted that people do use databases to track sales figures and other aggregates. Still even those folks use data in the latter category: stray thoughts and reminders, sticky notes, social and business correlations, restaurant napkin sketches, collaborative data, recorded conversations, news clippings. A large cloud of miscellany doesn't rise to the level of application documents or the formality of enterprise systems.

Few systems exist to aggregate and organize that stuff. If your brain suffices, then good for you. The rest of us need a crutch. Some people use spreadsheets to store lists simply because there's little else available. I've used software which imitates sticky notes on screen. It leaves much to be desired. There are dozens of little programs for narrow data types - address books, internet bookmark apps, password managers, photo albums, etc. How do you tell the address book that the photo album has pictures of the guy, and that his web link lives in the bookmark manager? Right now, you don't. And programs never organize data just the way you want. Besides, exceptions to the common format always arise. So the problem is not just searching documents and email, nice as that is, but organizing human details in useful ways. Moleskin notebooks and Dictaphones have been around a long while. It's time for cool software.

Somehow RDF seems primed for the role, but it needs less abstract public relations. Raw RDF may not be the ideal presentation but still seems a likely candidate for the underlying data model. Each individual develops a personal ontology (aka "working style" if you will) over years of time. RDF can capture that, but it will take friendly programs like Mind Raider. What do you think?

Language affects 'half of vision'

Yes, a new study about Sapir-Whorf,

The researchers said the findings supported the Whorf hypothesis, but only in the right visual field.

Report co-author Aubrey Gilbert said: "Previous studies addressing the possible influence of language on perception have tended to look for a simple yes or no answer to the question.

"Our findings suggest a more complex picture, based on the functional organisation of the brain."

This is by no means the last word on this fascinating subject...

Beyond "Beyond Java" etc.

As the year winds down, the programming language news keeps flowing; at this point I wouldn't be surprised by major New Year’s Eve announcements...

It seems we are not keeping up with the latest news.

The MetaC Language

(via Keith)

The MetaC language extends C in a 100% backward compatible way with reflective features and techniques for refactoring, reconfiguring and modifying arbitrary C source code. Therefore, the extensions provide special metadata types for working with source code information, syntactical structures for the definiton of code templates, and metafunctions to gather information about source code and refactor, modify, delete, or insert code.
XML feed