What's all this fuss about Kotlin, anyway?
Kotlin is a relatively young JVM language from JetBrains. Proponents are stoked about the improvements it offers over Java source syntax as well as its potential to target native object code as well as Java bytecodes. Kotlin has already gained traction for Android development, and is also an interesting choice for general application development in organizations that have a significant investment in Java tooling, libraries, and applications. How does Kotlin differ from other JVM languages, including Java, Clojure, and Scala? Is it a flash in the pan or a genuine advance that enhances the value of the Java platform?
Outline/Structure of the Tutorial
The organizers did not provide an appropriate Session Type in the drop-down list. This is a live code demo with interactive discussion. The facilitator will show side-by-side examples of Java and Kotlin code (and possibly x and Kotlin code where x is another JVM language) showing
- common idioms such as iteration, lambdas, and collections
- microtest setup using JUnit5 and kotlin-test
He will also show interoperability between Kotlin and existing Java APIs/packages.
Discussion is encouraged throughout the session.
Learning Outcome
- A sense of how Kotlin source code compares to Java source code
- Understanding of some of the key differences between Kotlin and Java
- Awareness of Kotlin as an option for Java development organizations, and how it can fit in
Target Audience
Software developers who work with one or more JVM languages or similar (e.g., .NET langauges); team leads, project managers, or others with responsibility to select and approve programming languages for their organizations;
Prerequisites for Attendees
Working knowledge of Java or any other JVM language or a broadly similar language such as C# or C++. You can optionally bring a laptop and download the code samples to play with, or you can do that later.
Links
Kotlin language site. https://kotlinlang.org/
schedule Submitted 4 years ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Rick Austin - Portfolio Management In An Agile World
45 Mins
Talk
Intermediate
When organizations move to agile for software delivery, there is often tension with traditional portfolio management. This talk will illustrate how an organization can move from traditional portfolio management approaches to one that embraces agile software delivery. Doing so enables organizations to become predictable, improve the flow of value delivered, and pivot more quickly if necessary.
We will demonstrate the use of governance that allows a more adaptive portfolio management approach. We will cover topics that enable agile portfolio management including:
- Lean techniques for managing flow
- Effective prioritization techniques
- Long range road-mapping
- Demand management and planning
- Progressively elaborated business cases
- Validation of outcomes
- Support for audit and compliance needs
These topics will be illustrated by real-world examples of portfolio management that have been proven over the last five years with a wide range of clients.
-
keyboard_arrow_down
Camille Bell - Kata Your Way to Better Software Craftsmanship
45 Mins
Tutorial
Intermediate
Slides: https://www.slideshare.net/Camille_Bell/kata-your-way-to-sw-craftsmanship
Maybe you are a developer and want yourself and your team to become Software Craftsmen.
Or perhaps you've a leader and heard about the greater quality and productivity of high functioning agile development teams.
Or you could be in dev ops and know that you can't implement a CD Pipeline without a solid suite of automated tests. But your developers don't practice Test Driven Development, Refactoring or other agile technical practices, and you don't know how to guide them.
Whatever your role, you would like your team to become software craftsmen, proficient in agile technical practices.
Join Camille as she shows you how to Kata Your Way to Software Craftsmanship.
-
keyboard_arrow_down
Dave Nicolette - Developer superpowers to effect positive change
45 Mins
Talk
Intermediate
Many software developers (especially in larger organizations) are unhappy in their jobs. They are in a never-ending spiral of increasing code cruft, and their management does not allow them time to remediate technical debt or keep the code base clean. They feel helpless, beaten-down, defeated. They can't imagine that improvement is even possible. They respond to any suggestion to improve the status quo with comments like, "In an ideal world, maybe," "That will never work here," "You don't live in the Real World®," etc. They don't know their own power. This session is meant to show them that power.
-
keyboard_arrow_down
Camille Bell - Creating an Environment to Enable Team Engagement & Productivity
45 Mins
Talk
Beginner
Maybe you are standing up a new agile team or are team member of a proposed team. You know that the team should sit together, but you suspect there is something more.
Or maybe you are on an existing agile team. You think your environment could be better, but you aren't exactly sure what matters most and certainly don't want to ask facilities to move things more than once or submit multiple procurement requests.
Or maybe you are still stuck in cubeville. You know you should talk to your teammates more often, but they are down the hall. You'd like to try pair programming, but the desk shape makes that hard. You really need to brainstorm and collaborate more as a whole team, but booking a conference room is a nightmare.
Camille will share recommendations on your environment setup, why they matter, the knowledge of how to justify the changes you want and how to make some trade offs when necessary.
-
keyboard_arrow_down
Dave Nicolette - Value, Quality, and Craft
45 Mins
Workshop
Intermediate
The concepts of value, quality, and craft are frequently debated in the software community at large and the agile community in particular. Usually, they are debated separately. Does "value" refer strictly to the Lean idea of customer-defined value, or is the concept broader than that? Is it possible to deliver "value" with low quality? What does "quality" even mean? And can we achieve high quality or deliver good value if we don't apply skill to the work? Is that what "craft" means, or does it strictly refer to artisanal crafts? Maybe the lack of consensus stems from the fact we have been treating these as three separate topics, when in reality they are inseparable. Let's find out.