Day 2

My Life as a Tech Transfer Monad

Erik Meijer is on stage! 🙌

briefly talks about Kotlin

changes subject to machine learning

we should change the way how we write software

embrace probabilistic programming (not just 0 and 1 but anything in between)

works on introducing PP into Hack (PHP)

Rx is dead 😉

the future is integration of machine learning models and imperative code (and coroutines)

Kotlin for the Pragmatic Functionalist

Paco Estévez García talks more about Kategory 🔥

Kotlin is ready for FP today

Kotlin has built in constructs that support FP (data classes, sealed classes, types aliases, extesnsion functions, etc.)

Kategory adds more constructs: extension interfaces, ad-hoc polymorphism, imperative async code, etc.

KEEP proposal: Type Classes as extensions in Kotlin

Kategory is a very ambitious project and they welcome all community contribution 🚀

kategory.io

slides

Sharing [Kotlin code across platforms] is Caring!

Eugenio Marletti talks about cross platform dev

they have passed a few iterations (C++, ObjC++, JavaScript)

they used to write TypeScript and run it on iOS (JavaScriptCore) and Android (WebView) 😱

Android WebView has lots of issues

migrated to Kotlin to compile JS for iOS and bytecode for Android

looking into multiplatform

Deep Dive into Kotlin/Native

Andrey Breslav showcases Kotlin Native 🚀

state of the project is tech preview

IDE for now is CLion

build tool for now is cmake

debugs code (with breakpoints) running on an iOS device!

it's hard to beleve that what's happening is real 🙂

more info here

Generating Kotlin Code

Alec Strong & Jake Wharton are on stage

lots of reasons why generating code is useful

you have to be careful generate code that is easy to access from both Kotlin and Java

it's OK if the code generator / generated code is complex, as long as the APIs are simple (goal is to make the user of the generated code happy)

KotlinPoet FTW ⚡️

automatically handles imports + lots of other concerns

high level API, fluent builders, reusable code blocks

ASM - to generate bytecode directly

Kotlin compiler uses internally

slides

Going Serverless with Kotlin

Marcos Placona demos his side project, a custom personal doorbell 🙂

the project is super fun

tried 3 solutions: Google AppEngine, OpenWhisk, Amazon Lambda

all of them have different trade-offs

Kotlin Types: Exposed

Svetlana Isakova covers some basic Kotlin stuff

all of you should read Kotlin in Action, period. 🙂

Testing Kotlin at Scale: Spek

Artem Zinnatullin talks about Spek

it's no longer in the JetBrains namespace, now a fully independent project

unit testing is cumbersome

usually test code is 2x LOC than source code

Spek brings structure to your tests (hierarchy)

you can choose your own assertation library

you can choose your own mocking library

Spek = test framework (instead of e.g. JUnit)

Spek 2.0 beta/rc will be available soon (~ 1-2 month)

until then, you should use Spek 1.x

Day 1

The conference's venue was in Pier 27, in the James R. Herman Cruise Terminal.

I arrived super early, so only a few people were around. I had breakfest, took a few pictures and talked to some ot the attendees. The schedule was really sharp, the keynote started precisely on time.

TL;DR

Keynote

Hadi Hariri opens the show

JetBrains CEO, Maxim Shafirov talks about the brief history of Kotlin

Andrey Breslav talks about multiplatform

On the JVM the topic is coroutines (though marked experimental, actually used in production by large companies)

Regarding JS support, Dmitry Jemerov does a live demo, showing debugging and hot reload

Turns out, that the KotlinConf conference app is written in Kotlin (backend, web, Android, iOS)

Cords and Gumballs

two talks in one: Corda + Gumball

Corda: distributed ledger platform

development started pre Kotlin 1.0

large codebase: ~118k LOC Kotlin, ~9800 commits

Kotlin turned out to be a huge success

creating a perfect Java API has caveats

Gumball: Java app packager (bundles app + JVM into a singel executable)

turnes a "fat-jar" into a cross platform binary

can embed SWT for GUI

mentions Graal as an alternative

Building Languages Using Kotlin

Federico Tomassetti talks about DSLs

not Kotlin DSLs (e.g. kotlinx.html)

you can actually create new programming languages (domain specific ones) with Kotlin 🔥

based on his experience, users can achieve up to 20x productivity

probably you want to use Antlr, but with Koltin the code looks much more simple

slides, code + more info can be found here

Frontend Kotlin from the Trenches

Gaetan Zoritchak talks about Koltin JS

he works on a library called data2viz

it is basically like D3.js but implemented in Kotlin

super high performance ⚡️

tooling around Kotlin JS can be tricky (different tool versions may conflict)

