WEBINAR ALERT! Join our latest ZTLive session: What’s New for Developers in JDK 9 featuring Simon Ritter and Dr. Venkat Subramaniam!
The latest Virtual JUG session was a little different from our traditional sessions. It was an amazing panel of Java speakers who were picked to answer your questions about Java 8 and Java 9, in an ask me anything style. The panel was carefully picked so we have a broad representation, including an Oracle Java guru, an Azul Java master, a community figurehead, and a Java legend: Stuart Marks, Simon Ritter, Bruno Souza and Venkat Subramaniam. Here a bit more about our speakers.
Stuart Marks is a Principal Member of Technical Staff in the Java Platform Group at Oracle. He is currently working on a variety of JDK core libraries projects, including Collections, Lambda, and Streams, as well as improving test quality and performance.
Simon Ritter is the Deputy CTO of Azul Systems. Until recently, Simon has been at Oracle focused on developer outreach for the core Java platform, Java for client applications and embedded Java. Now at Azul he is helping the Java community to understand Azul’s Java virtual machine technologies and products.
Bruno Souza is a Java Developer and Open Source Evangelist at Summa Technologies, and a Cloud Expert at ToolsCloud. He’s a founder and coordinator of SouJava — The Java Users Society, one of the world’s largest Java User Groups, Bruno leaded the expansion of the Java movement in Brazil. You might know him as the Brazilian Javaman and the guy with the flag. Additional thanks to Bruno for stepping in at late notice, as Yara Senger unfortunately couldn’t make the session late on.
Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an instructional professor at the University of Houston. He has trained and mentored thousands of software developers around the world and is a regularly-invited speaker at international conferences.
Wow, that’s an amazing lineup, right? Here is the recording of the session available, be sure to check it out in its full length and glory!
Also just to give you a taste of what has been discussed and to show the depth of the questions and answers, here’s one of my favorite questions from the session.
blue61 from the IRC asks: With Java 8 there’s been an intelligent deducing of types for lambdas introduced into the compiler. Is there any use for that apart from finding the types for lambdas?
Venkat Subramanian: The main benefit of having the powerful type inference is the lack of ceremony. You know what the type of the lambda is, the compiler knows it too, so why waste time on
I didn’t like static typing until I started to program in Haskell, where the type system is so powerful that the type inference almost always can deduce the types for you, without explicit declarations. In Java we are used to specify the types everywhere, but in Scala I love to avoid the type declaration if possible, same with C sharp.
Stuart Marks: all right, people at various other languages have typeless declarations, like var and val in Scala. And people call that type inference and ask why Java doesn’t have type inference. But Java does have type inference and lots of that is usually going on, rather that it happens in a different place, for example when you specify the collections types. It’s a matter of the language design style if the type inference is allowed at the variable definition. But the actual question was about the uses besides lambdas, let’s cover that too. Java 8 was heavily focused on lambdas, so the type inference was heavily focused on that as well.
Editor’s comment: Now, that answer was of course given before the new JEP about variable type inference in Java got published. So our experts could not discuss that possibly in the next version of Java you won’t need to specify the type for local variables and can just declare them with
var myString = "hello world!"; or something similar. Of course that’s quite far in the future but we have to understand that the discussion is even possible just because so much work has been already put into the type inference functionality in Java.
Anyway, check out the full video, it’s worth it!
What did you think of the panel session? Should the Virtual JUG have more panels or stick to the regular educational sessions? Share your thoughts in the comments section below or tweet at us: @zeroturnaround.