Cornelia Davis: Patterns, Java’s Big Break and Beyond REST APIs

Pivotal sponsored this podcast.
Cornelia Davis, author of the book “Cloud Native Patterns” and vice president of technology at Pivotal, started in programming as a 17-year old on TRS-80s. Today, in this latest episode of The New Stack Makers podcast, she traces the popularity of Java, Spring Platform and Kubernetes to her career and how patterns have defined the technologies she has worked within her career.
Davis learned the laundry list of imperative languages early in her career: C, Fortran, Cobal, Pascal. She went into the workforce and then went on to study the theory of computing and programming languages. The focus on pragmatics and the deep foundations of computing has served her well.
But what about Java? It is still growing. It’s the innovation of frameworks and open source, moving Java beyond J2EE that has given Java a new energy, which speaks to the importance of a core technology and its extensibility.
The Spring framework has made a difference for Java, Davis said. And that shows the lasting value of a deep core with extensions that serve as a way to spring innovations around the edges. Today, as yesterday, it is the Java core that matters but it is the open source Spring framework that offers new capabilities.
“Kubernetes got its fame from container orchestration. But that is just a teeny, tiny part of Kubernetes. I actually believe that the most powerful thing about Kubernetes is that it is a system that presents a new programming model.” — Cornelia Davis
It’s this pattern of core technologies, frameworks and open source that serve as the foundation for Kubernetes and the need for highly distributed systems.
In this conversation, we explored how the nature of distributed systems and how they have matured over the years from Davis early days studying at Indiana University and in her career as a technologist.
It’s evident with Scala and new languages like Kotlin that have gained importance because they are functional languages first, more expressive than prescriptive. Davis explained, “I believe the popularity around Kotlin is that it is a functional programming language first,” continuing that a functional programming language is based on mathematical functions, designed to handle symbolic computation and list processing applications.
The languages are meant for the new world of distributed systems that must rely on the deep technical capabilities of distributed architectures. They are designed for functional thinking. “Language is naturally designed for functional thinking,” she said.
“What is so cool about these functional languages where you are expressing your intent is that you are somewhat ceding some of that control to an entity that’s a whole lot better at managing distributed systems of tens of thousands or hundreds of thousands of nodes than human beings possibly can be,” she said.
Early in Davis’ career, the nature of systems required tight coupling as early in the process as possible. Now, with cloud native technologies, the coupling is as late as possible, into production, to allow for loosely coupled capabilities.
There were a lot of divisions between developers and operations. There is still a partitioning but there is this myth of the full-stack engineers who are good at everything. But that’s not the case. It is really about full-stack teams and what the team is responsible for in their work.
I thoroughly enjoyed this conversation with Cornelia Davis. Her deep experience provides insights that few have. Like any accomplished technologist, her energy and excitement for her work is immediately apparent, providing perspective on everything from programming languages, to functions and beyond to the future of APIs.
This conversation was recorded at the SpringOne Platform conference, which took place this year in Austin, Texas.
The Patterns Behind Java, Kubernetes and Modern Distributed Systems
In this Edition:
1:19: How did you get your start in technology?
6:01: How is that playing into concepts we’re hearing a lot about today?
10:31: How have your experiences programming influenced how you think about continuous integration and continuous delivery today?
16:49: Can you talk about the core principles that Pivotal upholds?
21:23: Where are we now, then?
29:11: How is that opinionated philosophy emerging with how you think about Kubernetes?
Jennifer Riggins contributed to this post.