Eran's Blog

DevGeekWeek 2014


Poetry for me is based upon exploring and practicing language. Therefore, I am attracted to programming in general, and specifically to the evolution of programming languages. I code for living, but also for the poetics. And so I found myself giving a full-day workshop on Java 8 in DevGeekWeek – A popular conference, which is basically a week of geeks teaching code.

As a child I started programming Basic and Pascal. My first degree forced me to move to the C/C++ world, so one of the first things I did when I finally graduated, was to explore the new kid on the block – Java. I really liked the way Java 1.1 and 1.2 imposed some of the most discussed Design Patterns on the developers. It looked so promising for 1997/8 :-), and it was fairly simple to use, but most people still believed it was too avant-garde…

Eran Hadas devgeekweek

The current state of the art language is Scala, which I love so much I have written my upcoming book using it. However, I want to remain loyal to Java, and since Scala is so good, some elements were taken from Scala to improve it, forming Java 8.

Without getting into technical details, Scala is more than a language, it’s an elaborate philosophy. It’s about humankind looking at computers in a different way. Instead of treating computers as physical machines, the Scala universe abstracts them into entities that implement mathematical models and computations. Instead of an imperative point of view, in which humans give commands to the computer, Scala offers developers the option to rely on computational functions.

devgeekweek slide

Scala is so beautiful because it builds on existing theories about “Functional Languages” that existed in older languages (such as Lisp), but it kind of “keeps it real” by combining it with more “perceived as practical” paradigms, such as Object Oriented Design. On top of that, Scala lives within the Java universe, which means Scala code and Java code can address and replace each other, so if one gets stuck in Scala, s/he can revert for that specific task to Java. For me this relationship is reminiscent of the one between Modern Hebrew and Biblical… I love both, and hope they can team up instead of competing one another.