Kotlin Conf 2017

Kotlin Conf 2017 logo

This blog post is a story about our (me and my colleague Juuso Leinonen) trip to Kotlin Conf 2017 in San Francisco held on 2nd and 3rd of November 2017.

What Is Kotlin?

Kotlin is a modern programming language that was originally built on top of Java Virtual Machine (JVM). It’s main selling points are complete interoperability with Java, first-class support in Android, concise syntax and great tooling. Kotlin can also be compiled into JavaScript which can then be executed in browser or in Node.js.

Image result for kotlin

Our Trip

After a 15-hour journey, we arrived in San Francisco on Tuesday so that we would be fresh for the conference. This gave us a good day and a half to explore the sights and the city itself.

Like most other tourists, we rented bikes to take a trip over the Golden Gate bridge to a small town called Sausalito. Biking also was a good activity to stretch our legs after the flight. Everywhere views were as picturesque as one can think and we also got a bit lucky with the weather every day.

We scheduled our trip so that after a few hard days in the conference we would still have a couple of days to spare before flying back home. During these days, we visited the legendary prison island Alcatraz AKA the Rock, rented a minivan and headed out from SFO to Levi’s Stadium to see the 49ers host Arizona Cardinals, we also visited Wente Wineyards and Rios-Lovell Estate Winery in Livermoore. Inevitably, we also got lost in an outlet mall for a few hours.

The Venue & Arrangements

The conference was held in Pier 27 not far from the Fisherman’s Wharf or downtown. The venue was nice and well-suited for a conference. There were three rooms named after European cities – St.Petersburg, Munich and Prague. St. Petersburg was the biggest and was used for keynotes and the main speakers. Munich was on the same (1st) floor and was a little smaller than St. Petersburg. Room Munich was located on the second floor and was just a little smaller. The rooms were perfectly sized for the 1200 participants of the conference. A funny fact that we learned: when the venue doesn’t serve as an event venue it is an actual port that is in use.

Image result for pier 27 san francisco

As the Kotlin Conf 2017 was the first of its kind ever, it was no surprise that there were some major problems with the arrangements like wifi not working basically at all, breakfast ran out both mornings, long lines for food at lunch and the evening party, beverages only available on the second floor, sounds carried between rooms St. Petersburg and Munich, etc. Not everything was wrong with the arrangements, though. Good parts included very smooth registration and great snacks.

Presentations

The conference was divided between three rooms with varying capacities each having session at the same time so there was always three choices. Here’s a list of the best presentations we attended. All of the videos can be found in Youtube.

Day 1 keynote – Andrey Breslav (Kotlin X, JetBrains), Stephanie Saad Cuthbertson (Android PM manager, Google) et al.: Some announcements regarding the Kotlin. Notably Kotlin 1.2 RC, support for iOS with Kotlin/Native v0.4 and IDE support for Kotlin/Native. Interesting stuff coming, though we weren’t totally convinced whether Kotlin/Native is the wisest choice to be concentrated by JetBrains. For some reason, there’s is no video available for this session.

Introduction to Coroutines – Roman Elizarov (Kotlin): Interesting introduction to the Kotlin’s new (introduced in 1.1) take on asynchronous programming. Key takeaways:

  • suspend keyword to make suspending functions.
  • No need to create a new thread for each block of asynchronous code as threads are expensive. Instead Kotlin abstracts this away and executes blocks by default in threads managed automatically.
  • Asynchronous programming is much like with async/await in JavaScript but while the asynchronous behavior is the default in the JS, the synchronousity is the default in Kotlin.
  • Many parts of asynchronousity implemented as library methods rather than with language constructs.

Building Languages Using Kotlin – Federico Tomassetti (Language author): Extremely interesting case study on how to build a simple domain-specific language (DSL) using Antlr and Kotlin. Data classes shining once again. Federico has also wrote a book related to the topic of the presentation called How to create pragmatic, lightweight languages, though it still features Java.

Bootiful Kotlin – Josh Long (Spring core team): One of the best presentations ever. Such an amount of energy, enthusiasm and knowledge. Even though it has been heard many times earlier that Spring 5 is providing great experience with Kotlin, it was absolutely clear after hearing Josh’s presentation with lots of examples and tips. Josh’s live coding was just great! Spring 5 was also introduced quite well and looks really promising, though the poor interoperability of functional & reactive style with SQL databases seems quite problematic for any real applications.

My Life as a Tech Transfer Monad (Day 2 keynote) – Erik Meijer (Facebook): Erik, as always, had some interesting stories to share. This time he spoke about his current projects at Facebook related to the probabilistic programming paradigm built on top of PHP. Very interesting stuff and according to Meijer also the future of programming whereas the current way of programming will be done by machines.

Day 1 ended with a party on the 2nd floor. Before the actual party there was something odd marked in the program: Party keynote. Maybe you could’ve guessed what it was about had you googled the performer marked on the schedule. We didn’t so it was a great surprise to find out that there was a special kind of magician performing. This magician was called Michael Carducci who happens to be a former programmer so the magic so was excellently targeted to the audience. In the actual party we had a great chat with the JetBrains sales presentative to whom we got to express all of our concerns and got some great insights in to what is being done for other JetBrains products like IntelliJ IDEA.

Conclusions

The Kotlin Conf 2017 was a great success even with the problems in the arrangements. The main takeaways are:

  • Kotlin/Native is coming and it seems very ambitious. We, like many others, weren’t totally convinced that this is the direction that should be taken as it is extremely time-consuming and the odds that it will succeed aren’t on Kotlin’s side. Yet, the team seemed to believe it is the best thing to concentrate on and surely it would be great to have a single language to rule them all. We’ll see about that in the upcoming years.
  • Coroutines are an interesting approach to the problems of asynchronicity and deserve a more in-depth exploration.
  • Spring 5 <3 Kotlin
  • The Kotlin Conf might very well be organized in Europe next year – looking forward to that!

Hope to see you next year in Kotlin Conf 2018 (in Europe)!

We are always on the lookout for great developers at Gofore. Why not see what we can offer https://gofore.com/?vacancy=net-osaaja