We came across Lightbend quite a while ago. If you don't know Lightbend, they are the company behind the Akka toolkit (as well as Scala, Play Framework, Lagom, and others). Hundreds of thousands of Java and Scala developers around the world use these products.
Our first collaboration was at the Scala Love podcast, where Lukas Ritz and Seth Tisue talked about Scala and its compiler's internals. The episode is full of insights, check it out.
In the meantime, learn more about Lightbend, read Hugh's interview, and enjoy previous talks from Lightbenders.
Two platforms for different flavors of developer experience: Akka Serverless and Akka Platform.
Akka Serverless lets you easily build stateful, high-performance, back-end services and APIs on a powerful serverless platform. It delivers high performance and very low latency in an extremely cost-efficient manner–without worrying about setting up databases, managing state, or ongoing maintenance. Most important: you get your code into production in minutes.
Register for the open beta launch June 16th, 2021!
Akka Platform includes Akka Cloud Platform for AWS and GCP (with Azure coming soon) and Akka Data Pipelines. Together, you get the full power of Akka reactive microservices frameworks and streaming
data pipelines to run on-premise or in the cloud.
Hugh McKee is a developer advocate at Lightbend. He has had a long career building applications that evolved slowly, inefficiently utilized their infrastructure, and were brittle and prone to failure. Hugh has learned from his past mistakes, battle scars, and a few wins. And the learning never stops. Now his focus is on helping other developers and architects build resilient, scalable, leading-edge systems. He is the author of Designing Reactive Systems: The Role Of Actors In Distributed Architecture
How has your programming style with Java evolved over the past couple of years? What are some of the things that led to the significant improvements?
One of the most significant changes for me has been moving from loops to streams. Also, another change has been using var versus the more traditional and verbose fully typed variable assignment expressions.
Do you have any personal habits around development or self-care that you would like to share with our audience?
Never completely trust your instincts and intuition when you code. One of the most common issues I fight with myself and see in many other developers is not pre-optimizing your code. Get the code working first and then optimize it. One of the worst habits is not trying something new due to preconceived concerns that are not based on facts and experience.
There are Groovy, Scala, Kotlin, and many others in the family of JVM languages. What features do we miss in Java in comparison with other JVM languages? Elaborate.
Semantic density is the fundamental feature that these other JVM languages share that is still missing in Java. That said, the evolution of Java that is focused on reducing code density is one of the most exciting things happing right now.
Are we going to use modules ever? When we create a module, we organize the code internally in packages, just like we previously did with any other project. So why are packages not enough?
Modules are for frameworks IMO. For the most part, we still do not know how to use packages properly. I try to use packages to manage code visibility. That is group code in packages based on the interaction between classes, methods, and functions. Only make something public when something else outside of a package needs access. The default class visibility should be package-private, not public.
The focus of the talk Debasish Gosh presented is to emphasize the importance of algebraic thinking when designing pure functional domain models. The talk begins with the definition of an algebra as consisting of a carrier type, a set of operations/functions and a set of laws on those operations. Using examples from the standard library, the talk shows how thinking of abstractions in terms of its algebra is more intuitive than discussing its operational semantics.
The talk also discusses the virtues of parametricity and compositionality in designing proper algebras. Algebras are compositional and help build larger algebras out of smaller ones.
Debasish starts with base level types available in standard libraries and compose larger programs out of them. He takes a real life use case for a domain model and illustrate how he can define the entire model using the power of algebraic composition of the various types. He talks about how to model side-effects as pure abstractions using algebraic effects.
At no point he talks about implementations. At the end of the talk you will have a working model built completely out of the underlying algebra of the domain language.
Akka’s new type-safe APIs graduated from experimental to stable with the release of Akka 2.6. Akka 2.6 was released in November 2019 and represented a major step forward for the project, despite being a minor version tick from 2.5 to 2.6. The new API became the default for documentation, reference projects, and is the base upon which many exciting new features and projects were added to the Akka ecosystem in the following year.
There are too many topics in the Akka 2.6 series to cover in a single talk, but Sean Glover highlights several major developments, such as easier to use APIs for Akka Persistence and Cluster Sharding, a new remoting layer to optimize peer to peer connections in Akka cluster, a new project called Projections to manage readside views in event sourced systems, and the ability to define external shard allocation strategies with Akka Cluster to optimize data locality (i.e. with Alpakka Kafka consumer instances).
He also highlights recently open sourced components that were previously only available to Lightbend customers, such as the Split Brain Resolver for Akka Cluster.
sbt is a build tool that is built on top of a few principles. That simplicity makes sbt very extensible, but it also throws people off because they are not always intuitive. In this talk, Eugene Yokota tries to introduce those core concepts.
He also covers some updates he made in sbt 1.x series.
An active member of the Scala community since 2008, you could have met Seth Tisue at the Scalawags podcast, many conferences, and pretty much any online community around Scala. Having joined the Scala team at Lightbend in 2015, Seth previously used Scala to build the compiler and other tools for NetLogo, an open-source programming language for kids, teachers, and scientists.
Check out the latest Scalawags's episode recorded at Scala Love in the City conference in February 2021.
Development teams in companies like Tesla, Verizon, Starbucks, and PayPal choose Lightbend's products to build the most demanding, globally distributed, cloud native application environments and streaming data pipelines. Many of the Global 2000 turn to Lightbend in support of their most business-critical initiatives. We are pleased to have them at our conferences!