InfoQ

Interview

   Good News: We have re-worked our video infrastructure to provide more reliable service. Please email bugs at infoq.com with any problems.

Joshua Bloch on Closures, Resource Management, Google

Interview with Joshua Bloch on Nov 07, 2006 11:50 AM

Community
Java
Topics
Programming
Tags
Closures,
Java SE,
Language Features
Summary
Core Java language designer Joshua Bloch talks about the need for Closures, Functional Programming, Java's need for better resource management, Java Puzzlers, and cool stuff Google is doing with Java. Recorded at www.javazone.no conference, Norway's best Java conference.

Bio
Joshua Bloch is a Principal Engineer at Google. He led the design and implementation of numerous Java platform features, including the Java Collections Framework. He is the author of the Jolt Award-winning book Effective Java. He holds a Ph.D. in Computer Science from Carnegie-Mellon University and a B.S. in Computer Science from Columbia.
Josh can you tell us a bit about yourself and what you are doing at Google these days?
Are you still heavily involved with Java's evolution even though you're at Google?
What's going on in Java these days that excites you?
Where do you stand on the closures debate?
So Java itself should not approach more functional programming style?
What else do you think Java needs from a language perspective?
About the resource management idea: what are the use-cases for this, why do we need it?
As the Java platform becomes multi-lingual, how do you see the standards bodies functioning and the platform itself evolving?
Now that you're not at Sun anymore. Can you give us your honest opinion on how you think open-source java should be governed?
If you were all powerful and you could change two things about how Java evolved over the last 8-9 years what would you change?
What is Google doing with Java?
Can you tell us more about this awesome Java infrastructure at Google?
What's new with Puzzlers?
What's your favorite puzzle?
show all  show all

11 comments

Reply

