General

Programming for non-programmers

A thread over on the PLT mailing list that LtU-ers may find interesting.

The thread isn't very technical, and the title may be a bit misleading: It's more about programming skills than about programming by non-programmers.

I wonder how many people outside the PL community would agree with the statement that Programming is just another name for the lost art of thinking. Perhaps a better formulation would be Programming, done right, is just another name for the art of thinking.

And by done right I mean using the right languages, of course.

MOZ 2004 talks available

The MOZ 2004 "Second International Conference on
Mozart/Oz" just finished a week ago. There were
50 participants and 23 technical talks. It was quite an
interesting and intense event, with lots of animated
discussions. We have put most of the talks on the
MOZ 2004 main page. I invite you to take a look at
the wide variety of stuff going on under the Mozart
banner.

Statistical programming with R

Three part series on R that's of interest for domain specific PL development. First parts can be found at Part 1: Dabbling with a wealth of statistical facilities and
Part 2: Functional programming and data exploration. (Part three is still in the works). R is a suite of software facilities for data manipulation, calculation and graphical display, which is quite useful for statistical analysis. It builds upon the S language developed originally at Bell Labs.

A three-part series, ...introduces you to R, a rich statistical environment, released as free software. It includes a programming language, an interactive shell, and extensive graphing capability. What's more, R comes with a spectacular collection of functions for mathematical and statistical manipulations -- with still more capabilities available in optional packages... The (GPL'd) R programming language has two parents, the proprietary S/S-PLUS programming language, from which it gets most of its syntax, and the Scheme programming language, from which it gets many (more subtle) semantic aspects.
R and S were touched on fairly briefly in the LtU discussion about Regression Analysis. A more detailed introduction can found be found at An Introduction to R.

LL4 Call for Presentations

LL4 will be held at MIT on Saturday, Dec. 4. The due date for presentation proposals is Nov. 12.

We solicit abstracts of talks to be given at the workshop. Go for it -- convince us. Talks will be 30 minutes long, including time for questions and answers. Presenters are not expected to submit papers, but slides will be published on the workshop web site. We will also consider proposals for talks of different lengths.

Research ethics

Most of the research we discuss here on lambda is theoretical research, done with mathematical tools. But what about research about actual language use, those "human factors" we are so fond of discussing?

Research of the latter kind requires empirical data, the gathering of which, as Ralph Johnson discusses here, may pose ethical problems.

For what it's worth, I agree with Ralph that this is an "idiotic opinion," but it's an issue that might cause problems for some of the grad students reading LtU.

Not really related to this is the fact that doing meaningful research of the kind I am alluding to here is pretty darn hard, in fact quite close to being impossible.

CLRFIs

An open standards process for Common LISP was announced a couple of weeks ago at the Amsterdam LISP meeting, the ALU CLRFI standards process, apparently modelled on the Scheme SRFI. So far only one standard has been submitted, a features testing standard.

Open standards processes such as the CLRFI have the potential to be of general value to people interested in language design issues, since they can bring out a great deal of tacit wisdom about language and library features that is otherwise difficult to get hold of.

Curently there is not much information about the whys and whats of the CLRFI process, though Kent Pitman has argued for some time that Common LISP needs a SRFI-like program. More information awaits a hungry audience!

Templates vs. Generics

Bruce Eckel gives his take on C++ Templates vs. Java Generics, using the example of an apply() function that will apply any method to every object in a sequence:

What I found in modifying this example and translating it to Java was surprising. As far as generics go, it does in fact support my thesis that erasure emasculates generics. What is surprising is that ... the Java code is small and elegant, and far less verbose than the C++ code,... Alas, generics had nothing to do with this succinctness – it was actually reflection and varargs that were responsible. And so the power of reflection continues to be one of the most interesting features of Java, even though its runtime uncertainty is at odds with the Java Generics goal of eliminating ClassCastExceptions.
I figure the goal is for the compiler to proof the type correctness, but he's right in that RTTI is at odd with that goal.
(Also of interest, is the link to the Java Generics FAQ).


[Edit Note: The URLs should be working again]

J2SE 5.0 released

Sun announced the release of the Java 2 Platform Standard Edition 5.0.

Most of the new features that are interesting from a language design perspective were discussed here in the past. These include generics, autoboxing/unboxing, metadata and typesafe enums. We also discussed some of the new libraries and APIs.

I can understand how Gosling is feeling right now: I wouldn't feel comfortable being responsible for a language without generics...

What's next for Java? The new release model is explained here. The general design philosophy here.

Java and coolness, a discussion

Jack Shirazi posted this somewhat amusing discussion.

"I guess we just move in very different circles.". Bingo... the people you know and trust think Java is 'cool,' whereas the people I know and trust think its 'uncool.' Therefore, I see people leaving in droves, whereas you see people coming. So the question boils down to, which group is more reliable in making that judgement? Probably neither... but I'm still going to rant a bit more.

I guess this is related to Graham's Hackers meme. It was almost impossible to argue against Java a couple of years ago, now it is 'officially' uncool...

Which goes to show you that language coolness is much more about community and buzzwords than it is about real language features, right?

Programming Language Popularity

Mind as well complete the daily trifecta and post the article on Programming Language Popularity. The author combines search, advertizing and job data to try and draw a measurement on various aspects of popularity. Open to criticism, but the results are somewhat non-surprising given the weights applied, and coming up with a truly objective measurement is probably impossible.

In conclusion, if we look at the data available to us, especially as presented in the final, normalized chart below, we can see that there are broad patterns in language usage. Beyond the overall ranking, it is also possible to see whether a language is more used (jobs) or promoted (ads), and also whether it is used for open source projects, where presumably the participants have chosen a language because they feel it is truly the best choice, rather than dictated by management or commercial needs.

XML feed