Connect week Austin
Door Gert-Jan van de Streek / jul 2017 / 1 Min
Door Mats Stijlaart / / 3 min
Last week we've sent a group of people to the Devoxx Antwerp conference, and luckily I was one of these people. Devoxx is a massive conference for the Java community that brings developers closer to modern tools, technology and practices. This blogpost is a small write up on the interesting things we have seen over the week. I'll iterate over the most interesting topics and talks (in my opinion).
In the schedule some topics - the so called Devoxx 2017 buzzwords - really prevailed over the others. In my perspective the top 3 interesting topics that will shape software development in the upcoming years are the following.
Serverless is a the concept of defining which software you want to run, but not how. The how is provided by your cloud provider. For example, running a JAR on a JVM, or some SQL script on a Postgres instance. You do not build your infrastructure, it is provided by your provider. The big players already have architectures for this in place. Amazon has S3, Lambda, DynamoDB, SNS and more. Google has Firebase, Google Cloud Storage, Functions and more. Last month Oracle announced Fn-An, which is also a step towards serverless architectures.
One of the biggest advantages of this architecture, is that responsibility of the scaling moves from you to your cloud provider (and probably they are more skilled at it than you are). The second main advantage is the economics of the serverless architecture. The products are mostly marketed around the usage instead of uptime. You thus only pay when your users actually use the platform, and thus computing the average cost per user becomes much easier.
One of the big change of this architecture, is the fact that you lose control over your servers. For example, low level performance tuning becomes an impossible beast to tackle. If your application does not need this, maybe serverless is the path for you. But be aware of the limits of this architecture.
Personally I found that Bert Ertman's Serverless Deep Dive gave a nice overview of this hyped concept.
A bit of low hanging fruit, since deep learning has been an active topic for the last few years already. Interestingly, at Devoxx there were a lot of talks that help you use deep learning without needing a PhD. In my eyes this is a movement for bringing this technology to the broader audience, which may result in a broader application of learning systems. Would it be wise to get some knowledge in-house about machine learning? Yes, after one particular talk I definitely think that diving deep into Deep Learning would be a nice step.
With Java 9 being release a few weeks ago, the community had a lot of need of finding out the new functionality that Java offers. Personally, I rather read the APIs instead of being explained how the Collections API was improved. However, project Jigsaw brought the module system, which I think is the most rigorous change in the last few major versions of Java. Venkat explained this pretty well with his 'Java 9 Key Parts' session. Besides being able to create smaller JARs, the module system allows (or even enforces) you to properly define interfaces of our libraries. Better interfaces may ultimately lead to less hacky code and better decoupling. At a critical note: Why did we have to wait 20 years for this to be fixed?
In addition we have seen some scheduled features for Java 10 such as type inference and pattern matching. The goal behind these features is to reduce the amount of language ceremony and focus on the essence of programming in Java. Would the reduction of language ceremony result in people moving back to Java after they switched to Kotlin? Is Java chasing the language features that Kotlin and other languages provide? I sure don't know, but of what I have seen (by Brian Goetz) the language becomes nicer to read (I am a huge fan of Elm, and some of Brian his slides looked a bit like Elm). My main concern is the effects the language will have on the identity of the language. We identify Java with OO, but don't these changes result in a new identity? Time will tell.
I found that by far the keynote sessions were better than the other talks. The majority of the Devoxx talks are about: stating a problem, showing that a tool or thing can solve that problem and closing with a comparison to its alternatives. The keynotes however they do one more thing, they do not come with a solution. The speakers activate your brain such that you continue to think about the concept, which may result in more change. So the must watch talks in my opinion are:
And of course, there were many more good talks located at the Devoxx Youtube Channel.
Devoxx was fun and interesting and it shows the main trends in IT. There are many interesting movements in flux. Serverless, machine learning, the evolution of Java, event driven, micro services, and many more. Maybe these are not all interesting for your current project or job, but knowing of their existence, power and weaknesses will probably help you further in your future choices. So to wrap up: keep learning, stay up to date, and watch the talks!
| Event visit
Door Mats Stijlaart / jun 2023
Dan denken we dat dit ook wat voor jou is.