Ask Jazz Technical Lead Dr. Erich Gamma 83
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.
The Directions of the Eclipse Foundation (Score:5, Interesting)
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?
Re:The Directions of the Eclipse Foundation (Score:5, Insightful)
Plugins.
Eclipse is an awesome platform for Java. As good as Netbeans. Over the years I've checked it out and I've never felt the desire to stay with it like I do with Netbeans.
But when it comes to developing in other languages, Eclipse just doesn't cut and Netbeans blows the doors off of it.
Some examples:
When I downloaded the previous version of Galileo, from the menu I installed the plugins for C++. I couldn't get the C++ compiling and linking to work.
BPEL?!?! They wanted me to GO BACK a couple of versions of Eclipse. I couldn't even find it on the net.
Anyway, that's not the Eclipse foundations problem. What is their problem is the dependencies installation of the plugins. There's been times where I try to install a plugin and after a while it says I need another, the that dependency says I need a couple of more, and then those dependencies say I need more, and eventually, one dependency fails. Spent a couple of hours over that. What can't Eclipse do all that horseshit for me?
There's other things that I don't like about the UI and the way Eclipse handles projects and their dependencies in Java. I went to Netbeans six months ago and never looked back. I am very happy with Netbeans and I don't see any reason to try to go back to Eclipse.
Re: (Score:2)
Re:The Directions of the Eclipse Foundation (Score:5, Funny)
Agreed. Not a troll. Valid criticisms of Eclipse.
Netbeans, on the other hand, is only used by pedophiles, so GP should be ignored on those grounds.
I can't figure out what Jazz is... (Score:3, Insightful)
Reading the About page is useless. The impression I get is that this is a fancy marketing scheme for Rational products. Which, is business as usual for Rational...they market well to managers and are more trouble than they're worth to the people that have to actually use them.
Re: (Score:2, Insightful)
Reading the About page is useless. The impression I get is that this is a fancy marketing scheme for Rational products. Which, is business as usual for Rational...they market well to managers and are more trouble than they're worth to the people that have to actually use them.
You describe the very experience I had. Our manager decided we were going to do Rational. We spent lots of time and money on training, hardware, installation services, etc. Everybody hated it. The developers would deal with the ClearQuest windows interface okay, but when we tried to get the users to report issues using the web interface, they revolted, and so we developed our own solution with integration to the CQ back-end.
When ClearCase worked and everybody followed the plan, it was okay (but a HUGE r
Re: (Score:3, Informative)
I can't speak for all of Rational or all of our users, but I can speak as a member of a development team that uses Rational Team Concert. When we were building what became Rational Team Concert (the first Jazz-based product), we made it an early priority (like 2 years before we shipped 1.0) that we would use Team Concert for our day to day development of Team Concert. Since we build Jazz and Team Concert from the ground up (read: from scra
Re: (Score:1, Insightful)
Is Jazz a technology, an initiative, a website, a community, or a platform? If it's not too late, you should push to have the ambiguity of the name eliminated. Slapping a "Jazz" label on everything is not going to serve you any better than when Microsoft tried to slap the label of .NET on everything. If it is ultimately a technology, clearly state that, and clearly state what it does. And get that information on the front page! Don't burry it under the layers of marketing speak.
Let's try this. .NET really w
Re: (Score:3, Informative)
Here's how I w
Re: (Score:1, Interesting)
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?
Re: (Score:2, Interesting)
Re: (Score:1, Interesting)
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?
Re: (Score:1)
You decide that you no longer want Rational Team Concert. You replace it with some other tool that implements the OSLC change management spec. All of your tools that were integrated with Team Concert continue to work with
Trying to help... (Score:3, Informative)
Maybe it's hard to summarize in a couple of sentences because Jazz really is a number of things. I'll try to describe each of them in one to three sentences. And I'll try not to use marketing buzzwords, although I can't promise not to use URLs.
1. Jazz is the belief that professional software development is a team effort, and the part of that effort that tools in the past
Re: (Score:1)
Re: (Score:1)
Re: (Score:2)
He's a robot who turns into a Porsche 935. He's voiced by Scatman Crothers.
Cleaning Up Collaboration (Score:4, Interesting)
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?
Re: (Score:1)
You don't need to use the whole set of tools. If you're working in a small team and an Agile process, Rational Team Concert may be the only tool you want. If you're working in a more ceremonial organization you might benefit from other tools in the Rational portfolio, or from integrating whatever external tools you might want. The original internal users of Rational Team Concert were/are themselves small, Agile teams.
I know it goes against a lot of people here's expectations of
Re: (Score:1)
Does it help me that one hundred stories are tagged with "no" [slashdot.org]?
It should. Those are stories with a questionmark, and since they're tagged "no" the collective wisdom of Slashdot would say that, well, the answer to the question posed by the story is a "no". Saves you the time of checking whether there Are aliens living among us [slashdot.org], for instance :)
Re: (Score:2)
Well obviously they're not going to come on here and out themselves...
Patterns (Score:2, Interesting)
His patterns work doesn't rate a mention?
Re: (Score:2)
Re: (Score:2, Insightful)
Just thinking if I was to write up a quick bio ... man, I'd start with patterns ... Surprised me that wasn't even in there.
Re: (Score:3, Insightful)
Re: (Score:3, Funny)
Re: (Score:1)
Nice.
Re: (Score:2)
Design patterns? The open source community doesn't need no stinkin' design patterns. We just code by the seat of our pants into oblivion!
Yessir, a cowboy ain't need but three things in life: his hat, a good pair o' boots, and his Linux machine... Fancy city folk can have their newfangled patterns and such...
Usable code for discrete tasks (Score:2, Interesting)
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
big fan of jazz (Score:1, Funny)
New Important Design Patterns? (Score:5, Interesting)
Or overrated old ones? (Score:2)
On a related topic, if you were to write Design Patterns today, would you omit or significantly modify any of the original 23 patterns?
Re: (Score:1)
gangoffour tag (Score:1, Funny)
Gang off our what?
Buying in to Rational Products (Score:2, Insightful)
According to the NRC's Singer, the chief constraint that Jazz faces is that it works only on the Eclipse platform. Says Singer, "The only people who can adopt it are those who are using Eclipse."
Singer also feels that some processes might not accommodate Jazz's idea of collaboration. "People use all sorts of tools and ways of communication to coordinate their work, to be able to collaborate, to be able to put together big pieces of software," she says. "Some of this has to do with following a particular process. Where Jazz might be constraining is when the model behind it does not jive with these preexisting processes."
Meanwhile, Mike Milinkovich, the Eclipse Foundation's executive director, told eweek.com last March that IBM developers account for as much as 80 percent of Eclipse's development team. He questioned whether that kind of environment is good for Eclipse or Jazz. He also noted that some have charged IBM with killing off the Jazz developer tool competition with Eclipse. Finally, he wondered whether having two open source communities--one for Jazz and one for Eclipse--will ultimately weaken Eclipse.
I'm not sure but I would wager that's as true today as it was in 2007. How do you address those concerns?
I've also noticed--through use of the Rational Suite--that you can't just use one tool in the suite. You need them all. And, you know I understand it's IBM's business model, but it kind of rubs me the wrong way that I was using all these great Maven2 tools to do releases and automagically test and build inside subversion. But when we went to
Re: (Score:1)
On strong typing, and design patterns and testing (Score:2)
This can be a compelling argument in terms of simplicity and syntax in examples when you take a look at books like "Design Patterns in Ruby" compared with "Design Patterns: Elements of Reusable Object-Oriented Software". There's also an argument that strong typing is a form of tight coupling and antithetical to half of the Object Oriented axiom, "loose coupling, stron
Re: (Score:2)
That's a common claim from such people, true, but its not entirely true; descriptions design patterns in terms of substantial code structures that must be implemented for each use of the pattern are ways of working around language limitations, the patterns themselves are not. In languages with better metaprogramming support and/or more permissive typing, many common "d
Re:On strong typing, and design patterns and testi (Score:2)
I assume you don't mean strong typing versus weak typing but dynamic versus static typing.
Design Patterns have nothing to do with the typing system. Design Patterns are on the level of the software architecture. There is no noticeable difference wether you implement a certain pattern in Java(strong and static typed), Groovy, Ruby or Python (all 3 strong and dynamic typed), only the syntax of the concrete lines of code is different.
Your point about "suck less" makes no sense either, as most design patterns w
Questions for Dr. Gamma (Score:1)
Can you tell us of your ideas for new robot masters? What is your plan to get rid of Mega Man? Are you really Dr. Wily in disguise?
On the Current State of Academia? (Score:5, Interesting)
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.
Will SWT and Swing ever merge in Eclipse? (Score:5, Interesting)
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?
Re: (Score:2)
Take a look at the Rich Ajax Platform [eclipse.org] Project.
Rational? (Score:3, Insightful)
I work in a small shop that makes some use of Websphere Application Server and the Rational development tools. I basically find the entire structure of the IBM software offerings relating to the above technologies incomprehensible. Products are constantly being renamed, discontunued, bundled, unbundled and rebranded. Names are long, generic, and practically interchangeable, and so are the feature lists.
How do you plan to run a community support site based around this hodge-podge? I would assume the volatile nature of IBM's software marketing makes your task something approaching impossible. How do you expect to build a strong developer community based around products that are in a constant flux? I don't see any way around ending up with a large number of granular, isolated communities that spring up around specific products and thrive for a year or two. In short, how do you plan to unify a developer community without IBM first unifying the software development platform that this community is to be built around?
Thank you.
Re: (Score:1)
Are there any original patterns left? (Score:1)
RTC vs CQ and CC (Score:1)
Re: (Score:1)
Re: (Score:1)
As background, I work for IBM/Rational, participated in the design and construction of RTC from its inception, and among other activities, have been leading the teams building the "Connectors" between RTC and ClearCase/ClearQuest. Back in 1995, I joined Atria to work on ClearCase.
... both in performance and in ability to do all the new cool things that we and others have thought of.
... a customer uses whatever tools best solve their problems). And while all this is going on, we continue to invest heavily in enhancing ClearCase and ClearQuest (we have significantly more people working on ClearCase and ClearQuest than we do on Team Concert).
So why did we created a new product?.
Over the years we've observed that for large software projects, what mattered even more than point tool functionality was how well the different tools were integrated. More recently, as companies started focusing on agile development where single individuals perform multiple roles concurrently, the same became true for smaller software projects. So we put increasing amounts of efforts into integrating our tools.
But we concluded that without a tool integration platform, there's only so far we could go (and in particular, the integrations were tool version sensitive, requiring upgrading the tools together, which is not something users wanted to do). And even with a tool integration platform which improved the level of integration of all the tools, we also concluded that the only way to get optimal integration is to also build the products specifically for that tool integration platform.
In addition, a requirement for ClearCase and ClearQuest has always been that they handle all SCM (software configuration management) and CM (change management) problems that our customers have encountered over the years, work on all hardware and OS platforms, and remain compatible with all previous versions we've released. But that breadth of coverage comes at a cost
So a few years ago, we started Team Concert, both to build the platform that we were going to use to improve the integration between all of our tools, as well as to build new instances of those tools that were designed to take optimal advantage of that new platform.
And while we were building those new integrated tools, we were also free to focus those new tools on the most common problems and the most common platforms, since we had ClearCase and ClearQuest to back the new tools up with breadth of problem and platform coverage. The "Connectors" then plug ClearCase and ClearQuest into that platform, and into those new tools, so that a customer can use the new tools when appropriate, and use ClearCase and ClearQuest whenever they weren't.
And the integration between all these tools were enhanced by the Jazz integration architecture (i.e. it was no longer an either/or
At any rate, that was the idea (:-). For some more perspectives on this question from some other folks, you can also listen to the webcast:
http://www.rational-ug.org/webcastDetail?wid=74 [rational-ug.org].
Much more readable that way.
How does this help make code work right? (Score:2)
It's a nice read on the various things to think about in the design of software. But we still seem huge amounts of production code that is in error or even insecure. These are abstract concepts about design, but the problems in production are real and concrete. There is a failed connection between them. For example, how is it that the computer system for Frontier Airlines has only a place for ONE person to be designated [consumerist.com] to pick up an unaccompanied minor?
Silly Stuff (Score:1, Funny)
Re: (Score:3, Insightful)
Re: (Score:1)
Erich Beta was functionally complete, but bugged the hell out of everybody. As of this week, he also shuts down every two hours, which is pretty annoying.
My questions (Score:2)
What do you make of Patterns now? (Score:4, Interesting)
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?
Re: (Score:2)
Your final sentence is a funny question, or an interesting question, so you deserve be modded up.
However: why should one not use Design Patterns anymore. You saw overengineered software? So likely the software suffered from some anti patterns? So you stop using Design Patterns? I can't believe that, this makes no sense. With what and why would you replace a model/view/controller pattern, or why a factory?
Many old school programmers demand youngsters learn C ... with the same demanding voice I want that old
Re:What do you make of Patterns now? (Score:4, Interesting)
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.
Re: (Score:3, Interesting)
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 ne
Eclipse (Score:2)
Thank you (Score:1)
Would you care to share your thoughts on the current developments concerning the structuring of professional programming knowledge?
RIP RUP? (Score:2)
Uhhh, does this mean the Unified Process is dead?
I haven't worked with Websphere and Rational products since 2005. Back then the Rational Unified Process with use cases, etc. was suppose to be the next big thing. Rational had some tools called the Rational Unified Process which allowed you to create sequence diagrams, etc.
When you click on the Jazz products link\ it takes you to the projects page where all of them start with "Rational" by name. Is IBM going to Open Source ClearCase now? Most attempts at try
Re: (Score:2)
Uhhh, does this mean the Unified Process is dead?
Well it's been brain dead for ever... pulling the plug would be merciful.
Re: (Score:1)
Re: (Score:2)
Thanks! This was extremely helpful.
In my line of work I sometimes get asked these things myself and now I have an answer!
Cheers! mate!
Why Jazz? (Score:4, Interesting)
Re: (Score:1)
Why the Visitor pattern?? (Score:2)
Friends don't let friends use Visitor.