Improving Your Groovy Kung-Fu (Dierk Koenig)
This no-slide presentation works through a wide variety of Groovy moves: from hidden treasures in the language itself through Groovy helpers for your daily work as a programmer to exercising the latest and greatest Groovy libraries and frameworks. This is an interactive event. Toss in your questions to help steer the direction of the session.
Extreme GUI Makeover 2017 (Hendrik Ebbers)
This session is for all UI lovers, GUI enthusiasts, and friends of modern and user-friendly UX. JavaFX is not only a modern UI toolkit but also the recommended UI toolkit of Java. It offers a lot of amazing features to help you craft modern-looking and interactive user interfaces. JavaFX offers everything needed for creating well-behaved and aesthetically pleasing GUI applications. The presentation compares and contrasts your run-of-the-mill application and then goes one step further by showing how developers can create an “extreme” GUI application. Who needs an old-school toolbar when they can have an animated menu? Because this is an “extreme makeover” session, the examples are presented as live demos and live coding sessions.
Projector Pattern for Efficient Creation of Ambitious User Interfaces (Dierk Koenig)
Pleasant user interfaces don’t shine only due to an attractive appearance. They also provide a sense of immersion through instant feedback. Advanced UIs of this kind are often considered too costly to build. The projector pattern offers an efficient way to construct ambitious UIs from presentation models that capture “what” to display. The projector defines in a single and consistent way “how” to visualize the model and how to interact with it. The programmer just selects projections such as “simple form,” “master-detail,” and “search” from a catalog. Suitable projectors display this declarative UI with your UI toolkit of choice, be it desktop (JavaFX, Swing, SWT), web, or mobile. Learn more in this session.
Extremely Typed: Haskell for the JVM (Dierk Koenig)
Static type safety is good. More is even better. The Frege project brings Haskell and its extreme type system to the JVM such that we can provide new guarantees through the type system at compile time. We can disallow side effects in calls to software transactional memory (STM). We can also make sure that JavaFX components are ever touched only in the UI thread. We can assert that parallel computations change no state. What was long impossible to achieve is now a reality! Learn more in this session.
Redux with JavaFX (Michael Heinrichs)
Adventures with Higher-Order Types in a Purely Functional Language (Dierk Koenig)
The Frege project brings Haskell and its extreme type system to the JVM. These types can express higher-order constructs that would otherwise require annotations, extra tooling, or design patterns. This session explores the use of higher-rank and higher-kinded types and shows how they can provide new guarantees at compile time. We can disallow side effects in calls to software transactional memory (STM). We can make sure that JavaFX components are ever touched only in the UI thread. We can assert that parallel computations change no state. Let’s explore these benefits and how knowing the very foundations of computational science can change your programming style.
Super Duke Land (Hendrik Ebbers, Timo Brandstaetter)
The last years, several new UI toolkits and frameworks were developed. Since some common basics are always the same, the rendering engines of these toolkits have different features and use completely different approaches for rendering. To really understand the benefits and pitfalls of these toolkits and engines you need to know how the different rendering approaches are working internally. Since this can be a very complex topic, we want to give an insight in this area with a new and funny approach. By using a custom Java based game engine instead of several boring business applications we will show the difference of the rendering types and give an overview of the pros and cons. So if you ever want to see a Java based Duke platformer you should come to this session ;)
Emerging Languages Bowl 2017: The Growth Spurt Continues (Dierk Koenig)
The panelists in this session continue the quest for a winner of the emerging languages bowl, which has replaced the former script bowl. Some JVM-based languages from previous years—Frege, Golo, Kotlin, Mirah, and Red Line—and new languages such as eta and Lux go through the following two rounds of heavy combat.
• A common task round
• A community round
The audience will pick the winner and will leave the fun-filled and unique panel session with an idea of which language might be the most relevant to their needs.
Spice Up Your JUG with New Event Formats (Michael Heinrichs)
This BOF discusses what other types of events can be organized in a JUG beyond typical talks. What have people tried in the past? What went well, and what could be improved? What other ideas do you have for your JUG? The goal is to share experiences so that all of us go back with great ideas about things we want to try in our JUG.