On 11 December, 2003, the Israeli Perl Mongers held their regular monthly meeting. The program:
- 18:00-19:00 -- Assembly and light refreshments
- 19:00-19:40 -- Shlomo Yona: "The garbage collector of Perl"
- 19:40-20:00 -- Break and refreshments
- 20:00-20:15 -- Ran Eilam: "Test Driven Development with Java and Eclipse"
- 20:15-21:00 -- Shlomi Fish: "Haskell for Perl Programmers"
- As usual after the meeting we will go out to a nearby pub/coffee-shop/etc. for a post-meeting social gathering.
- Hezi Golan
- Kfir Lavi
- Martha Greenberg
- Mikhael Goikhman
- Offer Kaye
- Pinkhas Nisanov
- Ran Eilam
- Ronen Shemesh
- Semuel Fomberg
- Shaul Karl
- Shlomi Fish
- Shlomo Yona
- Thomas Maier
Meeting Summary by Offer Kaye
When I got to the meeting around 18:05 there were already a group of people who had come early, and fairly quickly most of the rest of the people came. Gabor could not come to meeting, so around 18:30 Ran collected some money from everyone and went together with Shlomi to get some food and drink.
Then at 19:00 it was time for the first lecture, which was titled
Garbage Collection in Perl and was given by
Shlomo Yona. From the very first slides the lecture generated a lot of discussion- garbage collection (GC) must
be a subject close to the heart of many programmers ☺
A local copy of the lecture is linked to above- if you wish to read more about GC start there, or go to the sources mentioned at the end of the lecture. Wikipedia's Automatic Garbage Collection page is also a good starting point. In addition, if you're curious about Perl 6's garbage collection, you can read PDD 9 and the Dead Object Detection page on parrotecode.org.
Shlomo finished his lecture at 20:15, at which time we all cheered him for a very interesting presentation and took a 15 minute break.
At 20:30 Ran Eilam gave a short 15 minute lecture about Test Driven Development with Java and Eclipse. Actually, Ran didn't settle for a dry lecture, he actually gave the lecture while at the same time developing in front of our eyes a basic "checkbook" application written in Java, thus demonstrating at every step of the way the concepts he was talking about such as "test first" and refactoring. The lecture was a truely impressive example of both Ran's virtuosity as a lecturer and rapid code developer and the ability of Eclipse to automatically refactor Java code. We were all sorry to hear that Perl cannot be automatically refactored in a similar manner, due to its complex syntax. Oh well, at least there is always the option of manual refactoring.
The final lecture was an Introduction to Haskell by Shlomi Fish. Haskell is a functional programming language with support for such interesting features such as recursive functions. Like all functional languages its syntax is very different from Perl's, a fact which made it difficult for Shlomi to explain the examples he gave in the lecture. However the example code he ran was very nice, I especially liked the infinite lists code examples.
Due to lack of time (as always we had to wrap up at 21:45) Shlomi did not give the entire lecture but for the interested the slides are linked above. More info on Haskell can also be found on the haskell.org website.
After the technical meeting wrapped up five of us decided to continue the evening in a local pub together. This was a lot of fun, just as it was the last time, and I hope these pub evenings will become a tradition of the Israeli Perl Mongers.
Meeting Summary by Ran Eilam
We were sad when we realized that our fearless leader could not make the meeting. It meant we had to buy our own cakes. Donations were provided and indeed many cakes were eaten. Unfortunately, most people did not like the new halva flavor.
Shlomo took over the formal introductions. Everyone knew everyone. It was shorter than usual, as it did not include Gabor's customary motivational speech, which always works for me.
Shlomo kicked off the meeting with a highly focused talk about garbage collection. He started with the general computer science problem, and ended with the Perl situation. One interesting point he made is that sometimes it just does not matter. Another is that it is a very old, well understood problem. He talked a little about computer science history and biographies. I would have liked to see more practical examples where GC is an issue, but perhaps there was no time. There were many questions during the talk, and at least 3 arguments. Another reference to the subject, which shows the weaken solution Shlomo talked about, and a technique using proxies (for when you cannot use weak refs), is at http://www.perl.com/pub/a/2002/08/07/proxyobject.html. (note - here's a slashdot thread about memory allocation with some interesting and relevent posts - Offer Kaye)
TDD with Eclipse
Next Ran Eilam gave a 7 minute talk about test driven development with Eclipse, focusing on how to get eclipse to write code for you, according to the only thing you actually do write (almost): the unit test. Mikhael Goikhman was not impressed. His position is that people who use this will become code monkeys, and will not understand the code they write. Kfir wanted the Eclipse quick-fix feature for a Perl IDE (who doesn't?), but thought maybe it can be done. After we convinced him out of it, Offer voiced a hope that maybe a non-optimal solution, a good-enough solution, could be found. After discussion, we decided that probably not.
Shlomi Fish gave a computer-science-style introduction to Haskell. Now we know where the verb to curry comes from. He chose good examples, and explained the easy ones very well. We had some problems with the more complex. It seems functional programming is incompatible with how most of the il mongers think. This makes it hard to learn, as you must change the way you think.. The run-length encoding example was particularly succinct, and I wait with anticipation to see its Perl twin. Generally, if you give a foreign language talk to the mongers, try to connect it as much as possible to Perl.
Update: Shlomi Fish and Mikhael Goikhman have provided Perl imperative and functional solutions respectively. Thus we are able to see that this is a problem that lends itself better to a functional solution. Which opens questions like: what kinds of problems are best solved in a functional way? and others, that will be answered if someone does the Functional Programming in Perl talk that Shlomo requested.
As always, my critique of Shlomi is that for some reason, despite overwhelming evidence, he thinks we are way smarter than we really are.
Some of us headed for the bar. The owners were very nice to
us, and Offer had some bizzare smoked sardine mezzet. It was
strange talking Perl with this funky fish staring at me. The
problem went away when Offer disposed of the head. Because Migo
requested, we agreed to sit outside, as he had obviously not been
outside for many months.
Turns out the pub is a reincarnation of a super-sleazy 25 year old Haifa pub in the harbor, usually visited by sailors and the women who love them. In my youth I had some great fun there.
There was an argument about pair programming, talk about verilog text editors, and many other subjects I cannot possibly remember. They are washed forever by the sands of time, as is this review.
These meeting summaries were written by Offer Kaye and Ran Eilam.