The document discusses polyglot programming capabilities in the GraalVM. It describes how GraalVM allows different programming languages like JavaScript, Ruby, R, and native languages to run on the same virtual machine. It shows benchmarks demonstrating that GraalVM can achieve performance comparable or better than standalone language implementations. The document also explains how languages can interoperate in GraalVM using an interop API to call functions defined in one language from another language.
The document discusses polyglot programming capabilities in the GraalVM. It describes how GraalVM allows different programming languages like JavaScript, Ruby, R, and native languages to run on the same virtual machine. It shows benchmarks demonstrating that GraalVM can achieve performance comparable or better than standalone language implementations. The document also explains how languages can interoperate in GraalVM using an interop API to call functions defined in one language from another language.
Kotlin is a statically typed programming language that runs on the JVM and is fully interoperable with Java. The document discusses some key reasons why Java engineers should consider Kotlin, including that it is more concise, safe, and versatile compared to Java. It also provides examples showing how Kotlin code can be more concise than equivalent Java code through features like data classes, default values, named arguments, and standard library functions.
This document discusses several popular Java libraries including:
- Dependency injection frameworks like Guice and Spring
- Logging with SLF4J
- Collections and utilities with Guava
- HTTP clients like OkHttp
- Reactive programming with RxJava
- REST with Retrofit
- Asynchronous programming with JDeferred
- Event handling with MBassador
- Code generation with Lombok and ByteBuddy
- Testing utilities like JUnitParams, Mockito, Jukito, and Spock
- Waiting assertions with Awaitility and REST testing with Rest-assured.
This document discusses polyglot programming capabilities in the Graal VM. It describes how Graal VM supports multiple languages like JavaScript, Ruby, R, and C/C++ running on a single high-performance virtual machine. It demonstrates how to call functions between languages using an interoperability API and shows that polyglot applications can achieve performance comparable to using individual language VMs.
This document discusses different patterns for handling auto-generated code in projects. It compares the Butter Knife and Dagger patterns, which either hide generated codes or do not use reflection, respectively. The author recommends the Dagger pattern as it does not require developers to learn naming rules of generated classes or add complex proguard configurations. Hiding generated code can cause issues if class names change, while not using reflection avoids errors and makes the library easier to use for developers.