InfoQ

News

Interview: Erich Gamma Discusses Jazz, Eclipse, JUnit and Design Patterns

Posted by Ryan Slobojan on Sep 22, 2008 12:00 PM

Community
Architecture,
Java
Topics
Programming ,
Unit Testing ,
Object Oriented Design ,
Collaboration ,
IDE ,
Artifacts & Tools
Tags
Eclipse ,
QCon ,
Releases ,
Community ,
Jazz ,
Design Patterns ,
QCon London 2008 ,
JUnit ,
Dependency Injection

In this interview from QCon London 2008, Erich Gamma discusses the Jazz project, why Eclipse has been successful, the strict Eclipse release schedule, JUnit, Design Patterns, how to identify a design pattern, design patterns and the 'Don't Repeat Yourself' principle, the design pattern community, and whether dependency injection is a design pattern.

Watch Erich Gamma Discusses Jazz, Eclipse, JUnit and Design Patterns (23 minutes).

From the interview:

Jazz is a new technology I have built, we have started on that three years ago, it's really based on lots of experience we gained in Eclipse. In Eclipse we learned about Agile practices, distributed development, we learnt a lot about how good is to have powerful tools for coding for development. But we also learned that there are areas where there is friction and, particularly when you want to work in a team, there are places where I don't think you will get the same level of support as you get from the IDE.

And that's why we started to really look into how could the new generation of team tools look like, they are built on a common platform, the platform of course again it's the same spirit as Eclipse, should become an extensible platform, and multiple tools can build on top of it and then also can be integrated. Seamless integration -- the same as you have on the desktop, we'd like to have seamless integration for team tools. So that's how we started, and then we noticed quickly that if you want to get this tight integration level, this seamless integration, then we found we should really build... initial focus on the bug-tracking system to track your work, we need a build system to track our continuous build, and we also need to build a new source code control system which enables us to do this kind of component-based development, and highly collaborative work in code, make it easy to flow changes and make this kind of parallel development very easy.

That's how we started, and that's the Jazz technology platform. On top of this platform what you will see coming out in the future is different products that will leverage this technology and package it, so that you will have this full family of products which can cover the application lifecycle. But our initial focus always was more coding, building, work tracking, bug tracking, source control, but you will see more stuff grow over time.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.