Forgot your password?

typodupeerror
Java Programming IT Technology

Ask Jazz Technical Lead Dr. Erich Gamma 83

Posted by ScuttleMonkey
from the sing-me-a-tune dept.
As IBM continues to build out Jazz, their community-oriented development site, technical lead Dr. Erich Gamma has offered to answer questions about Jazz or anything else in his realm of expertise. Among his many accomplishments, Erich worked with Kent Beck on the Java unit testing framework, JUnit, and was actively involved until JUnit 4. Dr. Gamma was also one of the fathers of Eclipse and the original lead on the Eclipse Java development tools. Feel free to fire away on Eclipse, Java, JUnit, the Rational suite, the Jazz site, or anything else you think Erich might be able to answer. Usual Slashdot interview rules apply. Update 19:05 GMT by SM: As pointed out by user Hop-Frog, Dr. Gamma is also co-author of the influential computer science textbook Design Patterns: Elements of Reusable Object-Oriented Software.
This discussion has been archived. No new comments can be posted.

Ask Jazz Technical Lead Dr. Erich Gamma

Comments Filter:
  • by eldavojohn (898314) * <my/.username@@@gmail.com> on Tuesday June 30 2009, @02:49PM (#28532839) Journal

    Dr Gamma was also one of the fathers of Eclipse and the original lead on the Eclipse Java development tools.

    Eclipse has been going on since the early 2000s and six days ago enjoyed the release of Galileo (v3.5). If you've had time to look at recent release, what are your opinions on what Eclipse has become? Has it made any wrong turns? How do you respond to criticisms of "bloat" or "too resource intensive"? Do you see it becoming more than what it is or transforming?

  • by eldavojohn (898314) * <my/.username@@@gmail.com> on Tuesday June 30 2009, @03:01PM (#28533023) Journal
    Jazz seems to rely heavily on developer community and their collaboration--and the influence for Jazz is said to be the World Wide Web.

    The Jazz portfolio consists of a common platform and a set of tools that enable all of the members of the extended development team to collaborate more easily.

    The biggest problem I have with collaboration tools is the metadata. No one does it right. Someone writes a blog or uploads a document but doesn't tag it. Enterprise search is broken. Management hands us wikis yet no one has the time or patience to maintain them. The protective blanket of "it's agile, baby" shields us from any beat downs. And with every new tool I realize that it's not the tool that improves collaboration, it's the team. Look at Slashdot's tagging system. Does it help me that one hundred stories are tagged with "no" [slashdot.org]? Collaboration seems to spontaneously work but is often out of your control when it does and doesn't. How does Jazz fix these problems? How does Jazz improve collaboration when it seems to me that tools are such a small part of collaboration? Will a small development team be able to use such a large set of tools?

  • Patterns (Score:2, Interesting)

    by Hop-Frog (28712) on Tuesday June 30 2009, @03:05PM (#28533055)

    His patterns work doesn't rate a mention?

  • by Anonymous Coward on Tuesday June 30 2009, @03:07PM (#28533093)

    Hi, I work in the storage management world, and noted the unlamented passing of Aperi, which had been put into Eclipse.

    My company looked at Aperi, and would have liked to do something with it, but the first line of every file seemed to read

              #install <universe.h>

    This doesn't work for us. Like most companies, we've already invested in one or more frameworks and don't want to change just to get the three or four interesting capabilities that we see in some large piece of open-source software. Are there any projects underway to furnish discrete management functionality in bite sized chunks?

    Thanks

  • by eldavojohn (898314) * <my/.username@@@gmail.com> on Tuesday June 30 2009, @03:17PM (#28533243) Journal
    On your influential book regarding design patterns [wikipedia.org], you listed 23 design patterns that would become the foundation for the concept of design patterns in computer science. Since then, many more types and subtypes have arisen [wikipedia.org] but a lot of them seem to be derivatives or a combination of others. What new design patterns if any do you wish you had included in your book or that you feel are necessary for competent developers to learn?
  • by eldavojohn (898314) * <my/.username@@@gmail.com> on Tuesday June 30 2009, @04:17PM (#28534079) Journal
    I know a lot of people that are very vocal about what is right and wrong with education today. Especially college institutions: "No one teaches C, everyone teaches four years of Java, no one understands the theory, a CS grad doesn't even know what a model-view-controller pattern is." The list goes on. Since you have your doctorate and have probably spent a lot of time in research and academia, what's wrong with most computer science or engineering programs in general today? What would you like to see more or less of? Are there any subject directions recently taken (EJB, garbage collectors, interpreted languages) you'd like to comment on?

    You seem to be non-opposed to Java which, I'll admit, is rare to me for someone with a doctorate. I would like to hear your views since so often all I hear about Java is that it is slow and only good for people that want cheap software developed quick by beginner developers.
  • by Fuzuli (135489) on Tuesday June 30 2009, @05:00PM (#28534733)

    I have to build quite complex tools using GEF and GMF, and there are many cases where I'd like to have the power of Java2D, and reuse some of the great frameworks out there built on Swing.
    More and more people are using AWT/SWT bridge, since SWT does not provide an underlying drawing framework as rich as Java2D.
    Eclipse has great things like EMF, and the platform is number one choice for tooling, but when it comes to things like Bezier curves etc, Swing is much easier to use. So are we going to see more developer friendly versions of Eclipse where Swing is more available to us?

  • by zuperduperman (1206922) on Tuesday June 30 2009, @07:47PM (#28536615)

    I came into professional software development just as patterns were emerging as the "next big thing".

    It seems to me looking back that at best we would have to rate the success of design patterns as mixed. One the one hand they've formed a useful vocabulary for discussing software designs and a useful tool for thinking about software in general. However on the other hand it seems like in a huge number of cases they have inspired large amounts of complexity and over-engineering and get misused more often than not. By and large the software world seems to have moved on.

    So, I'm curious what you make of them now, looking back? Do you think design patterns as a concept has been a success or not? Do you yourself still use them in daily work?

  • by Anonymous Coward on Tuesday June 30 2009, @07:51PM (#28536647)

    The description on open-services.net is much clearer. So if I have this right, Jazz is basically about standardizing protocols and formats so that process tools created by different people can interop. So, for example, a Bugzilla defect could become a ClearQuest CR, which could become a Team Foundation task. Or ReqPro requirements could trace to Testopia test cases. Assuming all the tools mentioned implemented the standard. Is that correct?

  • by BillHiggins (921577) on Tuesday June 30 2009, @08:09PM (#28536823) Homepage
    Sorry, Open Services for Lifecycle Collaboration (OSLC) is an effort that IBM started to produce the standard protocols and formats that are intended to allow integration via data-level and UI-level artifact linking. OSLC would not allow a Bugzilla defect to "become" a ClearQuest CR, but it would allow someone to link a ReqPro or DOORS (or whatever) requirement to anyone who implements the OSLC change management protcols and formats. An analogy is that a feed reader can do useful things with most any Atom/RSS feed.

    The Jazz technology platform underlies Rational's products and implements the OSLC protocols and formats. We're trying to create very useful standalone products (Rational Team Concert) that support parts of the software lifecycle and can integrate with other tools that help with other parts of the software lifecycle using the OSLC protocols as the integration mechanism (as opposed to a shared technology stack ala Eclipse, .NET, etc.)

    If you're interested, Steve Abrams and Carl Zetie of IBM and Mik Kersten of Tasktop (and Mylyn) just did a developerWorks podcast on collaborating together on the change management OSLC specs: http://www.developerfusion.com/media/16828/abrams-zetie-and-kersten-on-first-fruits-from-the-oslc/ [developerfusion.com] (warning: they get lobbed quite a few softball questions but I think it's nonetheless an insightful discussion).
  • by Anonymous Coward on Tuesday June 30 2009, @09:11PM (#28537239)

    Would Jazz let me effectively replace anything in the Rational "stack" with another equivalent tool? Is it possible to add tools that are not in the stack as envisioned by Rational? Would the system work if I decide not to use some of the tools?

  • by zuperduperman (1206922) on Tuesday June 30 2009, @09:24PM (#28537351)

    You're right, I probably could have phrased the last question better.

    When I say "use design patterns", what I really mean is put them front and center in the design process, using them as building blocks when designing software. This was definitely the vision people had at one point. My experience however has been that they are rarely successful when used that way. I'd say everyone does in fact use design patterns by definition - design patterns are after all just descriptions of common designs, so you'd have to be going out of your way and doing very unusual things to avoid them. But my experience is that in successful designs the patterns tend to emerge *after* you've built the software and become useful as way to discuss it and communicate about it, and possibly to critique it, but not really to build it in the first place. Somehow, conceptualizing designs as made out of pattern building blocks always seems to lead to over-engineering. My theory is that, with software, anything that distracts from the principle of "the simplest thing that could possibly work" ends up being a negative. We are enchanted by the idea of software being like buildings - let's put an arch over there, a staircase here, split level room here ... in architecture that makes buildings beautiful, but in software it just makes it unnecessarily complex.

    So - hopefully that clarifies what I mean. I'm curious if this is also his experience, or not.

  • by wrook (134116) on Wednesday July 01 2009, @08:08AM (#28540699) Homepage

    Please re-read the book. I wish I had it here (my copy is about 5000 miles away at the moment), but I think what you just wrote is already there. A design pattern, by definition, is something that is intuitively used by many people, whether they know what it's called or not. IIRC you can't call it a pattern unless there are 3 independent implementations of it. So one of the biggest pluses for design patterns is in being able to recognize them in existing code and thereby understand it more easily.

    The next thing to realize about design patterns is that they are supposed to be generative. In other words, the use of one pattern naturally leads to the use of another. In other words, it generates the need for that pattern. One of the best uses of design patterns is in refactoring. Quite often you'll look at the design and say, "OK, we've got a state pattern here. And the way it's shaped, we probably need command pattern.... Hey, where's the command pattern in this code? Oh... OK, so that's what's causing the problems."

    I am in complete agreement with you that using design patterns as some sort of list of ingredients in a recipe will almost certainly lead to disaster. And I'm relatively sure that this is stated in the GoF book (first couple of chapters... but I admit it's been a long time since I read it). Unfortunately many people try to skip thinking and don't realize that the random use of patterns won't actually make their code any better.

    If you look at the early accomplishments of the people in the GoF you will see that they were well ahead of the curve when it comes to understanding these subtleties. So I'm quite sure these issues were well understood, although perhaps they could have been communicated better.

  • Why Jazz? (Score:4, Interesting)

    by autophile (640621) on Wednesday July 01 2009, @12:35PM (#28544291)
    Could you explain, minus the marketing speak that seems to pervade the IBM site, what is Jazz, what makes it a community-oriented developer's site, why is it different from, say, sourceforge.net, and if Jazz is so community-oriented and yet apparently tied in to Rational, where are the community versions (not trials, not demos, not limited to the point of uselessness functionality) of Rational products?

The trouble with being punctual is that nobody's there to appreciate it. -- Franklin P. Jones

Working...