they chose to rely only on the Kotlin JavaScript compiler + they use JavaScript native tools (e.g. karma, mocha, webpack)

they use multiplatform build, so they can write & test a lot of things running on the JVM (really interestings stuff)

if you are interested in web development with Kotlin I highly recommend to check out the repo

BONUS: there is a blog post (got released before KotlinConf) discussing much of the things mentioned here

Kotlin for Data Science

presented by Thomas Nield (maintainer of e.g. kotlin-statistics)

data science FTW 🚀 one of my favorite talks!

goal: turn data into insight

problem is data scientists and software engineers are using very different technologies (e.g. Python, R, etc. vs Java, .NET, etc.)

it's hard to turn models into production software

Kotlin can help close the gap

live demo about problem solved with linear programming (algo4j) + Kotlin

much more info can be found here

How to Kontribute

Yoshinori Isogai's first talk in english! 🚀

he mostly contributed to the Kotlin IntelliJ plugin

setting up the Kotlin build env is a bit challenging (you need 3 JVM-s, the build tools is Ant 😱)

the process is kind of strict (in a good way)

if it's not in YouTrack, it doesn't exist - no PRs without a corresponding YouTrack issue

you have to add proper test code

review can take some time (the JetBrains team is busy, obviously 😉)

contributing is rewarding, they even mention you by name in release announcements

here are all the slides

Architectures Using Functional Programming Concepts

Jorge Castillo talks about FP in Kotlin

as (partailly) a Scala programmer, the topic resonates with me very well 🙌

the talk in not really about just FP in general, but rather an intro to a new Kotlin library called Kategory

the guys are seriously pros, the techniques used in Kategory are real pieces of art ✨

there is example code showing how to introduce common behaviours into the codebase (DI, error handling, async) by types, step by step

tough the topic is definitely not an easy one, Jorge did a great job explaining the different concepts

slides are here

Party Keynote

Michael Carducci doing a stand-up magic show

He was formerly a software engineer, uses tech terminology a lot 😀

I really hope that the videos will be available soon, do yourself a favour and watch it ASAP ♠♣♥♦

Party

the perfect way to end the day: snacks, food, beer, wine + Kotlin 🙂

also really good discussions, table football, ping-pong, and more Magic Mike!

Day 0

I've arrived in SF and also attended the Realm Community Event. The event took place in Realm's office, which looks really cool.

Eric Maxwell did a great talk about how library developers can create idiomatic APIs for both Java and Kotlin users. He showed examples from Realm's codebase, and also pointed out this GitHub Issue (#4701). They have already made really good progress with Kotlin support, but are looking for more feedback from the community. If you have any comments on the topic, you should definitely check out the ongoing conversation. Bonus: they are currently looking into coroutines support, so we might see something official soon.

Expectations

I first heard about Kotlin quite some time ago. Since then, a lot of things happened and events speeded up:

May 24, 2013 - My first Kotlin code ( v0.5.429 🙂)

🙂) Feb 15, 2016 - Kotlin 1.0.0 released

Aug 17, 2016 - My first Android Kotlin code in production

May 17, 2017 - Google announced official support for Kotlin

Apr 6, 2017 - My first backend Kotlin code in production

Jun 9, 2017 - My team launched Kotlin Resources, a community-driven resource index for Kotlin

Jul 25, 2017 - My team launched the Kotlin Development (this) blog

Nov 2, 2017 - I'm attending to the very first KotlinConf 🙌

I'm really looking forward to the next few days, it will be nice to meet some of the Kotlin community in person. Also, the talks will be super exciting, so I've already assembled my schedule:

Day 1:

Cords and Gumballs, by Mike Hearn

What’s New and Cool in Kotlin Tools, by Dmitry Jemerov

Building Languages Using Kotlin, by Federico Tomassetti

Frontend Kotlin from the Trenches, by Gaetan Zoritchak

Kotlin for Data Science, by Thomas Nield

How to Kontribute, by Yoshinori Isogai

Architectures Using Functional Programming Concepts, by Jorge Castillo

Day 2:

I'll also attend the Realm community event on the 1st of Nov, where Svetlana Isakova will talk about Kotlin for Java developers and Eric Maxwell about building libraries for Kotlin.

I would like to point out, that one of the keynote speakers is Erik Meijer (the original author of Rx.NET, among like 1000 other things), he was a huge influence on my professional career.

Live stream

Unfortunately, there won't be any official live streaming, but we are going to report live from the conference, so bookmark this page and hit refresh from time to time! 😉

And don't forget to follow me @gyula_voros and our Koltin Twitter for the updates.

Social

Also attending the conference? Come say hi, or message me via Twitter or email!