Java unconference in Crete. Day 4.

The fourth day started with the session “Scaling up teams. Motivating people to learn new languages”. It was a discussion about why not too many developers are willing to learn new programming languages. We were talking about two real-world situations:
1. The team lead gives developers 30 min a day to learn whatever software they want, but they use this time for coffee.
2. The team lead makes arrangements with the management to take 5 people to a hackaton instead of going to work at the firm’s expense – only three out of 60 people signed up for it.

IT managers often face the choice: either hire professional contractors experienced in specific language/framework/tool or train their own employees. IMO, lack of motivation is damaging to any IT shop, and people who are unwilling to keep their skills up to date should be let go. The sooner the better.

The next session was “Embedded Java”, which presented another proof that the unconference format works really well. Four people gathered in the room and everyone said that he was interested in this subject and hoped that someone else had a real-world experience working with embedded Java. No one knew much about it, and the session lasted for 10 minutes. Mattias Karlsson had this little chip with Java SE embedded. One of the use is to hang it on the trees in the forest. If the chip’s moving it’s a signal that some intruders are illegally cutting these trees. Programming for embedded devices is an interesting trade that requires software developers to write efficient code that can run in the devices with limited memory and slower CPUs.

Then I’ve joined the session titled “Devops Tooling”. Devops are species that beside writing code are curious about how it’ll run in production. Typically devops are breeded in startups. Do you care if your programs log messages that can be useful for people from operations and customer support? If yes, you have a chance to join devops population. If you went as far as setting up monitoring tools so people from operation could be aware of the status of your app without the need to bother your highnessy – you have arrived to your destination. On the photo you see three Carl Quinn, Mattias Karlsson, and Kirk Peperdine participating in the devops discussion.


For me the technical part of the conference finished in the room labeled “Functional programming in the post JDK 8 world” convened by Andres Almiray.
Andres stated that if you like it or not – you’ll be doing functional programming.
Juergen Strobel noted that in Java you should think first of a proper immutable structure, and then use functions. Java 8 has lang constructs and API to allow functional programming.
IMHO, for functional programming should be done in a self-contained modules using other JVM languages like Scala. Sven Reimers noted that the level of interoperability between Java and Scala running in the same VM is immature yet.

Then we spoke about Java 8 lambdas. Initially Java was a created as a blue collar language and now blue collars evolve. But I’m wondering how to teach the new Java 8 features to newcomers? I usually start with explaining object-oriented programming from Lesson 1 of my trainings. Mixing OOP and functional style of programming in the intro courses doesn’t seem right. It would be like teaching a two year old to drink beer – at this age kids have an impression the milk is the right beverage.

To my taste, Java remains the best language to teach the “Intro to Programming” course. People in the room suggested that Python or Scala could be used as the first one. Sure, the newbie’s mind is not cluttered with the Java way of doing things so the concepts of functional programming will be easier to digest.

In the evening the entire conference has gathered in the Heinz’s house. A Greek folk band was playing, some people were dancing while the others were eating, drinking and chatting Java.


Carl Quinn from Java Posse showed photos of the 3D printer he was building at home. I’ve asked Carl about Bruce Eckel’s Java unconference. He said it’s a similar event, but people are not allowed to bring laptops to the sessions and there are no formal presentations – it’s just a mike in the middle of the room – people discuss stuff.

For most of us this unconference is over, but some people are staying one more day for a hackaton were they’ll be explore Java 8 lambdas hands on.

JCrete is a well done and interesting event, and such format is more appealing to me than a formal conference setup. Between you and me, I liked it more than JavaOne. It’s a lot more interactive, and you meet and talk to many well known and respected people willing to share their experience. For me it was a new conference format, and I’ve enjoined every bit of it. The informal discussion format of the Java Specialists Symposium works perfectly for me. While traditional Java conferences can be useful too, the JCrete unconference gives me the biggest bang for the buck let alone those beautiful beaches and Greek hospitality. The future JCrete unconference may have different disorganizers, but meanwhile, my hat off to Heinz Kabutz for disorganizing this wonderful event three years in a row.

I’ll be back!


One thought on “Java unconference in Crete. Day 4.

  1. Yakov, you said “IT managers often face the choice: either hire professional contractors experienced in specific language/framework/tool or train their own employees. IMO, lack of motivation is damaging to any IT shop, and people who are unwilling to keep their skills up to date should be let go.”

    Are there some reasons for IT manager to hire contractor instead improve skills of his team? Lack of curiosity is very bad thing, but in really enterprise you have time/opportunity fot learning some new technologies not always. Maybe it will be better to hire contractor once?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s