For the past couple of days, I've been in lovely sunny Portugal. I was a speaker at JOIN2003, a technical conference at the University of Minho at Braga.
Speaking before me was Simon Peyton Jones, Haskell guru extraordinaire. The university teaches Haskell in the first year and lots of the students are complete Haskell-heads. Luckily I found out that they teach Perl in the last year (for the natural language processing course), but I was constantly joking that Perl was more, well, practical.
Simon gave a retrospective on Haskell, noting what he thought were particular good and bad moves for the language in the past. I haven't really done much Haskell since university so it was a great recap - I even understood what monads are about. I particularly like his view that the major problem with monads was the name, which just scares people off. Also, he suggested that being lazy by default was a problem (for performance: most functional programs can work just fine without laziness for 90% of the time), and that Haskell2 (or whatever) should be lazy just on programmer demand. I noticed a lot of similarities between Haskell and Perl 6, which I think should be interesting.
I then presented my "Little languages in Parrot talk", putting in a little bit more about the history of Parrot and Perl 6 than I normally do. I rattled the talk of pretty quickly as we were a little behind the schedule. It was fun being back at university again, but it was annoying how few questions the students asked. Howerver, I think overall my talk was successful as I have inspired a few people to investigate Befunge.
Speaking after me was David Welton, who explained how he built Rivet, a PHP-alike using Tcl and Apache. There were, of course, many other talks afterwards, some of which abused Powerpoint in horrible ways. In particular "Oracle and Very Large DataBases" was presented by a marketing droid and very boring. Some of the student talks were quite interesting however.
In the evenings there were a couple of fun events. One was a Counterstrike tournament, originally Staff versus Students but the Staff chickened out. I was a judge in a programming competition, with students having to write UNIX filters for a variety of problems in a short time using whatever language they chose. Many chose Haskell, but the Perl people showed off a little bit too. Some even chose to program C, but mostly spent the whole time fixing off-by-one errors and segfaults. Haskell won two out of three, with a particularly cute C program which called main() recursively winning the code style award. There was also an event where you had to find answers to a series of questions using the web, where I managed to scare everyone by correctly guessing the 300th digit of pi.
Throughout the conference, the organisers (Magda and Alberto) took great care of me, taking me out on the town and showing me Porto. I didn't know Portugal very well, but found it all very laid back and the food here is great. I also tested my theory that Chinese food is different around the world and succeeded by having some decidedly weird deep-fried ice cream.
Overall it was great fun and a wonderful conference to start my Perl Conference World Tour with. I shall leave you with the wisdom from one of the JOIN adverts:
E tu, queres ver alguéem vestido de cor-de-laranja? Sabes de que é que eu estou a falar? Então vai à JOIN, que é para aprenderes! ;) De orange_mistery@...
/s
Re:Haskell?!
ambs on 2003-06-09T10:13:38
Hi! I'm the Alberto guy!:-) Here in the university, programming languages are presented in this order (this will change a little sooner or later): Haskell, C, Prolog, Java Other languages are used but under other subjects: Perl for system admins and natural language processing, Visual Basic (yuck!) for some database applications, and so on.
Regarding the use of Haskell and not another language, teachers noticed that students which already program (C, for example) have more dificulties to learn Haskell than the virgin ones
:) Re:Haskell?!
educated_foo on 2003-06-09T13:14:28
This makes sense to me. I started out with Scheme, then C++, and it took me awhile to be able to write idiomatic Haskell. I'm still not comfortable in Prolog, but since I don't really have a use for it, that's not such a big deal.Regarding the use of Haskell and not another language, teachers noticed that students which already program (C, for example) have more dificulties to learn Haskell than the virgin onesI'm impressed by the language variety there, btw. Where I am now (UCSD), they throw the students right into Java, then have them pick up a bit of C/asm for compilers and OS. While the PL course here is sometimes taught in Haskell, it's optional, and most students don't take it (a shame). Most of the upper-level undergrads I've dealt with don't have a strong grasp of programming language semantics. So I find it surprising that a curriculum showing all three major programming paradigms succeeds (if it does) with more than a small minority of the students. Haskell's never struck me as particularly forgiving, either -- some of the type errors it gives are (to me) less than transparent.
/s