Matthias Noback

DomCode 2016 Conference Report

Matthias Noback

Last Friday I attended the DomCode conference in Utrecht. This is a very friendly, inclusive, welcoming conference. Organisers Aisha Sie, Lucas van Lierop, Ross Tuck and their extensive team of volunteers did a wonderful job at fixing all the big - and small - stuff. They succeeded in attracting ~275 people to come to the capital of our province, Utrecht, where coincidentally one of the Ibuildings offices is located too. In fact, Lucas van Lierop is one our employees, and Ross Tuck has been one in the past. So it only made sense for me and several others of the Utrecht team to attend the conference, and even help out during the day.

Judging by all the smiling faces and lively conversations, the conference was a big success. Topics that range from useful, interesting, fascinating, exotic to sometimes die hard, are what makes people buy a ticket for DomCode.

Although it's a cross-language conference, I recognized many people from the PHP community. This is a great thing, since I think that the PHP community in general might be a bit too self-centered. It's good to peek around the corner and see what other great things are out there (to paraphrase the opening words by Ross: "Outside. It has a steep learning curve, but I can assure you, it'll be worth it.").

The same is true with regard to the levels of computer science and theory we PHP developers usually tolerate at a conference. In that respect, DomCode is a welcome alternative.

To give you an idea of the content, I'll take a bit of time to review some of the talks now.

The Pony Programming Language

A talk by Sylvan Clebsch, creator of the Pony programming language. An interesting introduction on some of the theory underlying the design of this "object-oriented, actor-model, capabilities-secure, high performance programming language". Apparently, it handles concurrency really well. For example by "tagging" variables/values so they can be used only in certain ways (e.g. write in one place, read everywhere). This allows for very fast programs, in terms of concurrent operations, memory sharing and garbage collection.

This talk demonstrated that I'm not used to much when it comes to topics from computer science. It was hard to follow along with the story (not just for me, looking at what came by on Twitter). I did feel encouraged to read more about the Pony programming language, but I guess I'll approach the topic of parallel programming an the actor model through Scala first, before taking it a step further with Ponylang.

Oops! OOP's Not What I Thought

This talk covered a topic that's dear to me: what object-oriented programming "is about". The speaker, Anjana Vakil, presented this topic in a very light manner. Of course she brought us back to Alan Kay's thoughts on objects. Coincidentally, this same Alan Kay had a public appearance at the Codemesh conference.

Objects with proper boundaries, encapsulating state, sending messages to each other; this is how objects ideally would be designed. They work together to produce a fully working machine, in the same way that biological cells work together as part of organs, and from a bigger perspective, produce the complex behavior of an entire human body.

Distributed Disarray

Like last year, DomCode 2016 had a community track as well. This track contained talks by local community members who represented their respective local tech groups (like the Utrecht JavaScript Meetup or role=drinks). This is a great idea. It allows groups to advertise their presence to people who otherwise might not get to know them.

I'd recently seen some tweet about the Papers we love community. This is a global community, with groups gathering in different cities around the world. There's a group in Utrecht too. At every meetup they present a computer science or related paper and discuss it afterwards. Intrigued by the idea, I went to listen to Laurens Duijvesteijn talking about some of the problems of distributed computing.

His talk briefly touched on some of the major topics like time and ordering (we should treat time in a relative manner) and Consistency/Availability/Partition tolerance, of which we can pick only two; we can't have it all. I think these topics were touched upon too briefly, but to me this talk was definitely an encouragement to find out more about this topic, as well as to keep an eye on the meetups planned by Papers We Love Utrecht.

How Do Kids Program in the Wild?

I thoroughly enjoyed this talk by Felienne Hermans. She covered some of the results of her team's research, at Delft TU. They investigated the programming behaviors of kids. Children around the world learn the basics of programming using Scratch, created by MIT in the US. This program can be used to create small interactive, programs. Many would expect these Scratch programs to be little games, with cute little sprites and sounds. However, after analyzing 250,000 programs, most of them appeared to have no user interaction whatsoever.

Statically analyzing these Scratch programs, they found out that children produce smelly code (long methods, duplicated code), just like grown-ups do. In subsequent research they found out that smelly code is indeed harder to work with for children too. To prevent future grown-ups from producing bad code for the next 10 years, Delft TU produced an online course, mainly targeted towards children, teaching them to create automatically tested, maintainable Scratch programs. I found this quite impressive.

How To Effectively Grow a Development Team

As co-organizer of the Symfony User Group NL I was allowed to claim a spot at the community track as well. The speaker who represented our group was Jeroen van der Gulik. He had already presented this talk at one of our meetups, so I knew it already (which was true also for some audience members, who apparently are big fans of Jeroen and will always come to listen to him, no matter what).

His talk is a very important one, since it's about developer culture, how to grow one, but also how to spot a good one. Developers and managers everywehere really need to know more about this topic. Software is getting more and more important to society, yet we generally don't take enough care in carefully growing and nurturing teams of smart programmers.

By the way, the future of the Symfony User Group itself is quite unclear at the moment. But I'm sure we'll have something up and running in (and around) Utrecht very soon.

Conclusion

I hope this review gave you some ideas about the DomCode conference. With two editions in a row, this conference is a community event that deserves another edition, in 2017. Congratulations, and thanks to everyone involved.