Using block for Java by Jonathan Allen Posted Nov 8, 2006 12:40 PM
The Reference Puzzle by Scott Gelb Posted Nov 8, 2006 9:13 PM
Re: The Reference Puzzle by seri katil Posted Apr 2, 2008 12:30 PM
Re: The Reference Puzzle by taker yurtok Posted May 6, 2008 3:29 PM
Re: The Reference Puzzle by mustafa kara Posted May 9, 2008 5:45 PM
Thumbs up for the text ! by ZedroS Schwartz Posted Nov 9, 2006 1:56 PM
Listening to Josh by Alex Popescu Posted Nov 11, 2006 6:59 AM
Resourcing Problem. by Geoffrey Wiseman Posted Nov 13, 2006 10:28 AM
a using()-like block for Java by Roger Voss Posted Nov 24, 2006 11:15 AM
Re: a using()-like block for Java by mustafa kara Posted May 14, 2008 9:16 PM
Re: a using()-like block for Java by ankara nakliyat Posted May 15, 2008 10:13 AM
  1. Back to top

    Using block for Java

    Nov 8, 2006 12:40 PM by Jonathan Allen

    I really like this idea, but as the Joshua says it needs to have more than one resouce on the same line. I don't think this would be hard, as VB does it with its Using block.

  2. Back to top

    The Reference Puzzle

    Nov 8, 2006 9:13 PM by Scott Gelb

    In case anyone is interested, in the last part of the interview Dr. Bloch makes a reference to Puzzle 85: Lazy Initialization (pg. 205 of Java Puzzlers).

  3. Back to top

    Thumbs up for the text !

    Nov 9, 2006 1:56 PM by ZedroS Schwartz

    Hi That's great you put a written translation of the interview. Good on you ! Cheers, ZedroS

  4. Back to top

    Listening to Josh

    Nov 11, 2006 6:59 AM by Alex Popescu

    Listening Josh speaking is always an amazing experience. The resource auto-manageable blocks sounds very well and I would definitely be happy to have something like this as soon as possible. Even if I haven't hit myself many of the "issues" Josh would have theoretically changed, still just thinking about them make you see things pretty different. Excellent interview! ./alex -- .w( the_mindstorm )p.

  5. Back to top

    Resourcing Problem.

    Nov 13, 2006 10:28 AM by Geoffrey Wiseman

    Completely agree that the resourcing problem is one that Java needs a better solution for, which is definitely something that Closures are used for in other languages. Ruby's full of idioms like this where you 'use' a connection with a block, rather than opening, doing stuff, then closing, and catching.

  6. Back to top

    a using()-like block for Java

    Nov 24, 2006 11:15 AM by Roger Voss

    The thing about C# using() is that it only works with objects that implement IDisposable interface. There is no similar universal interface in Java for standardizing the cleanup of non-memory resources. The various resources that one might want to subject to such a language construct in Java have varying conventions as to what to invoke. So in the end there might need to be a way to associate a closure in which one places the code that invokes whatever method does cleanup operation. Also if this new feature is made to work with multiple resources, then how does this new construct insure that each resource cleanup method gets invoked (i.e., how to automatically deal with the potential of a given cleanup method to throwing an exception)? If closures are introduced as part of the solution for this, there is possibility that a cleanup method throws a checked exception so the closure must deal with that. I'd prefer not to have to wrap calls in try/catch - hopefully a new construct for cleaning up deterministic resources could automate dealing with this concern.

  7. Back to top

    Re: The Reference Puzzle

    Apr 2, 2008 12:30 PM by seri katil

    Hepl Blog >>> evden eve nakliyat

  8. Back to top

    Re: The Reference Puzzle

    May 6, 2008 3:29 PM by taker yurtok

    havalandırma havalandirma izolasyon Sohbet iso 9001 iso 14001 Yangın Söndürme yangın söndürme cihazları yangın dolapları yangın tüpü izalasyon ısıtma soğutma isitma sogutma Aspirator Aspiratör Vantilatör sohbetim turizm işletme belgesi turizm belgesi turizm yatırım belgesi Chat sohbet odası sohbet sitesi türkiye sohbet tr sohbet tüm türkiye sohbet arkadaş sohbet türkiye sohpet kızlarla sohbet kızlarla sohpet muhabbet muhappet kızlarla çet çet türkiye çet çet sohpet mırç mirç türkiye mirc mirc muhabbet Sohbet Sitesi Chat Sohpet Yangın yangın güvenlik yangın söndürme sistemleri yangın tüpü dolum yangın merdiveni yangın çıkış kapısı  Hava Soğutma Hücreli Aspiratörler Fanlar Radyal Körükler Toz Toplama Soğutma Kulesi Klima Santraller Malzeme Nakil Vantilatörleri iso 14001 iso 14001 iso 22000 iso 22000 haccp belgesi haccp belgesi ikamet tezkeresi yabancı çalışma izni yabancı personel çalışma izni yabancı çalışma izni yabancı personel çalışma izni ohsas 18001 ohsas 18001 iso belgesi iso 9001 belgesi ohsas belgesi ISO 9001 Teşvik Belgesi Çocuk Bezi Hasta Bezi Makyaj Malzemeleri Makyaj Temizleme Mendili Kişisel Bakım kolonyalı mendil Islak mendil Dudak Koruyucu Temizlik Ürünleri Göz Kalemi Diyet Ürünleri Süper Site driver Güvenlik Kamerası Islak Mendil Kolonyalı Mendil Kolonyalı Mendil JoyTurk driver ara web tasarım Güvenlik Kamerası paketleme Kamera gizli kamera Kamera Kurulum Tatil Tatil Yerleri Tatil Beldeleri Perde Perde Modelleri Kamera Epilasyon Emlak Yaşam Tatil Video Cilt Bakımı video süper perde jaluzi perde stor perde dikey perde perde modelleri perde jaluzi perde stor perde dikey perde perde modelleri magazin haberler spor haberleri video eğitim Giyim

  9. Back to top

    Re: The Reference Puzzle

    May 9, 2008 5:45 PM by mustafa kara

  10. Back to top

    Re: a using()-like block for Java

    May 14, 2008 9:16 PM by mustafa kara

  11. Back to top

    Re: a using()-like block for Java

    May 15, 2008 10:13 AM by ankara nakliyat

Exclusive Content

Intentional Software - Democratizing Software Creation

Business users doing programming? Simonyi and Kolk presents how Intentional Software offers a radical new software approach that separates business knowledge from software engineering knowledge.

Getting Started with Grails

Jason Rudolph discusses Java/Grails integration, Grails plugins, creating a Grails sample application, Grails app structure, data querying and persistence, validation, controllers and tag libraries.

Creating Product Owner Success

The Scrum Product Owner role is powerful, valuable and challenging to implement. It brings healthier relationships between customers and developers, and competitive advantage - if you do it right.

Book Excerpt and Interview: Effective Java, Second Edition

Effective Java, Second Edition by Joshua Bloch is an updated version of the classic first edition, which won a 2001 Jolt Award. InfoQ asked Bloch questions about the areas that the new edition covers.

Tapestry for Nonbelievers

A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.

Pete Lacey on REST and Web Services

In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.

Business Natural Languages Development in Ruby

Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.

Distributed Version Control Systems: A Not-So-Quick Guide Through

Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.