Thomas Wuerthinger is a Vice President at Oracle Labs leading programming language implementation teams for languages including Java, JavaScript, Ruby, and R. He is the architect of the Graal compiler and the Truffle self-optimizing runtime system. Previously, he worked on the Crankshaft optimizing compiler of V8 at Google, and the Maxine research virtual machine at Sun Microsystems. He received a PhD degree from JKU Linz for his research about dynamic code evolution.
Last January a challenge was posted online by Gunnar Morling:
How fast can you parse a file with one billion rows of weather data using Java?
Little did we know this deceivingly simple question would lead us down a path that covered: parallelism, memory mapped files, SWAR techniques (SIMD as a register), bit twiddling, branchless code, mechanical sympathy, Graal native compilation and finally... turning to the dark side: using sun.misc.Unsafe.
Join Thomas and Roy during this deep dive where they explain all the improvements and tricks that enabled them to go from a >4 minute reference implementation to processing a billion rows in under two seconds.
Who knew Java could be _this_ fast?
Projects such as LangChain4j, Spring AI, and llama3.java got the Java community very excited about AI in the last year. The Python ecosystem also provides many powerful packages for data science, machine learning, and more. Wouldn't it be cool if you, as a Java developer, could benefit from this, too?
In this interactive talk, we show how you can use GraalPy, the Python runtime built by the GraalVM team, to embed Python in your Java applications. We'll start simple with adding GraalPy as a dependency to a minimal Java project and show how easy it is to get started and evaluate Python code. We then show how the Maven and Gradle plugins for GraalPy can help install additional Python packages. We continue with more live demos that illustrate different use cases, such as: a Micronaut application that uses Hugging Face transformers, an AWT application that visualizes data with Python (running on JBang!), a Jupyter kernel that lets you mix Java and Python in the same notebook, and a Java application scripted with Python.
We'll also look beyond Python and provide examples of how to embed other languages. You can, for example, also use JavaScript for server-side rendering or scripting of Java applications. You can even compile user-defined functions written in C++ or Rust, compile them to WebAssembly, and embed them in Java.
Come and join us to learn more and don't be shy to ask questions!
Join this BOF to discuss the future of GraalVM with the GraalVM team and community. We will share details about upcoming features of GraalVM such as Native Image Layers or JDWP-based Debugging Support, as well as GraalOS and other new components of the Graal Stack.
We'd also like to hear from you about how we can improve GraalVM: How are you using it today? What's your experience so far? How would you like to use it in the future? Which features, tools, and integrations would be good to have? And how could we further improve the developer experience for you?
Come and bring your questions and get answers directly from the team!
Searching for speaker images...