Talk presented at Codemotion Madrid 2017. Kotlin in a live production environment from early 2017, in microservices using a Java platform in Tuenti, Discussions on risks and experiences months after.
The document discusses the Kotlin programming language. It highlights that Kotlin is a modern, pragmatic language that provides good tooling and interoperability with Java. It has grown significantly in popularity since its initial release. The document then discusses various features of Kotlin like its concise and readable syntax, null safety, support for lambdas and extensions, and how it can be used for multi-platform projects. Kotlin aims to be an improvement over Java by making code more concise, safe, and expressive while maintaining interoperability with existing Java code and libraries.
The document compares the programming languages Swift and Kotlin. It provides background on the speakers and an outline of the topics to be discussed, including brief introductions to Swift and Kotlin, common language features between the two, demonstrations of code samples, and conclusions. IDEs like Xcode, Android Studio, and AppCode will also be demonstrated.
This document introduces Kotlin, a statically typed programming language that runs on the Java Virtual Machine (JVM). It summarizes Kotlin's key features like concise syntax, null safety, interoperability with Java, and extension functions. The document also provides examples of Kotlin code for functions, properties, lambdas, and higher-order functions. It describes how Kotlin can be used for Android development and introduces libraries like Anko that simplify common Android tasks.
The document introduces the Kotlin programming language developed by JetBrains. It provides an overview of Kotlin's motivation, features, syntax and tooling. Key points include Kotlin being a statically typed JVM language intended for industrial use, its focus on common sense features from other languages, and full interoperability with Java.
(How) can we benefit from adopting scala?Tomasz Wrobel
Scala offers benefits from adopting it such as increased productivity through concise and expressive code, static typing with type inference, support for both object-oriented and functional programming paradigms, and interoperability with Java. Switching from Java to Scala involves some changes like using val for immutable variables and var for mutable, but overall the syntax is quite similar which eases the transition.
I used these slides to present the benefits of using Kotlin to a group of people I work with. The presentation focuses on comparing Kotlin to Java, and in particular showing how Kotlin can help in writing safer, more concise and readable code. I used a few java gotchas/puzzles to demonstrate how Kotlin may prevent us from doing silly things.
Introduction to kotlin for android app development gdg ahmedabad dev fest 2017Hardik Trivedi
The presentation was given in Ahmedabad GDG DevFest 2017. It has introduction to Kotlin for Android App Development.
Talk will is specially designed for beginners, who has heard about Kotlin but couldn’t explore it till date. The talk will take attendees to the journey where they can know Kotlin as a programming language. What Kotlin offers for Android? How to start the development using Kotlin, Features of Kotlin, Some of the disadvantages of Kotlin.
I will be discussing about following topics
- What’s Kotlin
- Why Kotlin
- Setting up Kotlin
- Features of Kotlin
- Syntax crash course
- Classes
- Features of function programming like Lamdabs and Higher order functions
- Usage of Anko
- Migrating from Java project to Kotlin
- Future of Kotlin
- Disadvantages of Kotlin
Kotlin was created by JetBrains to improve developer productivity and enjoyment when building tools like IntelliJ IDEA. Some key features of Kotlin include properties, smart casts, extension functions, and null safety. Kotlin works well for server-side development using frameworks like Kara and Exposed, as well as Android development using Android Extensions and Anko. To succeed with Kotlin, developers should take initiative by starting with tests and utilities in existing Java projects rather than waiting for new projects.
The document discusses the Kotlin programming language. It highlights that Kotlin is a modern, pragmatic language that provides good tooling and interoperability with Java. It has grown significantly in popularity since its initial release. The document then discusses various features of Kotlin like its concise and readable syntax, null safety, support for lambdas and extensions, and how it can be used for multi-platform projects. Kotlin aims to be an improvement over Java by making code more concise, safe, and expressive while maintaining interoperability with existing Java code and libraries.
The document compares the programming languages Swift and Kotlin. It provides background on the speakers and an outline of the topics to be discussed, including brief introductions to Swift and Kotlin, common language features between the two, demonstrations of code samples, and conclusions. IDEs like Xcode, Android Studio, and AppCode will also be demonstrated.
This document introduces Kotlin, a statically typed programming language that runs on the Java Virtual Machine (JVM). It summarizes Kotlin's key features like concise syntax, null safety, interoperability with Java, and extension functions. The document also provides examples of Kotlin code for functions, properties, lambdas, and higher-order functions. It describes how Kotlin can be used for Android development and introduces libraries like Anko that simplify common Android tasks.
The document introduces the Kotlin programming language developed by JetBrains. It provides an overview of Kotlin's motivation, features, syntax and tooling. Key points include Kotlin being a statically typed JVM language intended for industrial use, its focus on common sense features from other languages, and full interoperability with Java.
(How) can we benefit from adopting scala?Tomasz Wrobel
Scala offers benefits from adopting it such as increased productivity through concise and expressive code, static typing with type inference, support for both object-oriented and functional programming paradigms, and interoperability with Java. Switching from Java to Scala involves some changes like using val for immutable variables and var for mutable, but overall the syntax is quite similar which eases the transition.
I used these slides to present the benefits of using Kotlin to a group of people I work with. The presentation focuses on comparing Kotlin to Java, and in particular showing how Kotlin can help in writing safer, more concise and readable code. I used a few java gotchas/puzzles to demonstrate how Kotlin may prevent us from doing silly things.
Introduction to kotlin for android app development gdg ahmedabad dev fest 2017Hardik Trivedi
The presentation was given in Ahmedabad GDG DevFest 2017. It has introduction to Kotlin for Android App Development.
Talk will is specially designed for beginners, who has heard about Kotlin but couldn’t explore it till date. The talk will take attendees to the journey where they can know Kotlin as a programming language. What Kotlin offers for Android? How to start the development using Kotlin, Features of Kotlin, Some of the disadvantages of Kotlin.
I will be discussing about following topics
- What’s Kotlin
- Why Kotlin
- Setting up Kotlin
- Features of Kotlin
- Syntax crash course
- Classes
- Features of function programming like Lamdabs and Higher order functions
- Usage of Anko
- Migrating from Java project to Kotlin
- Future of Kotlin
- Disadvantages of Kotlin
Kotlin was created by JetBrains to improve developer productivity and enjoyment when building tools like IntelliJ IDEA. Some key features of Kotlin include properties, smart casts, extension functions, and null safety. Kotlin works well for server-side development using frameworks like Kara and Exposed, as well as Android development using Android Extensions and Anko. To succeed with Kotlin, developers should take initiative by starting with tests and utilities in existing Java projects rather than waiting for new projects.
Android Developer Group Poznań - Kotlin for Android developers
STXInsider example project in Kotlin:
https://github.com/kosiara/stx-insider
Kotlin - one of the popular programming languages built on top of Java that runs on JVM. Thanks to JetBrains support and excellent IDE integration, it’s an ideal choice for Android development. 100% Java compatibility, interoperability and no runtime overhead is just the beginning of a long list of strengths. Kotlin is supposed to be a subset of SCALA, has clear benefits for developers on one hand and keeps short compile times on the other.
As a mobile team we got interested in Kotlin a few months before its final release which gave us time to test it thoroughly before production use. The language has some clear advantages for an Android programmer - it enables migration from Java projects that have been under development for some time already. Java&Kotlin coexistence simplifies Kotlin introduction as only new functionality is written in JetBrain’s new language leaving all the legacy code untouched.
Transitioning gives the developer an opportunity to use lambdas, new syntax for data objects, extension functions to easily expand Android SDK’s classes functionality and infix notation to write DSL-like structures. Almost all the libraries you use today will work with Kotlin thanks to 100% Java compatibility. The same is true for Android SDK classes - all of them will seamlessly work with the new programming language. Kotlin gives you more choice when it comes to reflection, creating documentation and being null-pointer safe. Android works great with it out of the box so you won’t need to change your development habits.
Our production project in Kotlin turned out to be a success after 4 months of development. We had 0 bugs related to Kotlin as a programming language. Our code footprint is almost 30% smaller thanks to JetBrain’s, we benefit from nullpointer safety, closures, translated enums, data objects and use infix notation for logging and displaying Snackbars.
===========
In this presentation you'll find basic use cases, syntax, structures and patterns. Later on Kotlin is presented in Android context. Simple project structure, imports and Kotlin usage with Android SDK is explained. In the end cost of Kotlin compilation is presented and the language is compared to SCALA and SWIFT.
We look at the positive impact new syntax can have on boilerplate removal and readability improvement.
Kotlin really shines in Android development when one looks at “Enum translation”, “Extension functions”, “SAM conversions”, “Infix notation”, “Closures” and “Fluent interfaces” applied to lists. The talk, however, compares language-specifics of Java & Kotlin in terms of “Type Variance”, “Generics” and “IDE tools” as well.
StxNext Lightning Talks - Feb 12, 2016
Kotlin - one of the popular programming languages built on top of Java that runs on JVM. Thanks to JetBrains support and excellent IDE integration, it’s an ideal choice when it comes to Android development. 100% Java compatibility, interoperability and no runtime overhead is just the beginning of a long list of strengths. Kotlin is supposed to be a subset of SCALA, on one hand covering major advantages for developers and on the other - keeping short compile times.
This presentation is a Developer Starter - a set of hand-picked information allowing a person with no knowledge of Kotlin to start writing basic Android activities and set up an Android-kotlin project. It starts with language background, reasons for its creation and advantages. Then presents basic use cases, syntax, structures and patterns. Later on Kotlin is presented in Android context. Simple project structure, imports and Kotlin usage with Android SDK is explained. In the end cost of Kotlin usage is presented and the language is compared to SCALA and SWIFT.
Little Helpers for Android Development with KotlinKai Koenig
Kotlin is a new language for the JVM that aims to be a "better Java". Made in-house by Jetbrains, the company behind IntelliJ IDEA and also Android Studio, it's been in development for more than 5 years. Just a few months ago the final version of Kotlin 1.0 saw the light of day.
Starting off with Kotlin for Java development and for Android is actually quite straight forward. There's a lot of well written documentation, there are the Kotlin Koans and blogs seem to pick up Kotlin-related topics more and more. What a lot of people are not aware of though is that there are a bunch of really useful libraries and tools for Kotlin developers, in particular on Android (the most common and well known one being Ando).
This session from Droidcon Germany 2016 in Berlin will start with a quick introduction into Kotlin and its benefits over Java. Then we'll dive into the Kotlin-Android-ecosystem and look at a variety of Kotlin tools and libraries that can make one's life much easier - even to a level going beyond what core Kotlin already has to offer.
Kotlin advanced - language reference for android developersBartosz Kosarzycki
StxNext Lightning Talks - Mar 11, 2016
Kotlin Advanced - language reference for Android developers
This presentation contains the second talk on Kotlin language we had at STXNext. We try go deeper into language specifics and look at the positive impact new syntax can have on boilerplate removal and readability improvement.
Kotlin really shines in Android development when one looks at “Enum translation”, “Extension functions”, “SAM conversions”, “Infix notation”, “Closures” and “Fluent interfaces” applied to lists. The talk, however, compares language-specifics of Java & Kotlin in terms of “Type Variance”, “Generics” and “IDE tools” as well.
We present real-world example based on Stx-Insider project written in Kotlin which incorporates Dagger 2, Kotterknife, Retrofit2 and is composed of 5+ Activities.
Full agenda
Live templates
Enum translation
Calling extension functions from Kotlin/Java
Constructors with backing fields
Warnings
F-bound polymorphism
Variance (Covariance/Contravariance)
Variance comparison in Kotlin/Java/Scala
Annotation processing - KAPT
SAM conversions
Type equality
Lambda vs Closure
Reified generics
Fluent interfaces
Infix notation
Static extension methods in Kotlin
Generic types
Sealed classes
Dokka - documentation in Kotlin
J2K converter
Real-world example
Reflection
Presentation is accompanied with an example project (StxInsider):
https://github.com/kosiara/stx-insider
The document outlines an agenda for a workshop on developing a weather app with Kotlin. The schedule includes introductions to Kotlin, a project presentation and setup, and two hands-on sessions. There will be a coffee break in between the introductory and hands-on portions. Attendees will learn about Kotlin features like type inference, null safety, collections, and Android extensions and apply them by developing the weather app.
Jetbrains was looking for a new programming language to replace Java for developing their large codebase of IDE and server-side tools. They wanted a language with Java interoperability, null safety, concise syntax, and easy tooling. Kotlin was selected as it met these criteria while having faster compilation times than Scala. Kotlin has since gained popularity with over 20,000 repositories and official support from Google for Android development.
This document compares the Kotlin and Swift programming languages. It provides an overview of key features of each language such as variables, functions, classes, inheritance, protocols/traits, enums, null safety, type checks and extensions. It also includes code examples to illustrate similarities and differences between the two languages. The document concludes with a comparison of other features and a diagram showing how each language fits into a typical mobile application architecture.
The document discusses operator overloading in Kotlin using the example of a Coin enum and Wallet class. It defines a Coin enum with values for common coins (PENNY, NICKEL, etc) that each have a cents value. A Wallet class is defined with a plusAssign operator function that allows adding Coin values to the wallet amount. Examples are shown incrementing a wallet variable by adding Coin values like QUARTER to demonstrate operator overloading.
Introduction to Koltin for Android Part I Atif AbbAsi
Welcome to Android Basics in Kotlin! In this course, you'll learn the basics of building Android apps with the Kotlin programming language. Along the way, you'll develop a collection of apps to start your journey as an Android developer.
Next Insurance was founded in the beginning of 2016 and first lines of our production code started accumulating in May 2016. In the beginning I have started writing in Java and experimenting with Kotlin, which saw its 1.0 release two months earlier. 6 months later, the development of our backend services has totally shifted to Kotlin. We still keep a few classes in Java just to make sure that the integration remains seamless but the vast majority of our codebase is written in Kotlin. In this talk I will cover the language features and why I think it is awesome, from null safety to smart casts and data classes. We will also look into the future with 1.1 async/await feature and more.
Kotlin is a statically typed language that compiles to JVM bytecode or JavaScript. It is designed for readability and relies on simple but powerful abstractions. The talk discusses challenges in designing Kotlin, including mapping Java types to Kotlin, implementing flow-based typing for smart casts, and reusing Java collections while making them safer to use. Generics and variance were also challenges addressed in Kotlin's type system design.
Kotlin is a statically typed programming language that targets the JVM. It was developed by JetBrains to be concise, prevent errors, and interoperate fully with Java. Key features include properties, higher-order functions, extension functions, and null safety. Kotlin code compiles to JVM bytecode and works with Java code and libraries. Tooling includes an open source compiler and IDE plugins for IntelliJ IDEA and Eclipse. The language was designed based on learning from other languages like Groovy, C#, Scala, and Gosu, with a focus on common sense and avoiding unnecessary complexity.
The document discusses code generation on the JVM using various tools and frameworks. It provides an overview of Lombok for generating Java boilerplate code, Groovy AST transformations, CodeNarc for static analysis, and Spock, GContracts, and Groovy++ for framework-oriented code generation. It also discusses generating code at compile time using abstract syntax trees.
Kotlin is a statically typed programming language that runs on the Java Virtual Machine (JVM) and is fully interoperable with Java. Some key features of Kotlin include being less verbose than Java, property-based accessors, lambdas and type inference, which allow code to be more concise and readable. Kotlin aims to be practical for building large applications and introduces modern language features while also having a smooth learning curve for Java developers.
The document discusses C++ and its evolution over time. Some key points include:
- C++ has been active for over 30 years and remains relevant due to its performance and use in applications like mobile.
- The new C++11 standard adds many new features that make the language more powerful yet easier to use, such as rvalue references, lambdas, and type inference.
- Examples are provided showing how new C++11 features like futures, lambdas and static assertions can be used concisely to solve common programming problems in a more modern style.
The document provides an overview of key object-oriented programming concepts in C#, including:
- Classes and objects - Examples are given of defining a Player class with properties and constructors.
- Inheritance - Examples demonstrate how a ChildClass inherits from a ParentClass, including calling parent constructors.
- Polymorphism - Abstract DrawingObject class and derived classes like Line demonstrate polymorphism through overriding the Draw() method.
- Versioning - Examples show how to override and hide inherited methods using the override and new keywords respectively.
- Interfaces are also briefly mentioned as a topic to be covered.
Introduction to Kotlin Language and its application to Android platformEastBanc Tachnologies
Author: Oleg Godovykh, eastbanctech.com
Kotlin is a new programming language built by Jetbrains and is a new member of JVM family. As opposed to typical reason to introduce some new language, Kotlin main goal isn't to create new paradigm or fill a new niche, but to make routine tasks much easier and safer. Kotlin gains popularity across Android developer community, and in this presentation it is shown how Kotlin usage can dramatically simplify typical mobile app development.
Google is adding Kotlin as an official programming language for Android development. Kotlin is a language that runs on the JVM and has full interoperability with Java. It costs nothing to adopt! I will show some cool features of Kotlin, how it makes developing with Android easy and finally we'll see what happens under the hood when we write in Kotlin.
This document provides an overview of the Clojure programming language. Some key points:
1) Clojure is a Lisp dialect that runs on the Java Virtual Machine (JVM), allowing for concurrent and dynamic development.
2) In Clojure, everything is treated as data - code is represented as regular data structures like lists and maps rather than hardcoded syntax.
3) Clojure favors immutable, persistent data over mutable variables. This simplicity allows for easy parallelization and avoids common bugs from side effects.
Android Developer Group Poznań - Kotlin for Android developers
STXInsider example project in Kotlin:
https://github.com/kosiara/stx-insider
Kotlin - one of the popular programming languages built on top of Java that runs on JVM. Thanks to JetBrains support and excellent IDE integration, it’s an ideal choice for Android development. 100% Java compatibility, interoperability and no runtime overhead is just the beginning of a long list of strengths. Kotlin is supposed to be a subset of SCALA, has clear benefits for developers on one hand and keeps short compile times on the other.
As a mobile team we got interested in Kotlin a few months before its final release which gave us time to test it thoroughly before production use. The language has some clear advantages for an Android programmer - it enables migration from Java projects that have been under development for some time already. Java&Kotlin coexistence simplifies Kotlin introduction as only new functionality is written in JetBrain’s new language leaving all the legacy code untouched.
Transitioning gives the developer an opportunity to use lambdas, new syntax for data objects, extension functions to easily expand Android SDK’s classes functionality and infix notation to write DSL-like structures. Almost all the libraries you use today will work with Kotlin thanks to 100% Java compatibility. The same is true for Android SDK classes - all of them will seamlessly work with the new programming language. Kotlin gives you more choice when it comes to reflection, creating documentation and being null-pointer safe. Android works great with it out of the box so you won’t need to change your development habits.
Our production project in Kotlin turned out to be a success after 4 months of development. We had 0 bugs related to Kotlin as a programming language. Our code footprint is almost 30% smaller thanks to JetBrain’s, we benefit from nullpointer safety, closures, translated enums, data objects and use infix notation for logging and displaying Snackbars.
===========
In this presentation you'll find basic use cases, syntax, structures and patterns. Later on Kotlin is presented in Android context. Simple project structure, imports and Kotlin usage with Android SDK is explained. In the end cost of Kotlin compilation is presented and the language is compared to SCALA and SWIFT.
We look at the positive impact new syntax can have on boilerplate removal and readability improvement.
Kotlin really shines in Android development when one looks at “Enum translation”, “Extension functions”, “SAM conversions”, “Infix notation”, “Closures” and “Fluent interfaces” applied to lists. The talk, however, compares language-specifics of Java & Kotlin in terms of “Type Variance”, “Generics” and “IDE tools” as well.
StxNext Lightning Talks - Feb 12, 2016
Kotlin - one of the popular programming languages built on top of Java that runs on JVM. Thanks to JetBrains support and excellent IDE integration, it’s an ideal choice when it comes to Android development. 100% Java compatibility, interoperability and no runtime overhead is just the beginning of a long list of strengths. Kotlin is supposed to be a subset of SCALA, on one hand covering major advantages for developers and on the other - keeping short compile times.
This presentation is a Developer Starter - a set of hand-picked information allowing a person with no knowledge of Kotlin to start writing basic Android activities and set up an Android-kotlin project. It starts with language background, reasons for its creation and advantages. Then presents basic use cases, syntax, structures and patterns. Later on Kotlin is presented in Android context. Simple project structure, imports and Kotlin usage with Android SDK is explained. In the end cost of Kotlin usage is presented and the language is compared to SCALA and SWIFT.
Little Helpers for Android Development with KotlinKai Koenig
Kotlin is a new language for the JVM that aims to be a "better Java". Made in-house by Jetbrains, the company behind IntelliJ IDEA and also Android Studio, it's been in development for more than 5 years. Just a few months ago the final version of Kotlin 1.0 saw the light of day.
Starting off with Kotlin for Java development and for Android is actually quite straight forward. There's a lot of well written documentation, there are the Kotlin Koans and blogs seem to pick up Kotlin-related topics more and more. What a lot of people are not aware of though is that there are a bunch of really useful libraries and tools for Kotlin developers, in particular on Android (the most common and well known one being Ando).
This session from Droidcon Germany 2016 in Berlin will start with a quick introduction into Kotlin and its benefits over Java. Then we'll dive into the Kotlin-Android-ecosystem and look at a variety of Kotlin tools and libraries that can make one's life much easier - even to a level going beyond what core Kotlin already has to offer.
Kotlin advanced - language reference for android developersBartosz Kosarzycki
StxNext Lightning Talks - Mar 11, 2016
Kotlin Advanced - language reference for Android developers
This presentation contains the second talk on Kotlin language we had at STXNext. We try go deeper into language specifics and look at the positive impact new syntax can have on boilerplate removal and readability improvement.
Kotlin really shines in Android development when one looks at “Enum translation”, “Extension functions”, “SAM conversions”, “Infix notation”, “Closures” and “Fluent interfaces” applied to lists. The talk, however, compares language-specifics of Java & Kotlin in terms of “Type Variance”, “Generics” and “IDE tools” as well.
We present real-world example based on Stx-Insider project written in Kotlin which incorporates Dagger 2, Kotterknife, Retrofit2 and is composed of 5+ Activities.
Full agenda
Live templates
Enum translation
Calling extension functions from Kotlin/Java
Constructors with backing fields
Warnings
F-bound polymorphism
Variance (Covariance/Contravariance)
Variance comparison in Kotlin/Java/Scala
Annotation processing - KAPT
SAM conversions
Type equality
Lambda vs Closure
Reified generics
Fluent interfaces
Infix notation
Static extension methods in Kotlin
Generic types
Sealed classes
Dokka - documentation in Kotlin
J2K converter
Real-world example
Reflection
Presentation is accompanied with an example project (StxInsider):
https://github.com/kosiara/stx-insider
The document outlines an agenda for a workshop on developing a weather app with Kotlin. The schedule includes introductions to Kotlin, a project presentation and setup, and two hands-on sessions. There will be a coffee break in between the introductory and hands-on portions. Attendees will learn about Kotlin features like type inference, null safety, collections, and Android extensions and apply them by developing the weather app.
Jetbrains was looking for a new programming language to replace Java for developing their large codebase of IDE and server-side tools. They wanted a language with Java interoperability, null safety, concise syntax, and easy tooling. Kotlin was selected as it met these criteria while having faster compilation times than Scala. Kotlin has since gained popularity with over 20,000 repositories and official support from Google for Android development.
This document compares the Kotlin and Swift programming languages. It provides an overview of key features of each language such as variables, functions, classes, inheritance, protocols/traits, enums, null safety, type checks and extensions. It also includes code examples to illustrate similarities and differences between the two languages. The document concludes with a comparison of other features and a diagram showing how each language fits into a typical mobile application architecture.
The document discusses operator overloading in Kotlin using the example of a Coin enum and Wallet class. It defines a Coin enum with values for common coins (PENNY, NICKEL, etc) that each have a cents value. A Wallet class is defined with a plusAssign operator function that allows adding Coin values to the wallet amount. Examples are shown incrementing a wallet variable by adding Coin values like QUARTER to demonstrate operator overloading.
Introduction to Koltin for Android Part I Atif AbbAsi
Welcome to Android Basics in Kotlin! In this course, you'll learn the basics of building Android apps with the Kotlin programming language. Along the way, you'll develop a collection of apps to start your journey as an Android developer.
Next Insurance was founded in the beginning of 2016 and first lines of our production code started accumulating in May 2016. In the beginning I have started writing in Java and experimenting with Kotlin, which saw its 1.0 release two months earlier. 6 months later, the development of our backend services has totally shifted to Kotlin. We still keep a few classes in Java just to make sure that the integration remains seamless but the vast majority of our codebase is written in Kotlin. In this talk I will cover the language features and why I think it is awesome, from null safety to smart casts and data classes. We will also look into the future with 1.1 async/await feature and more.
Kotlin is a statically typed language that compiles to JVM bytecode or JavaScript. It is designed for readability and relies on simple but powerful abstractions. The talk discusses challenges in designing Kotlin, including mapping Java types to Kotlin, implementing flow-based typing for smart casts, and reusing Java collections while making them safer to use. Generics and variance were also challenges addressed in Kotlin's type system design.
Kotlin is a statically typed programming language that targets the JVM. It was developed by JetBrains to be concise, prevent errors, and interoperate fully with Java. Key features include properties, higher-order functions, extension functions, and null safety. Kotlin code compiles to JVM bytecode and works with Java code and libraries. Tooling includes an open source compiler and IDE plugins for IntelliJ IDEA and Eclipse. The language was designed based on learning from other languages like Groovy, C#, Scala, and Gosu, with a focus on common sense and avoiding unnecessary complexity.
The document discusses code generation on the JVM using various tools and frameworks. It provides an overview of Lombok for generating Java boilerplate code, Groovy AST transformations, CodeNarc for static analysis, and Spock, GContracts, and Groovy++ for framework-oriented code generation. It also discusses generating code at compile time using abstract syntax trees.
Kotlin is a statically typed programming language that runs on the Java Virtual Machine (JVM) and is fully interoperable with Java. Some key features of Kotlin include being less verbose than Java, property-based accessors, lambdas and type inference, which allow code to be more concise and readable. Kotlin aims to be practical for building large applications and introduces modern language features while also having a smooth learning curve for Java developers.
The document discusses C++ and its evolution over time. Some key points include:
- C++ has been active for over 30 years and remains relevant due to its performance and use in applications like mobile.
- The new C++11 standard adds many new features that make the language more powerful yet easier to use, such as rvalue references, lambdas, and type inference.
- Examples are provided showing how new C++11 features like futures, lambdas and static assertions can be used concisely to solve common programming problems in a more modern style.
The document provides an overview of key object-oriented programming concepts in C#, including:
- Classes and objects - Examples are given of defining a Player class with properties and constructors.
- Inheritance - Examples demonstrate how a ChildClass inherits from a ParentClass, including calling parent constructors.
- Polymorphism - Abstract DrawingObject class and derived classes like Line demonstrate polymorphism through overriding the Draw() method.
- Versioning - Examples show how to override and hide inherited methods using the override and new keywords respectively.
- Interfaces are also briefly mentioned as a topic to be covered.
Introduction to Kotlin Language and its application to Android platformEastBanc Tachnologies
Author: Oleg Godovykh, eastbanctech.com
Kotlin is a new programming language built by Jetbrains and is a new member of JVM family. As opposed to typical reason to introduce some new language, Kotlin main goal isn't to create new paradigm or fill a new niche, but to make routine tasks much easier and safer. Kotlin gains popularity across Android developer community, and in this presentation it is shown how Kotlin usage can dramatically simplify typical mobile app development.
Google is adding Kotlin as an official programming language for Android development. Kotlin is a language that runs on the JVM and has full interoperability with Java. It costs nothing to adopt! I will show some cool features of Kotlin, how it makes developing with Android easy and finally we'll see what happens under the hood when we write in Kotlin.
This document provides an overview of the Clojure programming language. Some key points:
1) Clojure is a Lisp dialect that runs on the Java Virtual Machine (JVM), allowing for concurrent and dynamic development.
2) In Clojure, everything is treated as data - code is represented as regular data structures like lists and maps rather than hardcoded syntax.
3) Clojure favors immutable, persistent data over mutable variables. This simplicity allows for easy parallelization and avoids common bugs from side effects.
Kotlin: A pragmatic language by JetBrainsJigar Gosar
A pragmatic language for JVM and Android.
Combines OO and functional features.
Focused on interoperability, safety, clarity, tooling support.
Open Source.
Works everywhere where Java works.
Key focus on interoperability and seamless support for mixed Java+Kotlin projects.
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016STX Next
Kotlin - one of the popular programming languages built on top of Java that runs on JVM. Thanks to JetBrains support and excellent IDE integration, it’s an ideal choice for Android development. 100% Java compatibility, interoperability and no runtime overhead is just the beginning of a long list of strengths. Kotlin is supposed to be a subset of SCALA, on one hand covering major advantages for developers and keeping short compile times on the other.
This presentation is a Developer Starter - a set of hand-picked information allowing a person with no knowledge of Kotlin to start writing basic Android activities and set up a kotlin-based Android project. It starts with language background, reasons for its creation and advantages. Then presents basic use cases, syntax, structures and patterns. Later on Kotlin is presented in Android context. Simple project structure, imports and Kotlin usage with Android SDK is explained. In the end cost of Kotlin compilation is presented and the language is compared to SCALA and SWIFT.
Kotlin is a JVM language developed by Jetbrains. Its version 1.0 (production ready) was released at the beginning of the year and made some buzz within the android community. This session proposes to discover this language, which takes up some aspects of groovy or scala, and that is very close to swift in syntax and concepts. We will see how Kotlin boosts the productivity of Java & Android application development and how well it accompanies reactive development.
The document discusses type-driven development in Scala. It covers various techniques for preventing bugs using static types, including value classes, Option types, dependent types, the IO monad, and validation. Advanced concepts from libraries like Scalaz and Shapeless are also mentioned, such as path dependent types, sized types, and using numbers as types. While static types add complexity, the document argues they can help catch bugs earlier by allowing compilers to validate code correctness.
The Kotlin 101 presentation was the very first presentation of the Kotlin Usergroup Vienna (https://www.meetup.com/Kotlin-Vienna/), held at a meeting from the Java Student Usergroup in 2016 (https://www.meetup.com/Java-Vienna/). It explains the raw (syntactical) fundamentals of the language targeting a Java developer audience.
Kotlin is a statically typed programming language that is 100% interoperable with Java. It aims to combine object-oriented and functional programming features and to be more concise than Java. Some key features of Kotlin include type inference, properties that replace getter/setter methods, higher-order functions, lambdas, and coroutines. Using Kotlin can increase developer productivity through less code, fewer errors, and clearer syntax. It also allows existing Java code to remain unchanged while new features are developed in Kotlin. Integrating Kotlin into a project requires adding dependencies and plugins, setting up tooling, and initially targeting a small component for parallel development in both languages.
Kotlin is a statically typed programming language that targets the JVM. It was developed by JetBrains as an alternative to Java that is more concise, prevents errors, and has features like properties, higher-order functions, and type inference. Kotlin aims for full interoperability with Java and compiles as fast as Java. It includes innovative features like traits, extension functions, and null safety guarantees. Tooling includes an open source compiler and IntelliJ IDEA plugin. Kotlin code examples demonstrate features like builders, smart casts, and null safety.
The document provides a comparison of Java and Kotlin programming languages across various categories like classes, exceptions, null safety, and enterprise adoption. Some key points summarized:
1. Kotlin code is more concise and readable compared to Java with features like data classes, extension functions, and property syntax. It also avoids null pointer exceptions through null safety features.
2. Kotlin does not have checked exceptions, making exception handling less verbose. It treats exceptions as non-returning functions of type Nothing.
3. While Java is widely used in enterprises, adoption is driven by Oracle. Kotlin has growing community support and adoptions from companies like Google but its rapid progression could be difficult for some to keep up with
The document discusses various Kotlin language features and how they are compiled down to bytecode. It explains concepts like lowering, de-sugaring, and decompiling Kotlin programs. Specific language features summarized include free functions, nested functions, extension methods, data classes, object declarations, companion objects, and lambdas with receivers. The document shows how each feature compiles by decompiling example Kotlin code.
This document discusses Kotlin coroutines and how they can be used with the Spring Framework. It provides an overview of coroutines, explaining concepts like fibers, green threads, and suspendable computations. It also covers using coroutines with Spring features like the @Async annotation and asynchronous MVC return types. The document provides code examples of coroutines concepts like channels, jobs, and yielding in sequences.
TMPA-2015: Kotlin: From Null Dereference to Smart CastsIosif Itkin
This document discusses Kotlin, a statically typed programming language that targets the JVM and JavaScript. It was developed by JetBrains since 2011 and is now open-source. Kotlin is null-safe, object-oriented, and compatible with both Java and Scala. It provides features like type inference, higher-order functions, and extension functions while being simpler than Scala.
Coding for Android on steroids with KotlinKai Koenig
Kotlin is a new language for the JVM that aims to be a "better Java". Made in-house by Jetbrains, the company behind IntelliJ IDEA and also Android Studio, it's been in development for more than 5 years. Just a few weeks ago the final version of Kotlin 1.0 saw the light of day.
This talk will start with a brief introduction into Kotlin and its core language features. After this brief foray into concepts like Kotlin's immutable variables, null behaviour and other smarts like the syntactic sugar it provides for dealing with types and properties you'll discover what's in store for Android developers.
Particularly noteworthy are the decrease in annoying Java boilerplate code, fewer of the irritating "Process has stopped unexpectedly" messages and the easily available Kotlin Android Extensions. You will also explore the toolchain and compiler tools Kotlin provides for Android development, the differences to using Kotlin for Java development as well as the integration into Android Studio.
The document discusses Project Roslyn, which rewrote the C# and VB compilers and IDE from scratch. This enabled new capabilities like incremental compilation for faster builds, predictive capabilities in the IDE, and opening the compiler APIs so others can build on top of it. The Roslyn compiler API unifies how C# code is understood, allowing third parties to build custom tools like analyzers, refactorings, and documentation generators. The document also previews upcoming C# features like pattern matching, tuples, and records being added to the language.
2022 May - Shoulders of Giants - Amsterdam - Kotlin Dev Day.pdfAndrey Breslav
New languages are inspired by existing languages: every generation learns from the previous one. Kotlin is no exception: its design is based substantially on the designs of languages such as Java, Scala, C#, Groovy, Python, Nice, etc. This talk will explain which parts of the design are inspired by which languages and what Kotlin does differently in each case.
A Sceptical Guide to Functional ProgrammingGarth Gilmour
This document provides a skeptical guide to functional programming through a series of slides presented at a BASH event. It begins by acknowledging that the presenter likes FP but is skeptical of FP programmers. It then discusses some functional programming languages like Lisp, Haskell, and Scala. It explores the differences between pure and hybrid languages. Several slides provide examples of code in languages like Clojure and Scala to demonstrate functional concepts. The presentation questions whether the language itself matters and argues the audience may already be using FP techniques without realizing it.
Similar to Poniendo Kotlin en producción a palos (Kotlin in production, the hard way) (20)
What is Master Data Management by PiLog Groupaymanquadri279
PiLog Group's Master Data Record Manager (MDRM) is a sophisticated enterprise solution designed to ensure data accuracy, consistency, and governance across various business functions. MDRM integrates advanced data management technologies to cleanse, classify, and standardize master data, thereby enhancing data quality and operational efficiency.
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
UI5con 2024 - Bring Your Own Design SystemPeter Muessig
How do you combine the OpenUI5/SAPUI5 programming model with a design system that makes its controls available as Web Components? Since OpenUI5/SAPUI5 1.120, the framework supports the integration of any Web Components. This makes it possible, for example, to natively embed own Web Components of your design system which are created with Stencil. The integration embeds the Web Components in a way that they can be used naturally in XMLViews, like with standard UI5 controls, and can be bound with data binding. Learn how you can also make use of the Web Components base class in OpenUI5/SAPUI5 to also integrate your Web Components and get inspired by the solution to generate a custom UI5 library providing the Web Components control wrappers for the native ones.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
When it is all about ERP solutions, companies typically meet their needs with common ERP solutions like SAP, Oracle, and Microsoft Dynamics. These big players have demonstrated that ERP systems can be either simple or highly comprehensive. This remains true today, but there are new factors to consider, including a promising new contender in the market that’s Odoo. This blog compares Odoo ERP with traditional ERP systems and explains why many companies now see Odoo ERP as the best choice.
What are ERP Systems?
An ERP, or Enterprise Resource Planning, system provides your company with valuable information to help you make better decisions and boost your ROI. You should choose an ERP system based on your company’s specific needs. For instance, if you run a manufacturing or retail business, you will need an ERP system that efficiently manages inventory. A consulting firm, on the other hand, would benefit from an ERP system that enhances daily operations. Similarly, eCommerce stores would select an ERP system tailored to their needs.
Because different businesses have different requirements, ERP system functionalities can vary. Among the various ERP systems available, Odoo ERP is considered one of the best in the ERp market with more than 12 million global users today.
Odoo is an open-source ERP system initially designed for small to medium-sized businesses but now suitable for a wide range of companies. Odoo offers a scalable and configurable point-of-sale management solution and allows you to create customised modules for specific industries. Odoo is gaining more popularity because it is built in a way that allows easy customisation, has a user-friendly interface, and is affordable. Here, you will cover the main differences and get to know why Odoo is gaining attention despite the many other ERP systems available in the market.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Drona Infotech is a premier mobile app development company in Noida, providing cutting-edge solutions for businesses.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
5. Null safety
fun printStringLength(maybeString: String?) {
// maybeString.length would not compile
if (maybeString != null) {
// maybeString cannot be null now, it's a String
println(maybeString.length)
} else {
println("<empty>")
}
}
”My billion dollars mistake”
Tony Hoare
6. fun printStringLength1(maybeString: String?) {
maybeString?.let { s -> println(s) }
}
fun printStringLengthOrEmpty(maybeString: String?) {
println(maybeString?.length ?: "<empty>")
}
Null safety
7. A small immutable Kotlin class
data class TokenInfo(
val tokenType: String = “auth”,
val identity: String
val expiration: Int? = null
)
8. Constructor with Properties
class TokenInfo(
val tokenType: String,
val identity: String
(…)
)
public final class TokenInfo {
private final String tokenType;
private final String identity;
(…)
public TokenInfo(
String tokenType,
String identity,
(…)) {
this.tokenType = tokenType;
this.identity = identity;
(…)
}
public final String getTokenType() {
return tokenType;
}
public final String getIdentity() {
return identity;
}
}
9. Getters and Setters
class TokenInfo(
val tokenType: String,
val identity: String
(…)
)
public final class TokenInfo {
private final String tokenType;
private final String identity;
(…)
public TokenInfo(
String tokenType,
String identity,
(…)) {
this.tokenType = tokenType;
this.identity = identity;
(…)
}
public final String getTokenType() {
return tokenType;
}
public final String getIdentity() {
return identity;
}
}
10. Named arguments and optional values
class TokenInfo(
val tokenType: String = "auth",
val identity: String,
val expiration: Int? = null
)
val token = TokenInfo(identity = "xxx")
Immutable classes with
optional fields?
Constructors with lots of
parameters
Builder object
11. Data classes
data class TokenInfo(
val tokenType: String,
val identity: String
(…)
)
public final class TokenInfo {
(…)
public String toString() { (…) }
public int hashCode() { (…) }
public boolean equals(Object var1) { (…) }
public final TokenInfoId copy(String tokenType,
String identity) {
(…)
}
public final String component1() { (…) }
public final String component2() { (…) }
}
Immutability
made easier
12. Collections improvements
List<Person> persons = Arrays.asList(
new Person("Sansa", "Stark"),
new Person("Jon", "Snow"));
List<String> personNames = persons.stream()
.map(p -> p.getName() + " " + p.getSurname())
.collect(Collectors.toList());
val persons = listOf(
Person("Sansa", "Stark"),
Person("Jon", "Snow"))
val personNames = persons
.map { p -> "${p.name} ${p.surname}" }
Extension functions
13. Collections improvements
List<Integer> result = list.stream()
.flatMap(o -> o.isPresent() ?
Stream.of(o.get()) : Stream.empty())
.collect(Collectors.toList());
val result = list.filter { it != null }
List<Integer> result = list.stream()
.flatMap(o → o.map(Stream::of)
.orElseGet(Stream::empty))
.collect(Collectors.toList());
List<Integer> result = list.stream()
.flatMap(Optional::stream)
.collect(Collectors.toList());
14. String Interpolation
List<Person> persons = Arrays.asList(
new Person("Sansa", "Stark"),
new Person("Jon", "Snow"));
List<String> personNames = persons.stream()
.map(p -> p.getName() + " " + p.getSurname())
.collect(Collectors.toList());
val persons = listOf(
Person("Sansa", "Stark"),
Person("Jon", "Snow"))
val personNames = persons
.map { p -> "${p.name} ${p.surname}" }
15. Type Inference
val persons = listOf(
Person("Sansa", "Stark"),
Person("Jon", "Snow"))
val personNames = persons
.map { p -> "${p.name} ${p.surname}" }
List<Person> persons = Arrays.asList(
new Person("Sansa", "Stark"),
new Person("Jon", "Snow"));
List<String> personNames = persons.stream()
.map(p -> p.getName() + " " + p.getSurname())
.collect(Collectors.toList());
27. ●
Can affect development time
●
Misunderstandings can increase bug rate
●
Service responsibility is not fixed
Not just YOUR team
Learning cost
28. ●
Learning curve very smooth
●
On doubt, use Java style and methods
●
Not a real paradigm change
●
Same libraries and concepts
Learning cost ® BUT...
29. ●
Good documentation
●
Short library
●
Is there a general interest in Kotlin in the company?
Kotlin community
Android devs pushing for a change
Learning cost ® BUT... (2)
30. ●
It's production!
●
New technology, may have bugs
●
Adds code “behind the courtains”
●
Any weird behaviour affecting memory, garbage collection...
Can affect Performance
31. ●
Same Java VM
●
You can see compiled bytecode
●
Decompile problematic code to Java and tune it
●
Start a component in Java and then convert it to Kotlin
Can affect Performance ® BUT...
32. ●
Extension functions are just a trick, no overhead
●
Null checks are a small runtime overhead
●
Platform and base libraries are the sane
●
Kotlin library overhead not important for backend
Can affect Performance ® BUT... (2)
34. ●
Same IDE: IntelliJ, Eclipse...
●
Same build tools: Maven, Gradle...
●
In a microservices architecture build time not so critical
Seconds?
Tooling problems ® BUT...
35. ●
What if Kotlin stops being “cool”?
●
What if nobody uses it anymore?
●
What if it just dissapears?
Supported / created by Jetbrains
Long-term vision
38. ●
Development time basically the same
●
Code Reviews more interesting!
●
Our Java platform was 100% compatible
Learning cost?
39. ●
Rest of the company?
4 teams doing services in Kotlin
Kotlin now official in the company for Android
Learning cost?
40. final vs. open
Some Java libraries rely on
dinamically creating subclasses
●
Interceptors and other injection “black magic”
Spring, Guice…
●
Mocks: Mockito, Spock
41. Compiler plugins
●
All-open: Make classes open
Shortcut: Spring
●
No-args: Create a no-args constructor
Shortcut: JPA
Beware!: only by annotations
42. Compiler plugins ® All-open not enough
●
@Transactional problem (if no class annotation)
Explicit open class and methods
●
Mocks?
Mockito 2.1.0 “inline mocks”: “incubating”
Kotlin-runner library: explicit packages
43. Compiler plugins ® No-args not enough
●
Object Mapper libraries
Explicit no-args constructor
●
Spock tests
Named parameters don’t work from Java / Groovy
44. const val ONE = 1 // MyObject(1) NO OBJECTS ALLOWED
// Translated to: public static final
class Constants {
companion object {
const val TWO = 2 // MyObject(2) NO OBJECTS ALLOWED
// Translated to: inlined
val THREE = MyObject(3) // Translated to private static
// + Companion class with getter
@JvmField val FOUR = MyObject(4) // Translated to public static final
}
}
Constants: too many options?
https://blog.egorand.me/where-do-i-put-my-constants-in-kotlin/
48. ●
Eclipse with Kotlin and Groovy tests just don’t work
●
Eclipse incremental compilation a bit slow
●
Some crashes when updating IntelliJ plugin
●
Incremental build disabled by default in some versions
Maven+Gradle
●
Checkstyle, Findbugs…
Tooling problems?
49. ●
Eclipse with Kotlin and Groovy tests just don’t work
●
Eclipse incremental compilation a bit slow
●
Some crashes when updating IntelliJ plugin
●
Incremental build disabled by default in some versions
Maven+Gradle
●
Checkstyle, Findbugs…
Tooling problems?
60. Yay or Nay?
●
Controlled risk, but… worth it?
●
What’s the benefit?
Mostly syntatic sugar
Productivity really improved???
61. Yay or Nay?
●
Controlled risk, but… worth it?
●
What’s the benefit?
Mostly syntatic sugar
Productivity really improved???
How about thinking about PEOPLE
instead of PRODUCTS?